Понимание кодировки инструкций 8086

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

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

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

48 -> dec ax

EB0D -> jmp short 0xf

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

2 ответа

Решение

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

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

Другие вопросы по тегам