深入理解计算机系统 练习题2.38 答案与分析

就像我们将在第三章中看到的那样,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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值