Thumb状态下寄存器
Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、链接寄存器(LR)和CPSR。同时,在每一种特权模式下都有一组SP、LR和SPSR。
如图说明了Thumb状态下的寄存器组织。
在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制地访问这些寄存器,将其用作快速的暂存器。使用带特殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位寄存器的值可以使用CMP和ADD指令进行比较或加上低位寄存器中的值。
ARM状态寄存器与Thumb状态寄存器之间的关系
1.Thumb 状态 R0~R7 与 ARM状态 R0~R7相同
2.Thunb 状态CPSR(无SPSR)与ARM状态CPSR相同。由于Thumb指令集不包括MSR和MRS指令,如果用户需要修改CPSR的任何标志位,必须回到ARM模式。通过BX和BLX指令来改变指令接模式,而且当完成复位(Reset)或者进入到异常模式时,将会被自动切换到ARM模式(注意:所有的异常处理都是在ARM状态下处理的,在Thumb状态下,如果有任何中断或者异常标志出现,处理器自动切换到ARM状态下进行异常处理,完成后,有自动切换到Thumb状态)
3.Thumb状态下的SP对应于ARM状态下的R13。
4.Thumb状态下的LR对应于ARM状态下的R14。
5.Thumb状态下的程序计数器对应于ARM状态下R15。
由以上5个关系叉可以总结出Thumb、ARM状态寄存器的映射图。
分享到:
相关推荐
ARM指令子集--Thumb指令.pdf 学习资料 复习资料 教学资源
Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、链接寄存器(LR)和CPSR。同时,在每一种特权模式下都有一组SP、I-R和SPSR。 ...
程序结束 R0地址赋为0x00 .end根据CPSR地址进行判断状态跳转是否正常,d3状态为ARM状态,f3状态为Thumb状态五丶心得体会本次实验完成Thum
1.1 Processor architecture and organization 2 1.2 Abstraction in hardware design 3 1.3 MU0 - a simple processor 7 1.4 Instruction set design 14 1.5 Processor design trade...13.5 The ARM7500 and ARM7500FE
2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 3、大量使用寄存器,指令执行速度更快; 4、大多数数据操作都在寄存器中完成; 5、寻址方式灵活简单,执行效率高; 6、指令长度固定; ...
Laravel开发-lk-thumb [拉拉基特]
ARM体系下ARM状态和THUMB状态相互转换的汇编代码
LPC2103专用工程模板---Thumb Executable Image
jquery-slider-thumb-float.zip
ARM Thumb 指令集 Thumb 指令可以看作是ARM 指令... 在编写Thumb 指令时,先要使用伪指令CODE16 声明,而且在ARM 指令中要使用BX指令跳转到Thumb 指令,以切换处理器状态。编写ARM 指令时,则可使用伪指令CODE32声明。
Thumb1 code size regression due to new register allocation: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59535 Multilib is now enabled with --with-multilib-list=rmprofile when building the toolchain ...
本文是关于Thumb多寄存器数据存取指令。
arm指令集速记卡《ARM® and Thumb®-2 Instruction Set Quick Reference Card》,国外网友整理,对学习记忆ARM相关指令很有帮助,建议打印下来。
相关软件可以使用Wiggler调试ARM7-ARM9, 支持Win98/Win2000/WinXP, ADS 1.2, ARM7/ARM9, ARM/Thumb, Little/Big Endian, RDI, Banyan,Wiggler...
Thumb1 code size regression due to new register allocation: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59535 Multilib is now enabled with --with-multilib-list=rmprofile when building the toolchain ...
如果你正在学习Cortex-M3 那么这个PDF文档对你一定很有帮助。ARM7-TDMI属于ARMv4,而CORTEX则属于ARMv7 独特支持Thumb-2指令集。
ARM THUMB procedure call standard Release A-05 of this specification is the first public release, the ADS-1.0 release. Release B-01 is the ADS-1.1 release. The description of parameter passing has ...
ARM指令和Thumb指令的区别.doc
ARM中有两条指令用于在状态寄存器和通用寄存器之间传送数据。 状态寄存器中有些位是当前没有使用的,但在ARM将来版本中有可能使用这些位,因此用户程序不要使用这些位。 程序不能通过直接修改CPSR中T的控制位...