基础系统、处理器架构与多核处理器解析
1. 基础系统与处理器架构分析
1.1 multiply_d() 函数汇编分析
对 multiply_d() 函数的汇编列表进行分析,能够了解编译器对源代码的优化方式。以下是对该函数汇编列表的详细观察:
- 函数起始位置 : multiply_d() 函数从 multiply_d 标签处开始,标签上方有一个对齐指令,指定函数文本按 2 字节边界对齐,并使用 nop 指令(0x90)进行填充。
- 函数调用优化 : multiply_d() 的调用实际上是针对目标 multiply_d. ,这是函数的一个替代入口。此时寄存器已加载了数组 b 、 a 和 c 的地址,避免了标准调用/返回序列中常见的栈操作,节省了时间。
- 循环优化 :第 33 行和第 39 行的两个分支代表两个外层循环。最内层循环通过在第 20 行将计数器初始化为负值并向上计数的方式进行了优化。第 33 行的分支依赖 addl 指令在三次迭代后设置等于 0 的条件位,从而无需显式的与 0 比较指令。同时,最外层循环进行了归纳变量消除,不再跟踪变量 i 从 0 到 3 的迭代,而是直接递增表示 c 和
超级会员免费看
订阅专栏 解锁全文
973

被折叠的 条评论
为什么被折叠?



