尊敬的用户:五一期间(5月1日-5月5日),本站所有审核统一于节后处理,如不便之处敬请谅解! icspec全体员工祝您节日愉快!
(六)ARM状态寄存器-PSR
来源:互联网 发布时间:2019-01-09 分享至微信

ARM程序状态寄存器Program State Register


在ARM模式中, 有16个数据寄存器和1或2个状态寄存器是可以随时访问的.在特权模式(privileged mode)下, 对应的特殊组寄存器才可以使用.

CPSR


当前程序状态寄存器(Current Program State Register)

SPSR


保存的程序状态寄存器(Saved Program State Register), 有6个,主要是在处理异常的时候使用.


每一种处理器模式下都有一个专用的物理寄存器作为备份的程序状态寄存器SPSR , 当特定的异常发生时,这个物理寄存器负责保存CPSR当前程序状态寄存器的内容, 当异常处理程序返回时,再将内容恢复到当前程序状态器中,继续向下执行原来程序.

结构解析


CPSR和保存它的SPSR寄存器因为都属于状态寄存器PSR,因此它们的结构相同,如下:


保存最近的逻辑或者算术操作的信息;


控制中断时使能;


设置处理器的工作模式;


状态寄存器的各个位的功能如下图:



其中,着重要注意的是高4位(28-31)和低8位(0-7).
注意:
-DNM(Do Not Modify):不同通过软件进行赋值;
-条件标志位(Condition code flags): N,Z,C,V. 这些位可以通过逻辑或者算术操作, 或者MSR和LDM指令来操作. 处理器会测试这些标志位,以确定是否操作一些指令.



-控制位(低8位 I,F,T,M[4:0]),当发生异常时, 这些为的值将发生相应的变化.在特权模式下,也可以通过软件来修改这些位.用的比较多.






[ 新闻来源:互联网,更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj]
存入云盘 收藏
举报
全部评论

暂无评论哦,快来评论一下吧!