История изменений
Исправление 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 байт.