指令描述
leap 源操作數(shù)S, 目標(biāo)操作數(shù)D
作用:
拷貝源操作數(shù)表示的有效地址到目標(biāo)操作數(shù),即
注意:
- 目標(biāo)操作數(shù)必須是寄存器
示例
源文件scale.c
long scale(long x, long y, long z)
{
long t = x + 4 * y + 12 * z;
return t;
}
匯編碼
leaq (%rdi,%rsi,4), %rcx
leaq (%rdx,%rdx,2), %rax
salq $2, %rax
addq %rcx, %rax
ret
源文件scale3.c
long scale3(long x, long y, long z)
{
long t = 10 * y + z + y * x;
return t;
}
匯編碼
leaq (%rsi,%rsi,4), %rcx
addq %rcx, %rcx
addq %rdx, %rcx
imulq %rdi, %rsi
leaq (%rcx,%rsi), %rax
ret

問題3.6.png