Что целью XORing является регистр с собой? [дубликат]

Проверьте CUDA Nvidia, IMO, это - самая легкая платформа, чтобы сделать программирование GPU. Существуют тонны прохладных материалов для чтения. http://www.nvidia.com/object/cuda_home.html

Привет мир должен был бы сделать любой вид вычисления с помощью GPU.

Hope, которая помогает.

112
задан Cody Gray 22 April 2017 в 16:33
поделиться

4 ответа

Да, это более эффективно.

Код операции короче, чем mov eax, 0 , всего 2 байта, а процессор распознает особый случай и рассматривает его как mov eax , 0 без ложной зависимости чтения от eax , поэтому время выполнения такое же.

140
ответ дан 24 November 2019 в 02:52
поделиться

Операция XOR действительно очень быстрая. Если результатом является установка регистра в ноль, компилятор часто сделает это самым быстрым из известных ему способов. Битовая операция, такая как XOR, может занять только один цикл ЦП, в то время как копирование (из одного регистра в другой) может занять небольшую горстку.

Часто авторы компилятора даже имеют разное поведение, учитывая разные целевые архитектуры ЦП.

0
ответ дан 24 November 2019 в 02:52
поделиться

Также, чтобы избежать 0 при компиляции, как это используется в кодах оболочки для эксплуатации переполнения буфера и т. д. Почему следует избегать 0? Ну, 0 представляет конец строки в c / c ++, и код оболочки будет усечен, если средством эксплуатации является функция обработки строки или что-то подобное.

Кстати, я имею в виду исходный вопрос: "

27
ответ дан 24 November 2019 в 02:52
поделиться

xor eax, eax - это более быстрый способ обнулить eax . Это происходит из-за того, что вы возвращаете 0.

Инструкция в работает с портами ввода / вывода. Обычно чтение слова данных из порта, указанного в dx , и сохранение его в al . Непонятно, почему это здесь происходит. Вот ссылка , которая, кажется, объясняет это подробно.

14
ответ дан 24 November 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: