当前位置:首 页 > 电工技术

Thumb指令集与ARM指令集的区别是什么?

时间:2022-04-19 11:15 浏览:31次 电工技术 Thumb指令集 ARM指令集 区别 什么

Thumb指令集与ARM指令集的区别是什么?

答:Thumb指令集没有协处理器指令、信号量指令以及访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令等,并且指令的第二操作数受到限制;除了分支指令B有条件执行功能外,其他指令均为无条件执行;大多数Thumb数据处理指令采用2地址格式。Thumb指令集与ARM指令集的区别一般有如下4点:①分支指令。程序相对转移,特别是条件跳转与ARM代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移。②数据处理指令。数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第3个寄存器中。数据处理操作比ARM状态的更少。访问寄存器R8~Rl5受到一定限制。除MOV和ADD指令访问寄存器R8~Rl5外,其他数据处理指令总是更新CPSR中的ALU状态标志。访问寄存器R8~Rl5的Thumb数据处理指令不能更新CPSR中的ALU状态标志。 ③单寄存器加载和存储指令。在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7。④多寄存器加载和多寄存器存储指令。LDM和STM指令可以将任何范围为R0~R7 的寄存器子集加载或存储。PUSH和POP指令使用堆栈指令Rl3作为基址实现满递减堆栈。除R0~R7外,PUSH指令还可以存储链接寄存器Rl4,并且POP指令可以加载程序指令PC。
查看更多