Reputation: 129
Hi guys im working on a CTF challenge and don't quite understand this asm command:
mov %edx,0x20(%esp,%eax,4)
Im assuming its: move $edx
into (0x20 + $esp + $eax + 4)
However when I checked this with gdb it isn't correct. Anyone mind explaining how this instruction works?
Thanks for your help!
Upvotes: 1
Views: 779
Reputation: 21507
AT&T syntax for x86 memory references goes like this:
displacement(base,index,scale)
giving the address of displacement+base+(index*scale).
That is, destination memory address for your instuction is %ESP+0x20+(4*%EAX).
Upvotes: 2