有一些来自计算机系统的ATT汇编示例:程序员的观点。这是一个:
数组元素A [i] [j]可以通过以下方式复制到寄存器%eax中: 以下代码:
(A in %rdi, i in %rsi, and j in %rdx) 1 leaq (%rsi,%rsi,2), %rax Compute 3i 2 leaq (%rdi,%rax,4), %rax Compute x_A + 12i 3 movl (%rax,%rdx,4), %eax Read from M[x_A + 12i + 4j]
前两个指令可以合并吗?
leaq (%rdi,%rsi,12), %rax
因为它还计算x_A + 12i?
这本书为什么选择写两条说明呢?在其他示例中也会发生同样的事情。
谢谢。
答案 0 :(得分:2)
否,仅存在比例因子1、2、4和8(对于“无索引”情况,可能为零,但编码建议使用不同的解释),其他任何内容均无法编码。比例因子不是这样编码的任意整数,the encoding仅提供特定的选项供您选择。