T32状态下寄存器组织、AArch32/64重要寄存器(ARM处理器架构模型——寄存器组织,中篇)
本文声明内容来源于网络进行整合/再创作部分内容由AI辅助生成。T32状态下的寄存器组织Thumb状态寄存器是ARM状态的子集。注意在Thumb状态下发生异常时处理器自动进入ARM状态。A32与T32状态下的寄存器组织在Thumb状态中高寄存器R8R15不是标准寄存器集的一部分。汇编语言对它们的访问受到限制但可以将它们用于快速暂存。可以使用MOV、CMP和ADD指令对高寄存器操作。Thumb状态寄存器在ARM状态寄存器上的映射AArch32 重要寄存器简介寄存器类型Bit描述R0-R1532bit通用寄存器但ARM不建议将有特殊功能的R13~R15作为通用寄存器使用SP_x32bit一般将R13作为堆栈指针寄存器SP 除了SYS模式外其他各种模式下都有对应的SP_x 寄存器x{und/svc/abt/irq/fiq/hyp/mon}LR_x32bit一般将R14作为链接寄存器LR 除了SYS和HYP模式外其他各种模式下都有对应的LR_x寄存器x{und/svc/abt/irq/fiq/mon}用于保存子程序返回的链接信息地址。AArch32状态下也用于保存异常返回的地址即LR和ELR是公用一个而AArch64执行状态下是独立的ELR_hyp32bitHYP模式下特有的异常链接寄存器保存异常进入HYP模式时的异常地址PC32bit通常称R15为程序计算器PC指针。AArch32中PC指向的取指地址是当前执行指令地址8Thumb状态下是当前执行指令地址4CPSR32bit记录当前PE的运行状态数据CPSR.M[4:0]记录运行模式AArch64下使用PSTATE代替SPSR_x32bit是CPSR的备份除了USR和SYS模式外其他各种模式下都有对应的SPSR_x寄存器x{und/svc/abt/irq/fiq/hpy/mon}注意这些模式只适用于32bit运行环境APSR32bit应用程序状态寄存器EL0下可以使用APSR访问部分PSTATE值HCR32bitEL2特有HCR.{TEG,AMO,IMO,FMO,RW}控制EL0/EL1的异常路由SCR32bitEL3特有SCR.{EA,IRQ,FIQ,RW}控制EL0/EL1/EL2的异常路由注意EL3始终不会路由VBAR32bit保存任意异常进入非HYP模式、非MON模式的跳转向量基地址HVBAR32bit保存任意异常进入HYP模式的跳转向量基地址MVBAR32bit保存任意异常进入Monitor mode的跳转向量基地址ESR_ELx32bit保存异常进入ELx时的异常综合信息包含异常类型EC等可以通过EC值判断异常classAArch64 重要寄存器简介寄存器类型Bit描述X0-X3064bit通用寄存器原先AArch32下的SP、PC不再是了但如果有需要向下兼容可以作为32bit寄存器使用W0-W30LR64bit通常称X30为专用链接寄存器保存程序跳转返回的信息地址ELR_ELx64bit异常链接寄存器保存异常进入ELx的异常地址x{0,1,2,3}SP_ELx64bit管理不同异常级别的堆栈指针寄存器若PSTATE.M[0]1则每个ELx选择SP_ELx否则选择同一个SP_EL0PC64bit程序计数器俗称PC指针总是指向当前正在执行的指令地址执行完当前指令后PC 硬件本身会自动更新为下一条指令的地址当前指令地址 4SPSR_ELx32bit保存程序状态寄存器主要用于在异常处理过程中保存当前异常级别ELx的PSTATE状态信息。NZCV32bit允许访问的符号标志位DIAF32bit中断使能位D-DebugI-IRQA-SErrorF-FIQ逻辑0允许CurrentEL32bit记录当前处于哪个异常等级Exception levelSPSel32bit记录当前使用SP_EL0还是SP_ELxx{1,2,3}HCR_EL232bitHCR_EL2.{TEG,AMO,IMO,FMO,RW}控制EL0/EL1的异常路由 逻辑1允许SCR_EL332bitSCR_EL3.{EA,IRQ,FIQ,RW}控制EL0/EL1/EL2的异常路由 逻辑1允许ESR_ELx32bit保存异常进入ELx时的异常综合信息包含异常类型EC等VBAR_ELx64bit保存任意异常进入ELx的跳转向量基地址x{0,1,2,3}PSTATE——不是一个寄存器是保存当前PE状态的一组寄存器统称其中可访问寄存器有PSTATE.{NZCV,DAIF,CurrentEL,SPSel}属于ARMv8新增内容在AArch64执行状态下代替CPSRTipsPEProcessing Element——处理单元即处理器的一个核心执行单元。ARMv8架构64位和32位寄存器的映射关系
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2419574.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!