ARM体系结构和编程模型.pptVIP

  • 0
  • 0
  • 约1.07万字
  • 约 57页
  • 2019-12-24 发布于广东
  • 举报
* 若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关); 若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。 例如:在软件中断异常SWI,指令 MOV PC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。 * 子程序连接寄存器—R14 R14也称作子程序连接寄存器或连接寄存器LR。当执行BL子程序调用指令时,可以从R14中得到R15(程序计数器PC)的备份。其他情况下,R14用作通用寄存器。 在每一种运行模式下,都可用R14保存子程序的返回地址,当用BL或BLX指令调用子程序时,将下一条指令的地址值拷贝给R14,执行完子程序后,又将R14的值拷贝回PC,即可完成子程序的调用返回。 BL SUB1 …… SUB1: STMFD SP!, {regs, LR} /*将R14存入堆栈*/ …… LDMFD SP!,{regs,PC}/*完成子程序返回 */ * 程序计数器PC(R15) ARM状态下,位[1:0]为0,位[31:2]用于保存PC; Thumb状态下,位[0]为0,位[31:1]用于保存PC; R15虽然也可用作通用寄存器,但一般不这么使用,因为对R15的使用有一些特殊的限制,当违反了这些限制时,程序的执行结果是未知的。 由于ARM体系结构采用了多级流水线技术,对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的地址值加8个字节。 * 程序状态寄存器(CPSR/SPSR) CPSR(当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些相关的控制和状态位。 每一种异常模式下又都有一个专用的物理状态寄存器,称为SPSR(备份的程序状态寄存器),异常发生时,SPSR用于保存CPSR的值,从异常退出时则可由SPSR来恢复CPSR。 由于用户模式和系统模式不属于异常模式,他们没有SPSR,当在这两种模式下访问SPSR,结果是未知的。 * Thumb状态下的寄存器组织 Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集 程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、连接寄存器(LR)和CPSR。 同样,每一种特权模式下都有一组SP、LR和SPSR。 * Thumb状态下的寄存器组织图 * Thumb状态下的寄存器与ARM状态下的寄存器关系 Thumb状态下和ARM状态下的R0~R7是相同的。 Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的。 Thumb状态下的SP对应于ARM状态下的R13。 Thumb状态下的LR对应于ARM状态下的R14。 Thumb状态下的程序计数器对应于ARM状态下R15。 * Thumb状态下的寄存器与ARM状态下的寄存器关系图 * 访问THUMB状态下的高位寄存器(Hi-registers) 在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制的访问这些寄存器,将其用作快速的暂存器。 使用带特殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位寄存器的值可以使用CMP和ADD指令进行比较或加上低位寄存器中的值。 * 程序状态寄存器 ARM体系结构包含一个当前程序状态寄存器(CPSR)和五个备份的程序状态寄存器(SPSRs)。备份的程序状态寄存器用来进行异常处理,其功能包括: 保存ALU中的当前操作信息 控制允许和禁止中断 设置处理器的运行模式 * 程序状态寄存器的每一位的安排 * 程序状态寄存器的条件码标志 N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行 在ARM状态下,绝大多数的指令都是有条件执行的。 在Thumb状态下,仅有分支指令是有条件执行的。 * 标志位的含义 标志位 含 义 N 当用两个补码表示的带符号数进行运算时,N=1 表示运算的结果为负数;N=0 表示运算的结果为正数或零; Z Z=1 表示运算的结果为零;Z=0表示运算的结果为非零; C 加法运算结果进位时,C=1,减法运算借位时,C=0; 移位操作的非加/减运算指令,C为移出的最后一位; 其他的非加/减运算指令,C的值通常不改变。 V 加/减法运算指令,V=1表示符号位溢出。 对于其他的非加/减运算指令,C的值通常不改变。 Q 在ARM v5及以上版本的E系列处理器中,Q标志指示DSP运算指令是否溢出。在其他版本中,Q标志位

文档评论(0)

1亿VIP精品文档

相关文档