繁体   English   中英

汇编cmp指令

[英]Assembly cmp instruction

以下cmp指令使我感到困惑:

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

我知道它正在将arg1与arg2进行比较,但是arg2和括号中的内容到底发生了什么?

谢谢

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

这是at&t语法中的有效地址。 一般形式是displacement(base, index, scale) ,其中displacement是一个数字(地址), baseindex是寄存器,和scale是一个因子1248 计算得出的地址为displacement + base + index * scale 组件可以省略。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM