- 1、本文档共84页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]ARM体系结构清华第一章
对于备份寄存器R8~R12来说,每个寄存器对应两个不同的物理寄存器。 对于备份寄存器R13和R14来说,每个寄存器对应6个不同的物理寄存器, 采用下面的记号来区分各个物理寄存器: Rn_mode (其中,mode可以是下面几种模式之一:usr、sys、svc、abt、und、irq及fiq。) R13 寄存器R13在ARM中常用作栈指针。在ARM指令集中,这只是一种习惯的用法,并没有任何指令强制性的使用R13作为栈指针,用户也可以使用其他的寄存器作为栈指针;而在Thumb指令集中,有一些指令强制性地使用R13作为栈指针。 每一种异常模式拥有自己的物理的R13。应用程序初始化该R13,使其指向该异常模式专用的栈地址。当进入异常模式时,可以将需要使用的寄存器保存在R13所指的栈中;当退出异常处理程序时,将保存在R13所指的栈中的寄存器值弹出。这样就使异常处理程序不会破坏被其中断程序的运行现场。 R14 寄存器R14又被称为连接寄存器(Link Register,LR),在ARM体系中具有下面两种特殊的作用: 每一种处理器模式自己的物理R14中存放在当前子程序的返回地址。当通过BL或BLX指令调用子程序时,R14被设置成该子程序的返回地址。在子程序中,当把R14的值复制到程序计数器PC中时,子程序即返回。可以通过下面两种方式实现这种子程序的返回操作。 当异常中断发生时,该异常模式特定的物理R14被设置成该异常模式将要返回的地址,对于有些异常模式,R14的值可能与将返回的地址有一个常数的偏移量。 R14寄存器也可以作为通用寄存器使用。 R15 程序计数器R15又被记作PC。当成功地向R15中写入一个地址数值时,程序将跳转到该地址执行。 由于ARM采用了流水线机制,当正确读取了PC的值时,该值为当前指令地址值加8个字节。也就是说,对于ARM指令集来说,PC指向当前指令的下两条指令的地址。 由于ARM指令是字对齐的,PC值的第0位和第1位总为0。 R15 指令 MOV PC,PC 将程序跳转到当前指令下面第2条指令处执行。 因为指令中,第2个PC寄存器读出的值为当前指令的地址值加8,这样对ARM指令而言写入PC寄存器的是当前指令下面第2条指令的地址。 类似的指令还有ADD PC,PC,#0。 CPSR的格式如下所示。SPSR格式与CPSR格式相同。 1. 条件标志位 2. Q标志位 3. CPSR中的控制位 4. CPSR中的其他位 1. 条件标志位 N (Negative)、Z (Zero)、C (Carry) 及V (oVerflow)统称为条件标志位。大部分的ARM指令可以根据CPSR中的这些条件标志位来选择性地执行。 通常如果指令带S后缀,则该指令的执行会影响条件代码标志;但有一些指令的执行总是会影响条件代码标志。 各标志位的含义如下: N 运算结果的最高位反映在该标志位。对于有符号二进制补码,结果为负数时N=1,结果为正数或零时N=0; Z 指令结果为0时Z=1,否则Z=0;对于CMP指令,Z=1表示进行比较的两个数大小相等 C 当进行加法运算,并且最高位产生进位时C=1,否则C=0。当进行减法运算,并且最高位产生借位时C=0,否则C=1。对于结合移位操作的非加法/减法指令,C为从最高位最后移出的值,其它指令C通常不变; V 当进行加法/减法运算,并且发生有符号溢出时V=1,否则V=0,其它指令V通常不变。 2. Q标志位 在ARM v5的E系列处理器中,CPSR的bit[27]称为Q标志位,主要用于指示增强的DSP指令是否发生了溢出。 在ARM v5以前的版本及ARM v5的非E系列的处理器中,Q标志位没有被定义。CPSR的bit[27]属于DNM(RAZ)。 3. CPSR中的控制位 CPSR的低8位I、F、T及M[4∶0]统称为控制位。当异常中断发生时这些位发生变化。在特权级的处理器模式下,软件可以修改这些控制位。 中断禁止位 当I=1时禁止IRQ中断。 当F=1时禁止FIQ中断。 T控制位 T控制位用于控制指令执行的状态 对于ARM v3以及更低的版本和ARM v4的非T系列版本的处理器,没有ARM状态和Thumb状态切换,T控制位应为0。 对于ARM v4以及更高的版本的T系列的ARM处理器,T控制位含义如下: T=0表示执行ARM指令。 T=1表示执行Thumb指令。 M控制位 控制位M[4∶0]控制处理器模式 不是所有模式位的组合都定义了有效的处理器模式,如果使用了错误的设置,将引起一个无法恢复的错误。 4. CPSR中的其他位 CPSR中的其他位用于将来ARM 版本的扩展。应用软件不要操作这些位,以免与ARM将来版本的扩展
文档评论(0)