ARM微处理器的编程模型(一).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文档。上传文档
查看更多
* ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * Half * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * ? 国防科技大学计算机学院601室 * * * 1 ARM状态下的寄存器组织(续) 不同物理寄存器的区分 R13_mode R14_mode mode为:usr、fiq、irq、svc、abt、und 例如: R13_usr、R13_fiq、R13_irq R14_svc、R14_abt、R14_und * * 1 ARM状态下的寄存器组织(续) R13寄存器 常用作堆栈指针SP(Stack Pointer),一种习惯用法 在Thumb指令集中,某些指令强制使用R13作为堆栈指针 在应用程序初始化时,一般都要初始化每种模式下的R13,使其指向该工作模式的栈空间 * * 1 ARM状态下的寄存器组织(续) R14寄存器 也称链接寄存器LR (Link Register) 当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份 BL Label;下一条指令地址?LR, Label?PC 当发生中断或异常时,对应的分组寄存器R14_svc、R14_irq、R14_fiq、R14_abt和R14_und用来保存R15的返回值(R14中保存的值等于异常发生时PC,因此在各种异常模式下可以根据R14的值返回到异常发生前的相应位置继续执行) * * 1 ARM状态下的寄存器组织(续) R14寄存器常用情形 1、常用用法(子程序返回) (1)MOV PC, LR (2)BXLR 2、在子程序入口处使用以下指令将R14存入堆栈(现场保护) STMFD SP!, {Regs, LR}(LR最先进栈) 使用以下指令可以完成子程序返回(现场恢复和跳转) LDMFD SP!, {Regs, PC} * * 1 ARM状态下的寄存器组织(续) R15寄存器 R15寄存器用作程序计数器(PC) 在ARM状态下,位[1:0]为0,位[31:2]用于保存PC 在Thumb状态下,位[0]为0,位[31:1]用于保存PC 当ARM体系结构采用了三级流水结构,对于ARM指令集而言,PC总是指向当前执行指令的下两条指令的地址,即PC的值为当前执行指令的地址值加8个字节 (即PC指向下一条要取的指令地址) * * 1 ARM状态下的寄存器组织(续) CPSR寄存器 用作CPSR(Current Program Status Register) CPSR可在任何工作模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位 异常模式下有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register) 当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR 用户模式和系统模式不属于异常模式,没有SPSR * * * * 2 Thumb状态下的寄存器组织 Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集 程序可以直接访问 8个通用寄存器(R7~R0) 程序计数器(PC) 堆栈指针(SP) 连接寄存器(LR) CPSR 在每一种异常模式下都有一组SP、LR和SPSR * * * * 两种工作状态下寄存器比较 * * 3 程序状态寄存器 程序状态寄存器的构成 一个当前程序状态寄存器(CPSR) 五个备份程序状态寄存器(SPSR) 备份的程序状态寄存器用来进行异常处理 程序状态寄存器的功能 保存ALU中的当前操作信息 控制允许和禁止中断 设置处理器的工作模式 * * 3 程序状态寄存器(续) * * 3 程序状态寄存器(续) 条件码标志(Condition Code Fl

文档评论(0)

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

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

1亿VIP精品文档

相关文档