代码之家  ›  专栏  ›  技术社区  ›  Leandro Caniglia Charlie

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

  •  0
  • Leandro Caniglia Charlie  · 技术社区  · 6 年前

    说明书

    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 . 有人能解释一下这里的规则吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   fuz    6 年前

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

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

    推荐文章