目录
概要
APSR中包含下面几种状态标志:
1.整数运算的状态标志(N-Z-C-V位)
2.饱和运算的状态标志(Q位)
3.SIMD(单指令多数据)的状态标志(GE位)
整数状态标志
Cortex-M处理器中共存在4个整数标志,如图所示:
APSR的进位标志也可以用于将加减法扩大为超过32位。例如可以将64位加法的高32位放在低32位进位标志。
Q状态标志
Q表示饱和运算过程中产生了饱和,在Cortex-M0中不存在。该位被设置后,在软件清除Q位之前会一直保持置位状态,因此可以在饱和运算流程结束后检查该位确定是否产生了饱和;
在数字信号处理时,若计算结果的保存寄存器位宽度不够,会导致上溢或下溢。饱和算数运算不会像一般算数指令一样丢弃MSB,而是将结果强制置为最大值或最小值以降低信号畸变影响;
GE位
GE位域在APSR中占用4位,在Cortex-M3中不存在。许多SIMD指令都会更新该标志位。对于具有16位数据的SIMD指令,第0和1位由低半字的结果控制,第2和3位由高半字的结果控制;