LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

Почему для сложения получается sub eax, -число, а не add eax, число?

Потому что короткая форма команд add и sub выделяет 8 бит под операнд со знаком. А число со знаком в дополнительном коде имеет диапазон от -128 до + 127.

Таким образом через sub EAX, -128 можно прибавить к регистру число 128 трёхбайтовой командой.

А если написать add EAX, 128, то это уже 5 байт.

Исходная версия wandrien, :

Почему для сложения получается sub eax, -число, а не add eax, число?

Потому что короткая форма команд add и sub выделяет 8 бит под операнд со знаком. А число со знаком в дополнительном коде имеет диапазон от -128 до + 127.

Таким образом через sub EAX, -128 можно прибавить к регистру число 128 трёзбайтовой командой. А если написать add EAX, 128, то это уже 5 байт.