嗨,我正在处理CTF的挑战,不太明白这个asm命令:
mov %edx,0x20(%esp,%eax,4)我假设它:将$edx移动到(0x20 + $esp + $eax + 4)
但是,当我用gdb检查这个时,它是不正确的。有人介意解释一下这条指令是如何工作的吗?
谢谢你的帮忙!
发布于 2015-04-02 18:35:51
用于x86内存引用的AT&T语法如下所示:
displacement(base,index,scale)给出displacement+base+的地址(索引*比例尺)。
也就是说,您的安装的目标内存地址是%ESP+0x20+(4*%EAX)。
https://stackoverflow.com/questions/29419966
复制相似问题