汇编MOV指令
Assembly MOV Instruction
大家好,我正在参加 CTF 挑战赛,不太理解这个 asm 命令:
mov %edx,0x20(%esp,%eax,4)
我假设它:将 $edx
移动到 (0x20 + $esp + $eax + 4)
然而,当我用 gdb 检查时,它是不正确的。有人介意解释一下这条指令是如何工作的吗?
感谢您的帮助!
x86 内存引用的 AT&T 语法如下:
displacement(base,index,scale)
给出displacement+base+(index*scale)的地址。
也就是说,你的指令的目标内存地址是%ESP+0x20+(4*%EAX)。
大家好,我正在参加 CTF 挑战赛,不太理解这个 asm 命令:
mov %edx,0x20(%esp,%eax,4)
我假设它:将 $edx
移动到 (0x20 + $esp + $eax + 4)
然而,当我用 gdb 检查时,它是不正确的。有人介意解释一下这条指令是如何工作的吗?
感谢您的帮助!
x86 内存引用的 AT&T 语法如下:
displacement(base,index,scale)
给出displacement+base+(index*scale)的地址。
也就是说,你的指令的目标内存地址是%ESP+0x20+(4*%EAX)。