嗨,大家好我正在进行CTF挑战,并且不太了解这个asm命令:
mov %edx,0x20(%esp,%eax,4)
我假设:将$edx
移至(0x20 + $esp + $eax + 4)
然而,当我用gdb检查这个时,它是不正确的。有人在解释这条指令的工作原理吗?
感谢您的帮助!
答案 0 :(得分:2)
x86内存引用的AT& T语法如下:
displacement(base,index,scale)
给出位移+基数+(索引*比例)的地址。
也就是说,你的目标存储器地址是%ESP + 0x20 +(4 *%EAX)。