arm指令集和thumb指令集的区别

 我来答
匿名用户
2016-10-25
展开全部
  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
巧米乐
2018-07-05 · 知道合伙人房产装修行家
巧米乐
知道合伙人房产装修行家
采纳数:61569 获赞数:748074
林深时见鹿,海蓝时见鲸……

向TA提问 私信TA
展开全部
  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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式