Я сейчас пытаюсь написать дизассемблер.Я нашел следующий список кодов операций и их значения, поэтому я решил проанализировать его во время выполнения: http://mprolab.teipir.gr/vivlio80X86/pentium.txt
Но я застрял в коде операции 0x00: за ним следует регистр / modbyte.Разбор это не было большой проблемой для меня.Но у меня возникли проблемы с байтом Scale-Index-Byte: если вы на самом деле указываете esp как регистр индекса, это фактически означает, что индексный регистр отсутствует.То же самое относится и к базовому регистру с помощью ebp.Но я попробовал это с встроенным ассемблером c ++: можно скомпилировать: «add [ebp * 2 + ebp], cl»
Так как же использовать ebp в качестве базового регистра при использовании ebp в качестве основного регистрана самом деле означает вообще не использовать базовый регистр!?