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文档。上传文档
查看更多
ARM指令系统及编程模型

ARM指令系统和汇编程序设计;ARM编程模型;ARM数据类型;数据类型;ARM存储器格式;ARM存储器格式;ARM体系结构可以用两种方法存储字数据,称之为大端格式和小格式 大端格式(big-endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中;小端格式(low-endian):与大端存储格式相反 低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节;ARM微处理器的工作状态;ARM微处理器的工作状态;进入Thumb状态 当操作数寄存器的状态位为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态 此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef等),则异常处理返回时,自动切换到Thumb状态;进入ARM状态 当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态 此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态 ;ARM微处理器的工作模式;ARM 有7个基本工作模式 用户模式(usr):非特权模式,大部分任务执行在这种模式 正常程序执行的模式 快速中断模式(fiq):当一个高优先级(fast)中断产生时将会进入这种模式 高速数据传输或通道处理 外部中断模式(irq):当一个低优先级(normal)中断产生时将会进入这种模式 通常的中断处理;管理模式(svc):当复位或软中断指令执行时将会进入这种模式 供操作系统使用的一种保护模式 中止模式(abt): 当存取异常时将会进入这种模式 虚拟存储及存储保护 未定义模式(und): 当执行未定义指令时会进入这种模式 软件仿真硬件协处理器 系统模式(sys):供需要访问系统资源的操作系统任务使用 特权级的操作系统任务;ARM体系结构和寄存器组织;ARM处理器总共有37个32位寄存器 31个通用寄存器 6个状态寄存器;通用寄存器包括R0~R15,可以分为三类 未分组寄存器R0~R7 分组寄存器R8~R14 程序计数器PC(R15) 未分组寄存器R0~R7 在所有的运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途,是真正的通用寄存器 ;分组寄存器R8~R14 每一次所访问的物理寄存器与处理器当前的运行模式有关 对于R8~R12来说,每个寄存器对应两个不同的物理寄存器,当使用fiq模式时,访问寄存器R8_fiq~R12_fiq 当使用除fiq模式以外的其他模式时,访问寄存器R8_usr~R12_usr ;对于R13、R14来说,每个寄存器对应6个不同的物理寄存器 采用以下的记号来区分不同的物理寄存器 R13_mode R14_mode 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und ;分组寄存器R8-R14 寄存器R13在ARM指令中常用作堆栈指针SP,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针 R14也称作子程序连接寄存器(Subroutine Link Register)或连接寄存器LR。当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器;程序计数器PC(R15) 在ARM状态下,位[1:0]为0,位[31:2]用于保存PC;在Thumb状态下,位[0]为0,位[31:1]用于保存PC 虽然可以用作通用寄存器,但是有一些指令在使用R15时有一些特殊限制,若不注意,执行的结果将是不可预料的。所以,一般不这么使用 由于ARM采用多级流水线技术,所以PC总是指向正在取指的指令,而不是正在执行的指令。也即PC总是指向当前指令的下两条指令的地址。因此,对于ARM指令集而言,PC的值为当前指令的地址值加8个字节;状态寄存器;在所有处理器模式下都可以访问当前程序状态寄存器CPSR (Current Program Status Register) CPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息 每种异常模式都有一个保存程序状态寄存器SPSR (Saved Program Status Register)。当异常出现时,SPSR用于保留CPSR的状态 由于用户模式和系统模式不属于异常模式,他们没有SPSR,当在这两种模式下访问SPSR,结果是未知的;Thumb状态下的寄

文档评论(0)

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

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

1亿VIP精品文档

相关文档