PSW 是程序状态字寄存器 (Program Status Word Register) 的缩写。它不保存当前指令,而是保存 CPU 的状态信息,例如:
- 条件码标志: 这些标志位反映了最近执行的算术或逻辑运算的结果。例如,零标志 (ZF) 表示运算结果是否为零,进位标志 (CF) 表示运算是否产生进位等等。
- 控制标志: 这些标志位控制 CPU 的操作模式。例如,中断启用/禁用标志控制 CPU 是否响应中断请求。
PC 是程序计数器 (Program Counter) 的缩写。它保存的是下一条要执行的指令的地址。CPU 会根据 PC 的值从内存中取出指令并执行。
PSW 和 PC 的主要区别在于:
- 作用不同: PSW 保存 CPU 的状态信息,而 PC 保存下一条指令的地址。
- 内容不同: PSW 中的内容是一些标志位,而 PC 中的内容是一个内存地址。
- 更新方式不同: PSW 的值通常由指令的执行结果自动更新,而 PC 的值通常在每条指令执行后自动加 1,或者由跳转指令修改。
总而言之,PSW 记录 CPU 的状态,PC 指示 CPU 要执行哪条指令。它们共同协作,保证程序的正确执行。