arm指令和thumb指令有何异同
2个回答
展开全部
thumb指令集与
arm
指令的区别一般有如下几点:
跳转指令
程序相对转移,特别是条件跳转与
arm
代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移.
数据处理指令
数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第
3
个寄存器中.数据处理操作比
arm
状态的更少,访问寄存器
r8~r15
受到一定限制.除
mov
和
add
指令访问器
r8~r15
外,其它数据处理指令总是更新
cpsr
中的
alu
状态标志.访问寄存器
r8~r15
的
thumb
数据处理指令不能更新
cpsr
中的
alu
状态标志.
单寄存器加载和存储指令
在
thumb
状态下,单寄存器加载和存储指令只能访问寄存器
r0~r7
批量寄存器加载和存储指令
ldm
和
stm
指令可以将任何范围为
r0~r7
的寄存器子集加载或存储.
push
和
pop
指令使用堆栈指令
r13
作为基址实现满递减堆栈.除
r0~r7
外,push
指令还可以存储链接寄存器
r14,并且
pop
指令可以加载程序指令pc
arm
指令的区别一般有如下几点:
跳转指令
程序相对转移,特别是条件跳转与
arm
代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移.
数据处理指令
数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第
3
个寄存器中.数据处理操作比
arm
状态的更少,访问寄存器
r8~r15
受到一定限制.除
mov
和
add
指令访问器
r8~r15
外,其它数据处理指令总是更新
cpsr
中的
alu
状态标志.访问寄存器
r8~r15
的
thumb
数据处理指令不能更新
cpsr
中的
alu
状态标志.
单寄存器加载和存储指令
在
thumb
状态下,单寄存器加载和存储指令只能访问寄存器
r0~r7
批量寄存器加载和存储指令
ldm
和
stm
指令可以将任何范围为
r0~r7
的寄存器子集加载或存储.
push
和
pop
指令使用堆栈指令
r13
作为基址实现满递减堆栈.除
r0~r7
外,push
指令还可以存储链接寄存器
r14,并且
pop
指令可以加载程序指令pc
展开全部
Thumb指令集与
ARM
指令的区别一般有如下几点:
跳转指令
程序相对转移,特别是条件跳转与
ARM
代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移.
数据处理指令
数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第
3
个寄存器中.数据处理操作比
ARM
状态的更少,访问寄存器
R8~R15
受到一定限制.除
MOV
和
ADD
指令访问器
R8~R15
外,其它数据处理指令总是更新
CPSR
中的
ALU
状态标志.访问寄存器
R8~R15
的
Thumb
数据处理指令不能更新
CPSR
中的
ALU
状态标志.
ARM
指令的区别一般有如下几点:
跳转指令
程序相对转移,特别是条件跳转与
ARM
代码下的跳转相比,在范围上有更多的限制,转向子程序是无条件的转移.
数据处理指令
数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第
3
个寄存器中.数据处理操作比
ARM
状态的更少,访问寄存器
R8~R15
受到一定限制.除
MOV
和
ADD
指令访问器
R8~R15
外,其它数据处理指令总是更新
CPSR
中的
ALU
状态标志.访问寄存器
R8~R15
的
Thumb
数据处理指令不能更新
CPSR
中的
ALU
状态标志.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询