网站大量收购独家精品文档,联系QQ:2885784924

ARM体系结构和编程[精品].ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM体系结构和编程[精品]

第四章 ARM体系结构及汇编程序设计基础 三 .ARM指令系统 1.复习 2.ARM寻址方式 3.ARM指令格式和常见指令使用方法 ARM微处理器的寄存器结构 ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括: 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。 处理器运行模式 ARM微处理器支持7种运行模式,分别为: usr(用户模式):ARM处理器正常程序执行模式。 fiq(快速中断模式):用于高速数据传输或通道处理 irq(外部中断模式):用于通用的中断处理 svc(管理模式):操作系统使用的保护模式 abt (数据访问终止模式): 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 sys(系统模式): 运行具有特权的操作系统任务。 und(未定义指令中止模式):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。 注: 大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。 异常模式 处理器工作状态 ARM处理器有32位ARM和16位Thumb两种工作状态。 在32位ARM状态下执行字对齐的ARM指令 在16位Thumb状态下执行半字对齐的Thumb指令 在Thumb状态下,程序计数器PC(Program Counter)使用位[1]选择另一个半字。 ARM处理器的寄存器组织 ARM处理器的37个寄存器被安排成部分重叠的组,不能在任何模式都可以使用,寄存器的使用与处理器状态和工作模式有关。如图2.3.1所示,每种处理器模式使用不同的寄存器组。其中15个通用寄存器(R0~R14)、1或2个状态寄存器和程序计数器是通用的。 31 个通用32位寄存器,包括程序计数器PC: 未分组寄器R0-R7; 分组寄存器R8-R14; 程序计数器PC(R15); 6 个状态寄存器; 可访问的寄存器取决于处理器的模式 R14寄存器与子程序调用: 读R15的限制 程序状态寄存器(CPSR) ARM内核包含1个CPSR和5个供异常处理程序使用的SPSR。CPSR反映了当前处理器的状态,其包含: 4个条件代码标志(负(N)、零(Z)、进位(C)和溢出(V); 2个中断禁止位,分别控制一种类型的中断; 5个对当前处理器模式进行编码的位; 1个用于指示当前执行指令(ARM还是Thumb)的位。 条件代码标志 大多数“数值处理指令”可以选择是否影响条件代码标志位。通常如果指令带S后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志(比如CMP、TST、TEQ等)。 N、 Z、 C和V位都是条件代码标志。通过算术操作、逻辑操作、MSR或者LDM指令可以对这些位进行设置。所有ARM指令都可按条件来执行,而Thumb指令中只有分支指令可按条件执行。 控制位 CPSR的最低8位为控制位,当发生异常时,这些位被硬件改变。当处理器处于一个特权模式时,可用软件操作这些位。 它们分别是: 中断禁止位; T位; 模式位。 中断禁止位包括I和F位: 当I位置位时,IRQ中断被禁止; 当F位置位时,FIQ中断被禁止。 T位反映了正在操作的状态: 当T位置位时,处理器正在Thumb状态下运行; 当T位清零时,处理器正在ARM状态下运行。 模式位包括M4、M3、M2、M1和M0,这些位决定处理器的操作模式。 程序状态寄存器 条件位: N = 1-结果为负,0-结果为正或0 Z = 1-结果为0,0-结果不为0 C =1-进位,0-借位 V =1-结果溢出,0结果没溢出 Q 位: 仅ARM 5TE/J架构支持 指示增强型DSP指令是否溢出 J 位 仅ARM 5TE/J架构支持 J = 1: 处理器处于Jazelle状态 中断禁止位: I = 1: 禁止 IRQ. F = 1: 禁止 FIQ. T Bit 仅ARM xT架构支持 T = 0: 处理器处于 ARM 状态 T = 1: 处理器处于 Thumb 状态 Mode位(处理器模式位): 0b10000 User 0b10001 FIQ 0b10010 IRQ 0b10011 Supervisor 0b10111 Abort 0b11011 Undefined 0b11111 System ARM微处理器的异常处理 在一个正常的程序流程执行过程中,由内部或外部源产生的一个事件使正常的程序产生暂时的停

您可能关注的文档

文档评论(0)

bodkd + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档