为什么ModR / M:rm字段在mov al中是100,字节ptr [rbx + rsi * 2 + 0x100]?

时间:2017-12-16 15:01:19

标签: assembly encoding x86 machine-code addressing-mode

指令

mov al, byte ptr [rbx + rsi*2 + 0x100]

编码为

8a 84 73 00 01 00 00

表示ModR/M0x8410.000.100

我理解mod10)和reg000)字段,但不知道为什么rm是{{1} }。任何人都可以解释这里使用的规则吗?

1 个答案:

答案 0 :(得分:3)

rm字段为100表示​​SIB(比例索引库)操作数。该操作数在SIB字节中详细说明,如果存在,则紧跟在modr / m字节之后。在这种情况下,SIB字节为0x73或01.110.011,表示标度(01)为2,rsi(110)为索引寄存器,rbx(011)为基址寄存器。

有关详细信息,请参阅英特尔手册。