简述程序状态寄存器的位功能。
正确答案:(1)条件码标志
N、Z、C、V(Negative、Zero、Carry、oVerflow)均为条件码标志位(ConditionCodeFlags),它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。CPSR中的条件码标志可由大多数指令检测以决定指令是否执行。在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下,仅有分支指令是有条件执行的。
通常条件码标志通过执行比较指令(CMN、CMP、TEQ、TST)、一些算术运算、逻辑运算和传送指令进行修改。
条件码标志的通常含义如下:
●N:如果结果是带符号二进制补码,那么,若结果为负数,则N=1;若结果为正数或0,则N=0。
●Z:若指令的结果为0,则置1(通常表示比较的结果为“相等”),否则置0。
C://可用如下4种方法之一设置:
一-加法(包括比较指令CMN)。若加法产生进位(即无符号溢出),则C置1;否则置0。
一-减法(包括比较指令CMP)。若减法产生借位(即无符号溢出),则C置0;否则置1。
一-对于结合移位操作的非加法/减法指令,C置为移出值的最后1位。
一-对于其他非加法/减法指令,C通常不改变。
●V:可用如下两种方法设置,即
一-对于加法或减法指令,当发生带符号溢出时,V置1,认为操作数和结果是补码形式的带符号整数。
一-对于非加法/减法指令,V通常不改变。
(3)控制位
程序状态寄存器PSR(ProgramStatusRegister)的最低8位I、F、T和M[4:0]用作控制位。当异常出现时改变控制位。处理器在特权模式下时也可由软件改变。
A.中断禁止位
I:置1,则禁止IRQ中断;
F://置1,则禁止FIQ中断。
B.T位
T=0指示ARM执行;
T=1指示Thumb执行。
C.模式控制位
M4、M3、M2、Ml和M0(M[4:0])是模式位,决定处理器的工作模式。
N、Z、C、V(Negative、Zero、Carry、oVerflow)均为条件码标志位(ConditionCodeFlags),它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。CPSR中的条件码标志可由大多数指令检测以决定指令是否执行。在ARM状态下,绝大多数的指令都是有条件执行的。在Thumb状态下,仅有分支指令是有条件执行的。
通常条件码标志通过执行比较指令(CMN、CMP、TEQ、TST)、一些算术运算、逻辑运算和传送指令进行修改。
条件码标志的通常含义如下:
●N:如果结果是带符号二进制补码,那么,若结果为负数,则N=1;若结果为正数或0,则N=0。
●Z:若指令的结果为0,则置1(通常表示比较的结果为“相等”),否则置0。
C://可用如下4种方法之一设置:
一-加法(包括比较指令CMN)。若加法产生进位(即无符号溢出),则C置1;否则置0。
一-减法(包括比较指令CMP)。若减法产生借位(即无符号溢出),则C置0;否则置1。
一-对于结合移位操作的非加法/减法指令,C置为移出值的最后1位。
一-对于其他非加法/减法指令,C通常不改变。
●V:可用如下两种方法设置,即
一-对于加法或减法指令,当发生带符号溢出时,V置1,认为操作数和结果是补码形式的带符号整数。
一-对于非加法/减法指令,V通常不改变。
(3)控制位
程序状态寄存器PSR(ProgramStatusRegister)的最低8位I、F、T和M[4:0]用作控制位。当异常出现时改变控制位。处理器在特权模式下时也可由软件改变。
A.中断禁止位
I:置1,则禁止IRQ中断;
F://置1,则禁止FIQ中断。
B.T位
T=0指示ARM执行;
T=1指示Thumb执行。
C.模式控制位
M4、M3、M2、Ml和M0(M[4:0])是模式位,决定处理器的工作模式。
答案解析:有
微信扫一扫手机做题