Debugging x86 mov操作码反汇编

Debugging x86 mov操作码反汇编,debugging,assembly,x86,x86-64,disassembly,Debugging,Assembly,X86,X86 64,Disassembly,我已内置IDE x86 debbuger,可分解以下内容: 第一种情况: 65 48 8B 05 30 00 00 00 mov rax,gs:[rel $00000030] 第二种情况: 65 48 8B 04 25 30 00 00 00 mov rax,gs:[+$0030] 有什么区别 我怀疑反汇编有问题,但无法翻译上层操作码 我知道的是: 65是gs前缀 48是REX.W前缀 8B是mov 第一个是RIP相对地址,第二个是和绝对地址 有关操作码的翻译,请参阅。 正如多项式所指出

我已内置IDE x86 debbuger,可分解以下内容:

第一种情况:

65 48 8B 05 30 00 00 00
mov rax,gs:[rel $00000030]
第二种情况:

65 48 8B 04 25 30 00 00 00
mov rax,gs:[+$0030]
有什么区别

我怀疑反汇编有问题,但无法翻译上层操作码

我知道的是:

  • 65
    gs
    前缀
  • 48
    REX.W
    前缀
  • 8B
    mov

第一个是RIP相对地址,第二个是和绝对地址

有关操作码的翻译,请参阅。 正如多项式所指出的,它甚至更好,但目前不支持AVX或XOP

  • 8B
    -操作码-表示为
    mov-Gv,Ev
    ,其中Gv表示寄存器目标,其中Ev为r/m目标
  • 05
    -mod r/m-以
    rax
    为目标,以
    rip
    相对为有效地址
  • 30 00
    rip的偏移量
第二条:

  • 8B
    -操作码-表示为
    mov-Gv,Ev
    ,其中Gv表示寄存器目标,其中Ev为r/m目标
  • 04
    -mod r/m-以
    rax
    为目标,以
    sib
    为有效地址
  • 25
    -sib-地址的格式为[basereg+indexreg*步幅+偏移量],在这种情况下,基和索引均为0
  • 30 00
    偏移量

谢谢-这就是我要找的网站!我发誓它在我的书签中的某个地方,但我一定是不小心把它删除了。因此,如果我理解,在第一种情况下,地址是相对的(rip+0x30),在第二种情况下,地址是绝对的。