控制结构与程序决策:从基础到优化
1. 控制结构对程序效率的影响
在程序中,相当一部分机器指令用于控制程序的执行路径。由于控制转移指令常常会清空指令流水线,所以它们通常比执行简单计算的指令要慢。为了编写高效的程序,应尽量减少控制转移指令的数量;若无法减少,则选择执行速度最快的指令。
虽然不同处理器用于控制程序流的指令集有所不同,但许多处理器(如一些常见的处理器家族)采用“比较 - 跳转”范式来控制程序流。即通过比较或其他修改 CPU 标志的指令后,条件跳转指令会根据 CPU 标志的设置将控制转移到另一个位置。不同处理器在实现这一范式时存在差异,有些处理器可以用一条指令完成,而有些则需要多条指令;有些处理器允许对多种不同条件进行值的比较,而有些则只允许少数几种测试。不过,无论采用何种机制,高级语言(HLL)语句在不同 CPU 上的映射序列具有可比性。因此,只要理解了一种 CPU 的基本转换方式,就能大致了解编译器在所有 CPU 上的工作原理。
2. 低级控制结构介绍
大多数 CPU 使用两步过程来做出程序决策。首先,程序比较两个值,并将比较结果保存在机器寄存器或标志中;然后,程序测试该结果,并根据测试结果将控制转移到两个位置之一。通过这种比较和条件分支序列,几乎可以合成大多数主要的高级语言控制结构。
在比较和条件分支范式内,CPU 通常使用两种不同的方法来实现条件代码序列:
- 多比较指令法 :这种方法在基于栈的架构(如 UCSD p - 机器、Java 虚拟机和 Microsoft CLR)中尤为常见。它有不同形式的比较指令,用于测试特定条件,如相等比较、不相等比较、小于比较、大于比较等,
超级会员免费看
订阅专栏 解锁全文

475

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



