热门问题
时间线
聊天
视角
状态寄存器
来自维基百科,自由的百科全书
Remove ads
状态寄存器(status register)或旗标寄存器(flag register)是中央处理器中集合许多状态旗标比特的寄存器。这类的寄存器像是X86架构的FLAGS寄存器、IBM System/360架构透过z/Architecture的程序状态字(PSW),以及ARM Cortex-A架构里的应用程序状态寄存器(application program status register, APSR)[1]。
状态寄存器是包括中央处理器状态信息的硬件寄存器。其个别比特可以直接用机器语言指令读写,或是用其他方式读取或修改其值。状态寄存器让一个指令可以依照上一个指令动作后的结果进行动作。
一般来说,有些状态寄存器的比特会随运算或是比特处理的结果而变化。例如,若输出结果为0,会设置Z旗标,若输出结果不为0,会清除Z旗标。其他指令也可能变更旗标的结果。一些条件判断指令也会读取比特状态,以决定是否要执行后续动作(跳跃、调用副程序、副程序返回等)。
有些CPU架构(像是MIPS架构和DEC Alpha)没有专用的状态寄存器。有些架构不会隐式的读写旗标,有些则是用显式指定的通用寄存器完成此工作。
状态寄存器也会有其他的字段,例如专用旗标、中断始能旗标等。调用中断时,会将目前线程的状态寄存器、程序计数器和其他暂存器存到调用堆栈中,以记录中断前的状态,中断结束后再回到该位置继续执行。
Remove ads
常用旗标
以下是最常见的CPU状态旗标。
其他旗标
以下是一些处理器要有的旗标:
Remove ads
相关条目
参考资料
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads