就像我们将在第三章中看到的那样,LEA指令能够执行形如(a<<k)+b的计算,这里k等于0、1、2或3,而b等于0或者某个程序值。编译器尝尝用这条指令来执行常熟因子乘法。
考虑b等于0或者等于a、k为任意可能的值的情况,用一条LEA指令可以计算a的哪些倍数?
当b=0,(a<<k)+b=a*
2
k
2^k
2k,而k等于0、1、2或3,所以计算结果为a,2a,4a,8a
当b=1,(a<<k)+b=a*(
2
k
2^k
2k+1),而k等于0、1、2或3,所以计算结果为2a,3a,5a,9a
所以综合结果为a,2a,3a,4a,5a,8a,9a
深入理解计算机系统 练习题2.38 答案与分析
最新推荐文章于 2023-02-17 23:13:50 发布