有一些来自计算机系统的ATT组装示例:程序员的观点。这里有一个:
可以通过以下代码复制数组元素Ai以注册%eax: (A %rdi,i in %rsi,j in %rsi)1 leaq (%rsi,%rsi,2),%rax计算3i 2 leaq (%rdi,%rax,4),%rax计算x_A + 12i 3 movl (%rax,%rdx,4),%eax从Mx_A + 12i + 4j读取。
前两条指令能否合并成
leaq (%rdi,%rsi,12), %rax因为它也计算x_A + 12i?
为什么这本书选择写两条指令呢?在其他例子中也会发生同样的情况。
谢谢。
发布于 2018-10-26 19:26:29
不,只有比例尺因子1,2,4和8(可以说为零,对于“无索引”的情况,但编码意味着不同的解释)存在,其他任何东西都不能编码。缩放因子不是某种任意整数,它是这样编码的,编码只提供特定的选项供选择。
https://stackoverflow.com/questions/53014832
复制相似问题