LEA指令(X86汇编)对应leal指令(AT&T汇编)
当我们把一个变量的地址存放到寄存器,例如
%eax存放了变量x的地址
%eax+4存放了变量y的地址
当进行函数调用,需要传递这两个变量的地址时,可以这样写
leal %edx (%eax)
push %edx
call fun
方法中
push %ebx
mov %esp %ebx
mov (%ebx) %eax --get x
mov 4(%ebx) %ecx --get y
也就是,lea/leal
指令可以直接将寄存器内的值作为地址穿给目的寄存器
leal/lea指令等同于
mov 源寄存器 目标寄存器
而从形式上让人以为是将源寄存器中地址对应存储器中的值赋给目标寄存器