没有合适的资源?快使用搜索试试~ 我知道了~
ARM处理器共有37个寄存器。其中包括: **31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。 **6个状态寄存器。这些寄存器都是32位寄存器。 ARM处理器共有7种不同的处理器模式,每一种模式中都有一组相应的寄存器组。在任何时刻,可见的寄存器包括15个通用寄存器(R0-R14),一个或两个状态寄存器及程序计数器(PC)。在所有的寄存器中,有些是各模式公用一个物理寄存器,有一些寄存器各模式拥有自己独立的物理寄存器。
资源详情
资源评论
资源推荐
处理器共有 个寄存器。其中包括:
个通用寄存器,包括程序计数器()在内。这些寄存器都是 位寄存
器。
个状态寄存器。这些寄存器都是 位寄存器。
处理器共有 种不同的处理器模式,每一种模式中都有一组相应的寄存器
组。在任何时刻,可见的寄存器包括 个通用寄存器()一个或两
个状态寄存器及程序计数器()。在所有的寄存器中,有些是各模式公用一
个物理寄存器,有一些寄存器各模式拥有自己独立的物理寄存器。
通用寄存器
通用寄存器分为以下三类:备份寄存器、未备份寄存器、程序计数器
未备份寄存器
未备份寄存器包括 。对于每一个未备份寄存器来说,所有处理器模式下
都是使用同一个物理寄存器。未备份寄存器没有被系统用于特别的用途,任何
可采用通用寄存器的场合都可以使用未备份寄存器。
备份寄存器
对于 备份寄存器来说,每个寄存器对应两个不同的物理寄存器。系统
为将备份寄存器用于任何的特殊用途,但是当中断处理非常简单,仅仅使用
寄存器时, 处理程序可以不必执行保存和恢复中断现场的指令,
从而可以使中断处理非常迅速。
对于 备份寄存器来说,每个寄存器对应六个不同的物理寄存器,其
中的一个是系统模式和用户模式共用的;另外的五个对应于其他的五种处理器
模式。采用下面的记号来区分各个物理寄存器:
其中 可以是下面几种模式之一: !"#$%&'()(
程序计数器
可以作为一般的通用寄存器使用,但有一些指令在使用 时有一些限制。由
于 采用了流水线处理器机制,当正确读取了 的值时,该值为当前指令
地址值加上 个字节。也就是说,对于 指令集来说, 指向当前指令的
下两条指令的地址。由于 指令是字对齐的, 值的第 位和第一位总为
。
需要注意的是,当使用 $*$+ 保存 时,保存的可能是当前指令地址值加
个字节,也可能保存的是当前指令地址值加 个字节。到底哪种方式取决于
芯片的具体设计。对于用户来说,尽量避免使用 ,-*,- 指令来保存 的
值。
当成功的向 写入一个数值时,程序将跳转到该地址执行。由于 指令
是字对齐的,写入 的值应满足 #'$./0为 #,具体要求 "+ 个版本
有所不同:
对于 "+ 以及更低的版本,写入 的地址值 #'$./0被忽略,即写入
的地址值将与 1 做与操作。
对于 以及更高的版本,程序必须保证写入 的地址值 #'$./0为
#,否则将产生不可预知的后果。
对于 -2+# 指令集来说,指令是班子对齐的,处理器将忽略 #'$.0。
程序状态寄存器
,3当前程序状态寄存器4在任何处理器模式下被访问。它包含了条件标志位、
中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。每一种处理
器
模式下都有一个专用的物理状态寄存器,称为 ,,(备份程序状态寄存器)
。当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。
在异常中断退出时,可以用 ,, 来恢复 ,。由于用户模式和系统模式不
是异常
中断模式,所以他没有 ,,。当用户在用户模式或系统模式访问 ,,,将产
生不可预知的后果。
, 格式如下所示。,, 和 , 格式相同。
5
6786374-
条件标志位
699本位设置成当前指令运算结果的 #'$.0的值。当两个表示的有符号整数
运算时,%: 表示运算结果为负数,%: 表示结果为正书或零。
;99;: 表示运算的结果为零;;: 表示运算的结果不为零。对于 指令,
7: 表示进行比较的两个数大小相等。
99下面分四种情况讨论 的设置方法:
在加法指令中(包括比较指令 ),当结果产生了进位则 :表示无符
号运算发生上溢出;其他情况 :。
在减法指令中(包括减法指令 ),当运算中发生错位,则 :,表示无
符号运算数发生下溢出;其他情况下 :。
对于包含移位操作的非加碱运算指令, 中包含最后一次溢出的的位的数值
对于其他非加减运算指令, 位的值通常不受影响
899对于加减运算指令,当操作数和运算结果为二进制的补码表示的带符号
数时,8: 表示符号为溢出;通常其他指令不影响 8 位。
标识位
在 8 的 系列处理器中,, 的 #'$.0称为 ( 标识位,主要用于指
示增强的 &< 指令是否发生了溢出。同样的 < 的 #'$.0位也称为 ( 标识位,
用于在异常中
断发生时保存和恢复 , 中的 标识位。
在 8 以前的版本及 8 的非 系列的处理器中, 标识位没有被定
义。
, 中的控制位
, 的低八位 、、-、./0统称为控制位。当异常中断发生时这些位发
生变化。在特权级的处理器模式下,软件可以修改这些控制位。
中断禁止位:当 : 时禁止 中断,当 : 时禁止 中断
- 控制位:- 控制位用于控制指令执行的状态,即说明本指令是 指令还
是 -2+# 指令。对于 8 以更高版本的 - 系列 处理器,- 控制位
含义如下:
-: 表示执行 指令
-: 表示执行 -2+# 指令
对于 8 以及更高版本的非 - 系列处理器,- 控制位的含义如下
-: 表示执行 指令
-: 表示强制下一条执行的指令产生未定指令中断
控制位
控制位控制处理器模式,具体含义如下:
./0处理器模式可访问的寄存器
=#><!?,
#?,,,
#
?,,,
@,A8,,8
,8?,,,,8
#@-@-
@-?,,,@-
#A66A6
A6?,,,A6
#,B,-,38 以及更高版本)
, 中的其他位
这些位用于将来扩展。应用软件不要操作这些位。
在 体系中通常有以下 种方式控制程序的执行流程:
在正常执行过程中,每执行一条 指令,程序计数器34的值加 个字
节;每执行一条 -2+# 指令,程序计数器寄存器34加 个字节。整个过程
是按顺序执行
。
跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程
序处执行。其中@ 指令用于执行跳转操作;@C 指令在执行跳转操作同时,保
存子程
序的返回地址;@D 指令在执行跳转操作同时,根据目标地址为可以将程序切换
到 -2+# 状态;@CD 指令执行 个操作,跳转到目标地址处执行,保存子程
序的返回
地址,根据目标地址为可以将程序切换到 -2+# 状态。
当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理
程序处执行。当异常中断处理程序执行完成后,程序返回到发生中断指令的下
条指
令处执行。在进入异常中断处理程序时,要保存被中断程序的执行现场,从异
常中断处理程序退出时,要恢复被中断程序的执行现场。
中异常中断的种类
剩余16页未读,继续阅读
zoudb
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0