汇编代码语句是什么:cmp%eax,<hexadecimal>(<register>,<register>,4)是什么意思?</register> </register> </hexadecimal>

时间:2015-02-21 18:32:49

标签: assembly att

具体来说,有一个比较声明说:

cmp    %eax, 0xc(%esp, %esi, 4)

然后跳转如果不等于它之后的声明。我想知道语句0xc(%esp,%esi,4)的后半部分是指什么。

谢谢!

2 个答案:

答案 0 :(得分:1)

在AT&amp; T语法中,内存操作数的格式为

displacement(base register, offset register, scalar multiplier)

在英特尔语法中,cmp %eax,0xc(%esp,%esi,4)(顺便说一下,cmpl不应该写成?)会写成cmp [esp + esi * 4 + 12], eax,使其可见所有部分扮演的角色。< / p>

答案 1 :(得分:1)

cmp %eax,0xc(%esp,%esi,4)

与此相同:

cmp [esp + 12 + 4*esi], eax

括号中的公式计算地址。保存在该地址的值与eax进行比较。