THUMB指令集是什么?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 13:09:35
THUMB指令集是什么?
Thumb指令集可以看作是ARM指令压缩形式的子集,它是为减小代码量而提出,具有16bit的代码密度.Thumb指令体系并不完整,只支持通用功能,必要时仍需要使用ARM指令,如进入异常时.其指令的格式与使用方式与ARM指令集类似,而且使用并不频繁,Thumb指令集作一般了解.
在编写Thumb指令时,先要使用伪指令CODE16声明,编写ARM指令时,则可使用CODE32伪指令声明.
1、Thumb指令集没有协处理器指令、信号量指令、以及访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令等,且指令的第二操作数受到限制;
2、大多数的Thumb数据处理指令采用2地址格式;
3、除了跳转指令B有条件执行功能之外,其他指令均为无条件执行,而且分支指令的跳转范围有更多限制;
4、数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果放入其中一个操作数寄存器中,而不是放入第3个寄存器中;访问寄存器R8~R15受到一定的限制,除MOV、ADD指令访问R8~R15外,其他数据处理指令总是更新CPSR中ALU状态标志,访问寄存器R8~R15的Thumb数据处理指令不能更新CPSR中的ALU状态指示.
5、Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7;
6、LDM、STM指令可以将任何范围为R0~R7的寄存器子集加载或存储;
7、PUSH、POP指令使用栈寄存器R13作为基址堆栈操作.
8、The Thumb instruction set format:
在编写Thumb指令时,先要使用伪指令CODE16声明,编写ARM指令时,则可使用CODE32伪指令声明.
1、Thumb指令集没有协处理器指令、信号量指令、以及访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令等,且指令的第二操作数受到限制;
2、大多数的Thumb数据处理指令采用2地址格式;
3、除了跳转指令B有条件执行功能之外,其他指令均为无条件执行,而且分支指令的跳转范围有更多限制;
4、数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果放入其中一个操作数寄存器中,而不是放入第3个寄存器中;访问寄存器R8~R15受到一定的限制,除MOV、ADD指令访问R8~R15外,其他数据处理指令总是更新CPSR中ALU状态标志,访问寄存器R8~R15的Thumb数据处理指令不能更新CPSR中的ALU状态指示.
5、Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7;
6、LDM、STM指令可以将任何范围为R0~R7的寄存器子集加载或存储;
7、PUSH、POP指令使用栈寄存器R13作为基址堆栈操作.
8、The Thumb instruction set format: