Я пытаюсь понять кодировку инструкций 8086. Несмотря на то, что я нашел общую инструкцию и громоздкую ссылку, я все еще не понимаю ее.

Не могли бы вы объяснить, как выполняются следующие "переводы" из байтовых данных?

Заранее спасибо!

48 -> dec ax

EB0D -> jmp short 0xf

642120 -> and [fs:bx+si],sp

2 ответа2

0

Ваш дизассемблер показывает смещение JMP SHORT от начала инструкции, когда фактическое значение JMP SHORT отсчитывается от байта после инструкции. Может быть, вам нужен другой дизассемблер, который хорошо декодирует.

0

За (или этим) безусловным переходом следуют данные, либо реальные данные, либо данные выравнивания. Для 8086 2 или 4 - хорошее выравнивание, поэтому следующая инструкция может начинаться с 21 или 20 или выше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .