嵌入式演示文稿.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.5.1 ARM状态下的寄存器组织(3) 寄存器R13 寄存器R13在ARM指令中常用作堆栈指针。 在用户应用程序的初始化部分,一般都要初始化每种模式下的R13 (R13_svc、R13_irq、R13_fiq、R13_abt和R13_und ),使其指向该运行模式的栈空间。 当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序从异常模式返回时,则从对应的堆栈中恢复,采用这种方式可以保证异常发生后程序的正常执行。 当前第30页\共有68页\编于星期四\22点 2.5.1 ARM状态下的寄存器组织(4) 寄存器R14 子程序连接寄存器(Subroutine Link Register)或链接寄存器LR。 子程序调用: 当执行BL(BLX)子程序调用指令时,R14中得到R15(程序计数器PC)的备份。 中断或异常: 对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值。 当前第31页\共有68页\编于星期四\22点 2.5.1 ARM状态下的寄存器组织(5) 寄存器R15 程序计数器PC。 寄存器R15用作程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]用于保存PC;在Thumb状态下,位[0]为0,位[31:1]用于保存PC。 由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8个字节。 当前第32页\共有68页\编于星期四\22点 2.5.1 ARM状态下的寄存器组织(6) 当前程序状态寄存器 CPSR CPSR(Current Program Status Register) CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。 备份的程序状态寄存器SPSR(Saved Program Status Register) ,当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。 用户模式和系统模式不属于异常模式,他们没有SPSR,当在这两种模式下访问SPSR,结果是未知的。 当前第33页\共有68页\编于星期四\22点 2.5.1 ARM状态下的寄存器组织(7) CPSR 当前第34页\共有68页\编于星期四\22点 2.5.1 ARM状态下的寄存器组织(8) 条件码标志(Condition Code Flags) N、Z、C、V:条件码标志位。可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。 在ARM状态下,绝大多数的指令都是有条件执行的。 在Thumb状态下,仅有分支指令是有条件执行的。 当前第35页\共有68页\编于星期四\22点 2.5.1 ARM状态下的寄存器组织(9) 在ARM v5及以上版本的E系列处理器中,用Q标志位指示增强的DSP运算指令是否发生了溢出。在其他版本的处理器中,Q标志位无定义。 Q 对于加/减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出。 对于其他的非加/减运算指令,C的值通常不改变。 V 加法运算(包括比较指令CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。 减法运算(包括比较指令CMP):当运算时产生了借位(无符号数溢出),C=0,否则C=1。 对于包含移位操作的非加/减运算指令,C为移出值的最后一位。 对于其他的非加/减运算指令,C的值通常不改变。 C Z=1 表示运算的结果为零;Z=0表示运算的结果为非零。 Z N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零。 N 含 义 标志位 当前第36页\共有68页\编于星期四\22点 2.5.1 ARM状态下的寄存器组织(10) 控制位 CPSR的低8位(包括I、F、T和M[4:0])称为控制位,当发生异常时这些位可以被改变。如果处理器处于特权模式,这些位也可以由程序修改。 中断禁止位I、F: I=1 禁止IRQ中断(外部中断) F=1 禁止FIQ中断(快速中断) T标志位: T=1 Thumb状态 T=0 ARM状态 当前第37页\共有68页\编于星期四\22点 2.5.1 ARM状态下的寄存器组织(11) M[4:0]运行模式位:这些位决定了处理器的运行模式。 M[4:0] 处理器模式 可访问的寄存器 0b10000 用户模式 PC,CPSR,R0-R14 0b10001 FIQ模式 PC,CPSR, SPSR_fiq,R

文档评论(0)

hekuncheng5991 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档