第2章-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文档。上传文档
查看更多
Ⅰ取指部件:依PC从M取指令入CPU; PC?PC+4。 Ⅱ译码部件:指令译码。 Ⅲ执行部件:执行指令。 Ⅶ异常响应(异常服务程序入口地址入PC )。 Ⅵ.有异常请求吗? Ⅳ访存部件:访存操作。 Ⅴ回写部件:回写寄存器。 N 取指 t 译码 执行 访存 回写 取指 译码 执行 访存 回写 取指 译码 执行 访存 回写 取指 译码 执行 访存 回写 …………………. 取指 译码 执行 访存 回写 取指 译码 执行 访存 回写 指令1 指令2 指令3 指令4 指令5 指令6 …….. 进流水 全并行 ARM状态各模式下的寄存器 寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。 ARM状态各模式下的寄存器 寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。 ARM状态各模式下的寄存器 寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。 ARM状态各模式下的寄存器 R14为链接寄存器(LR),在结构上有两个特殊功能: 在每种模式下,模式自身的R14版本用于保存子程序返回地址; 当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。 Lable 程序A 程序B R14 R14寄存器与子程序调用 BL Lable 地址A ??? MOV PC,LR R14(地址A) Lable ??? 1.程序A执行过程中调用程序B; 操作流程 2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable”指令的下一条指令所在地址存入R14; 3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A; ARM状态各模式下的寄存器 寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。 执行一条指令时,R15的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。 由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。 ARM状态各模式下的寄存器 寄存器CPSR为程序状态寄存器,在异常模式中,另外一个寄存器“备份程序状态寄存器(SPSR)”可以被访问。 每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。 CPSR反映了当前处理器的状态,其包含: 4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V) ); 2个中断禁止位,分别控制一种类型的中断; 5个对当前处理器模式进行编码的位; 1个用于指示当前执行指令(ARM还是Thumb)的位。 条件码标识来源:执行带S后缀的指令会影响条件代码标志,还有一些指令的执行总是会影响条件代码标志。 条件码标识利用:算术操作类指令要此位;所指令都可以按条件码标识来执行。 各标志位的含义如下: N 运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0; Z 指令结果为0时Z=1(通常表示比较结果“相等”),否则Z=0; C 当进行加法运算(包括CMN指令),并且最高位产生进位时C=1,否则C=0。当进行减法运算(包括CMP 指令),并且最高位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,其它指令C通常不变; V当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。 CPSR的最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。 它们分别是: 中断禁止位; T位; 模式位。 中断禁止位包括I和F位: 当I位置位时,IRQ中断被禁止; 当F位置位时,FIQ中断被禁止。 T位反映了正在操作的状态: 当T位置位时,处理器正在Thumb状态下运行; 当T位清零时,处理器正在ARM状态下运行。 模式位包括M4、M3、M2、M1和M0,

文档评论(0)

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

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

1亿VIP精品文档

相关文档