首页 > 代码库 > CPSR和SPSR中各个位的含义
CPSR和SPSR中各个位的含义
N:负数标志位。如果目标寄存器中的有符号数为负数,则N=1,否则N=0。
Z:零标志位。如果目标寄存器中的数为0,则N=1,否则N=1。
C:进位标志位。有以下3种情况
1、无符号加法运算和CMN指令,如果产生进位,则C=1,否则C=0;
2、无符号减法运算和CMP指令,如果产生借位,则C=0,否则C=1;
3、进行移位操作的时候,C中保存最后一位移出的值。
说明:当一条指令中同时含有算术运算指令和移位指令时,影响C的值是算术运算而不是移位操
作。
V:溢出标志位。进行有符号运算时如果发生错误,则V=1,否则V=0。
一些指令如CMN、TEQ等会无条件的刷新CPSR中的条件标志位,其他指令必须要在指令后面加上S后缀才会改变CPSR中的条件标志位。
I:IRQ中断禁止位。I=1代表禁止IRQ中断,I=0代表允许IRQ中断。
F:FIQ中断禁止位。F=1代表禁止FIQ中断,F=0代表允许FIQ中断。
这里和51单片机中的中断使能位有点小差别,51中的是中断使能位,所以为1的时候应该是中断使能,即允许中断。而这里是中断禁止位,为1的时候应该是禁止中断。
T:这一位只在ARMv4T指令集版本及以上才有效。因为ARMv4版本及以下都不支持Thumb指
令集。在支持Thumb指令集的处理器中,T=0表示处于ARM状态,T=1表示处于Thumb状态。
M[4:0]:用于控制7种模式位。
CPSR和SPSR中各个位的含义
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。