在嵌入式领域,APSR(Application Program Status Register,应用程序状态寄存器)也称为 APSR_nzcvq。
一、APSR 的作用
APSR 主要用于存储处理器在执行指令过程中的状态标志信息,这些标志可以反映算术和逻辑运算的结果等状态,为程序的流程控制和条件判断提供依据。
二、N、Z、C、B、Q 的含义
-
N(Negative)标志:
- 含义:如果结果为负数,则该标志置位。
- 例如,在有符号数运算中,当运算结果小于零时,N 标志被设置为 1;当结果为非负数时,N 标志为 0。
-
Z(Zero)标志:
- 含义:如果结果为零,则该标志置位。
- 当算术或逻辑运算的结果为零时,Z 标志被设置为 1;结果不为零时,Z 标志为 0。
-
C(Carry)标志:
- 含义:在无符号数运算中表示进位或借位;在移位操作中表示移出的最后一位的值。
- 例如,在加法运算中,如果产生进位,C 标志置位;在减法运算中,如果产生借位,C 标志也置位。在移位操作中,C 标志保存移出的最后一位的值。
-
B(Borrow)标志:
- 含义:在有符号数运算中表示借位情况。
- 通常在减法运算中,如果发生借位,B 标志被设置为 1;否则为 0。
-
Q(Sticky Overflow)标志:
- 含义:表示饱和算术运算是否发生溢出。
- 在饱和算术运算中,如果结果超出了数据类型所能表示的范围,并且进行了饱和处理,Q 标志被设置为 1;否则为 0。