问题
What does this instruction do?
mov (%r11,%r12,1), %edx
回答1:
Look here. It says
In the AT&T Syntax, memory is referenced in the following way,
segment-override:signed-offset(base,index,scale)
Down on the page there are some examples. I find this the best:
GAS memory operand NASM memory operand
------------------ -------------------
(%ecx,%ebx,2) [ecx+ebx*2]
mov source, destination
in AT&T syntax copies the value from source to destination. Also consider the size of edx. How many bytes (4) do you think mov
will copy ?
回答2:
mov (%r11,%r12,1), %edx
this instruction is use to calculate the address (indexed addressing mode).
%r11
is a base adress%r12
is a index- and
1
is a multipler
It's work like this:
adres = base adres + index * multipler
base adres and multipler must be constants (base adress can be register), index must be register.
来源:https://stackoverflow.com/questions/2883850/what-is-the-meaning-of-mov-r11-r12-1-edx