指令描述
leap 源操作数S, 目标操作数D
作用:
拷贝源操作数表示的有效地址到目标操作数,即
注意:
- 目标操作数必须是寄存器
示例
源文件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
网友评论