指示
mov al, byte ptr [rbx + rsi*2 + 0x100]
被编码为
8a 84 73 00 01 00 00
意思是ModR/M
是0x84
或10.000.100
我理解mod
(10
)和reg
(000
)领域,但不知道为什么rm
是100
。谁能解释这里使用的规则?
rm字段为100以指示SIB(比例索引基数)操作数。该操作数在SIB字节中详细说明,如果存在,则紧跟在modr / m字节之后。在这种情况下,SIB字节是0x73
或01.110.011,表示比例(01)为2,rsi(110)作为索引寄存器,rbx(011)作为基址寄存器。
有关详细信息,请参阅Intel手册。