汇编cmp指令

时间:2014-03-23 23:54:07

标签: assembly cmp

以下cmp指令令我困惑:

%eax中,为0x18(%ESP,%EB​​X,4)

我知道它将arg1与arg2进行比较,但是在arg2中究竟发生了什么与括号中的东西?

由于

2 个答案:

答案 0 :(得分:0)

它根据esp和ebx的值计算内存位置的地址。你没有指定使用的汇编符号,所以我猜它的esp + 4 * ebx + 0x18。

答案 1 :(得分:0)

这是at& t语法中的有效地址。 一般表单为displacement(base, index, scale),其中displacement是数字(地址),baseindex是寄存器,scale1的因子},248。 结果地址计算为displacement + base + index * scale。组件可以省略。

顺便说一句,如果您愿意,可以将gnu工具切换到intel语法模式。