您的位置:首页 > 其它

arm core中寄存器CPSR的每一位的具体意义

2013-11-03 18:16 274 查看
有什么错误希望大家指出来,一起学习;

CPSR是32位寄存器,各位的状态:

31 30 29 28 27 25 26 24 23 20 19 16 15 10 9 8 7 6 5 4 0

N Z C V Q RESERVED J RESERVED GE[3:0] RESERVED E A I F T M[4:0]

N:计算结果 <0, N = 1

>= 0, N = 0

Z:当计算结果出现 0 时(一般用于比较指令相等时),Z = 1;否则 Z = 0

C:默认为1,不会自动置位

减法:需借位, C = 0; 无借位, C = 1

加法:有进位, C = 1; 无进位, C = 0

V:有溢出: V = 1; 无溢出: V = 0

Q:饱和:Q = 1; 不饱和:Q = 0

饱和:

0x80000000,...,-2,-1,0,1,2,...,0x7fffffff

0x80000000 的减法运算将变回 正数, <= 0x7fffffff

0x7fffffff 的加法运算将变回 负数, >= 0x80000000

饱和运算:

qadd(语法规则与add相同)

计算结果饱和到 0x7fffffff 或 0x80000000,即正数不会大于 0x7fffffff,负数不会小于 0x80000000

RESERVED:保留位,不用

J:当前执行的执行种类,java指令, J = 1

RESERVED:保留位,不用

GE[3:0]:保留指令(不用)

RESERVED:保留位,不用

E:数据存储用大端:E = 1;用小端:E = 0

住:在arm的CP15中修改其值,arm支持大小端,X86只支持小端

A:abort中止禁止位

禁止段错误发生,A = 1; 否则,A = 0

I:中断禁止位

I = 1,禁止IRQ请求

F:快速中断禁止位

F = 1,禁止FRQ请求

M[4:0]:存放工作模式编号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: