【问题标题】:What is going on in this x86 instruction?这个 x86 指令发生了什么?
【发布时间】:2014-10-03 03:47:33
【问题描述】:
cmp    %eax,0x80498d4(,%ebx,4)

我知道 eax 寄存器正在与某些东西进行比较,但我不知道 eax 正在与什么进行比较。

换句话说,是什么

x80498d4 (,%ebx,4)

是什么意思?

【问题讨论】:

  • 我相信这将是英特尔语法中的cmp [ebx*4 + 80498d4h], eax。 IOW,它将括号中地址的内容与eax 中的内容进行比较。

标签: assembly x86


【解决方案1】:

它将eax与地址[0x80498d4 + (4 * ebx)]的内容进行比较

来源:http://cs.nyu.edu/courses/spring12/CSCI-GA.1144-001/addressing_modes.pdf

【讨论】:

    【解决方案2】:

    它取EBX的值,乘以4,加上常数0x80498d4。该值将被解释为地址,该值的内容将与寄存器 eax 的值进行比较。 最后 cmp 指令将设置 EEFLAG 寄存器。

    【讨论】:

      猜你喜欢
      • 2015-01-05
      • 2015-01-31
      • 2015-10-15
      • 1970-01-01
      • 2011-11-24
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多