21、汇编语言编程:从指令优化到程序构建

汇编语言编程:从指令优化到程序构建

1. 指令速度优化

在 x86 架构中,DIV 和 MUL 指令是整个指令集中较慢的指令。虽然它们现在比过去快了些,但与 MOV 或 ADD 等指令相比,速度还是较慢。而且,32 位版本的 DIV 和 MUL 指令比 16 位版本慢,8 位版本最快。

不过,在 x86 世界里进行速度优化并非易事。指令在 CPU 缓存中与从内存中读取的速度差异,往往会掩盖指令本身的速度差异。在最新的奔腾级 CPU 中,还有其他因素影响指令速度,使得很难对指令速度进行概括和精确说明。

如果只是进行少量的乘法或除法运算,不必过于在意指令速度。但在循环中,指令速度就变得重要了,比如在图形渲染和视频处理工作中。个人建议是,在输入值允许的情况下,使用最小版本的 MUL 和 DIV 指令。不过,大多数时候,指令速度并不是关键因素。当你有足够的汇编经验,能够在指令级别做出性能决策时,自然会有所判断。在此之前,应专注于让程序无错误,把速度优化交给 CPU。

2. 汇编语言参考资料

汇编语言编程注重细节。记住几十条不同指令的微小、复杂细节既困难又不必要。即使是经验丰富的程序员,也会借助参考文档来回忆机器指令的细节。

早期,一个完整有用的指令集参考文档可以印在一张能放进衬衫口袋的三折卡片上,这种卡片被称为蓝卡。到了 80 年代初,它变成了一本 89 页的小册子。随着 x86 架构的发展,完整的指令集参考资料需要好几本书才能涵盖。Intel 提供其处理器文档的 PDF 版本供免费下载,地址为:www.intel.com/products/processor/manuals/ 。

对于初学者来说,Bor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值