ARM 寄存器组成

上传人:d**** 文档编号:117197998 上传时间:2022-07-08 格式:DOCX 页数:3 大小:14.21KB
返回 下载 相关 举报
ARM 寄存器组成_第1页
第1页 / 共3页
ARM 寄存器组成_第2页
第2页 / 共3页
ARM 寄存器组成_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述
R8R14、SPSR寄存器则被切换到各个模式下的私有寄存器组上,不同的模式下 可以访问相应的私有寄存器。表1显示了在每种模式下,哪些寄存器是有效的(阴寄存器类别寄存器在汇编中的名称各模武实际访问的寄存餵:用户系统管理中止未定义中断快中断通用寄存器 程序计数器.RO ( al)R0Rl ( a2)R1R2 ( a3T)-R2K3 Ca4)R3.K4 (vl)R4R5R5阳R7 卜4)R7;E8 t- v5)R8R8 fiqR9 (SB, v6 5.R9R10ElQjfiqRll(FF, v8)R11Rll fiqM2 (IP)、R12Rl.fiqR13 RipR13ycRlabtR13_.undRlQ_irqR13_fiqJtl4 (LR):.R14R14 svcR14 abtR14 undR14 irqK15 (PC) “R15CPSR:CPSR状瑟寄存器SPSR去SPSR_svcSPSR_abtSPSR_undPSR_irq-SPSRjiq影部分的寄存器都是私有寄存器)。表1 ARM状态下的寄存器组织结构从表1中我们可以看出: R0R7、R15、CPSR寄存器组在任何模式下都是共用的,可访问的; R8R12寄存器组在快中断模式下(fiq)对应一套私有寄存器组R8_fiq R12_fiq,在其他模式下共用另一套寄存器组; R13、R14寄存器在用户(user)和系统(sys)模式下共用一套;其他模式 (管理(svc)、中止(abt)、未定义(und)、中断(irq)、快中断(fiq)模式)下都具有两个私有寄存器R13和R14。这就使得这些模式中的每一种模式都具有各自的堆栈寄存器指针R13和链接寄存器R14,分别用于堆栈处理和异常 退出; SPSR寄存器可用于保存CPSR的值,在用户和系统模式下不能访问,在其他 模式下都有私有的SPSR寄存器。表1中第二列列举了寄存器在汇编语言中的名称,其中括号中的内容是别称。下 面我们对这些寄存器的功能进行介绍。1、一般通用寄存器R0R12寄存器R0R12为保存数据或地址值的一般通用寄存器。其中寄存器R0R7为 未分组的寄存器,R8R12为分组寄存器。未分组的寄存器意味着对于任何处理器模式,他们中的每一个都对应于相同的 32位物理寄存器。他们是完全通用的寄存器,分组寄存器意味着同一个寄存器名对应多个物理寄存器,具体所对应的物理寄存 器取决于当前的处理器模式。参照表2-1,寄存器R8R12有两个分组物理寄存 器。一组用于除FIQ模式之外的所有寄存器模式(R8R12),另一组用于FIQ 模式(R8_fiq R12_fiq)。、寄存器R8R12在ARM体系结构中没有特定的用途。不过对于那些只使用R8 R14来说就足够处理的简单的中断,FIQ所单独使用的这些寄存器可实现快速的 中断处理。2、堆栈指针 R13寄存器R13 (也称为堆栈指针或SP)有6个分组的物理寄存器,见表2-1。一个 用于用户和系统模式,其余5个分别用于5种异常模式。寄存器R13通常作为堆栈指针SP。在ARM指令集中,R13大都用在对各个模式下 的堆栈操作。每个异常模式都具备私有的R13寄存器,它通常指向由异常模式所 专用的堆栈。在入口处,通常将寄存器值保存到这个堆栈。在模式转换前将当前 寄存器的值保存到堆栈中,然后从将要切换的模式堆栈中将这些值从堆栈重装到 已切换的模式寄存器中,这种处理方法可确保异常发生时的程序状态不会被破坏。3、链接寄存器 R14寄存器R14 (也称为链接寄存器或LR)有6个分组的物理寄存器,见表2-1。一 个用于用户和系统模式,其余5个分别用于5种异常模式,对应的私有寄存器有 R14_svc,R14_irq,R14_fiq,R14_abt 和 R14_und。寄存器 R14 有三种用途: 当发生异常时,它被设置为该异常返回地址;在执行分支和链接(BL)指令时,它用于保存子程序的返回地址; 而在其他时候,可以作为一个通用寄存器来对待。4、程序计数器 R15寄存器R15 (也称为程序计数器或PC)总是用于特殊用途,它总是指向下一条要 读取指令的地址。你可以把R15当作通用寄存器使用,但使用时还有与指令有关 的限制或特殊情况。如果R15使用的方式超过了这些限制,那么指令将是不可预 测的。由于ARM7采用3级流水线结构,在ARM状态下,读取R15的值是当前执行指令 地址+ 8。ARM指令以字为单位,读取R15结果的bit 1:0总是为ObOO。对R15进行写时,如果这条写指令没有超过对R15使用的限制,那么写入R15 的正常结果值被当成一个指令地址,程序会从这个地址处继续执行(相当于执行 无条件跳转指令)。因为ARM指令以字为边界,所以写入R15值的bit 1:0通 常为ObOO。5、CPSR 和 SPSR所有模式共享一个程序状态寄存器CPSR。在异常模式中,程序状态保存寄存器 SPSR可以被访问,每种异常具有自己私有的SPSR。在进入异常时,它保存CPSR 的当前值;在异常退出时,可通过它(SPSR)恢复CPSR。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!