Top.Mail.Ru
Ответы

Машинный код Ассемблер

В чем разница между этими командами?

83 с1 02 add ecx, 2

81 c1 02 00 00 00 add ecx,0x2

По дате
По рейтингу
Аватар пользователя
Новичок

Первая команда соответствует ADD r/m32, imm8, т.е. увеличивает 32-битный регистр на 8-битное значение
Вторая команда соответствует ADD r/m32, imm32, те. увеличивает 32-битный регистр на 32-битное значение

Аватар пользователя
Просветленный

в количестве байт, которое она занимает
gcc генерит первый вариант

Аватар пользователя
Просветленный

Что касается этих команд, то по сути они делают одно и то же - увеличивают значение регистра ecx на 2. Разница в том, что первая команда использует малый регистр кода операции (83), а вторая - большой (81) и передает значение 2 в другом формате (0x2).

Аватар пользователя
Мыслитель

первый возможно работает быстрей