ищите mov dword ptr [ebp-4], eax у вас есть 8 бит кода. Вы можете легко получить его здесь, в процедуре первые шесть бит даны или должны быть запомнены для команды mov изатем добавьте в LSB бит назначения (D), где d = 1, когда есть регистр в месте назначения, или d = 0, когда регистр находится в источнике. Здесь регистр eax находится на стороне источника, поэтому следует добавить 0, а затем последний биткоторый называется бит слова (бит W), добавляется на стороне LSB после бита назначения, где бит W = 1, когда есть 16/32 битный регистр, или 0, когда есть 8-битный регистр, поэтому теперь согласно команде "movdword ptr [ebp-4], eax "
бит d = 0 и w бит = 1, теперь вы получаете 8 битов кода операции, затем вам нужно найти поле MOD (R / M).для этого вам нужно выяснить 3 вещи.1) значение мода 2) значение регистра 3) значение R / M здесь имеет формат + ----- + --------- + --------- + |Мод |Рег |R / M |+ ----- + --------- + --------- +, как указано в ответе выше, затем проверьте в команде mov dword ptr [ebp-4], eax есть смещение 8 бит в соответствии с -4, затем значение мода = 01 MOD VALUES: 00 без смещения 01 для смещения 8 бит 10 для смещения 16 бит 11 для передачи из регистра в регистр
поэтому здесь mod =01, то для reg eax значение равно 000, а для (R / M) значение равно 101
, поэтому 8 битов поля R / M равны
01000101, надеюсь, это описание поможет