打印

ARM指令与Thumb指令

[复制链接]
913|9
手机看帖
扫描二维码
随时随地手机跟帖
沙发
spark周| | 2014-7-10 19:49 | 只看该作者
Thumb 指令可以看作是 ARM 指令压缩形式的子集,

使用特权

评论回复
板凳
dengdc| | 2014-7-10 20:39 | 只看该作者
spark周 发表于 2014-7-10 19:49
Thumb 指令可以看作是 ARM 指令压缩形式的子集,

是针对代码密度的问题而提出的,它具有 16 位的代码密度但是它不如ARM指令的效率高

使用特权

评论回复
地板
dengdc| | 2014-7-10 20:39 | 只看该作者
Thumb 不是一个完整的体系结构,不能指望处理只执行Thumb 指令而不支持 ARM 指令集

使用特权

评论回复
5
jiajs| | 2014-7-10 20:41 | 只看该作者
指令只需要支持通用功能,必要时可以借助于完善的 ARM 指令集

使用特权

评论回复
6
jiajs| | 2014-7-10 20:42 | 只看该作者
比如,所有异常自动进入 ARM 状态.在编写 Thumb 指令时,先要使用伪指令 CODE16 声明,而且在 ARM 指令中要使用 BX指令跳转到 Thumb 指令,以切换处理器状态.编写 ARM 指令时,则可使用伪指令 CODE32声明.

使用特权

评论回复
7
jiaxw|  楼主 | 2014-7-10 20:44 | 只看该作者
嗯, 好的,多谢了啊

使用特权

评论回复
8
jiaxw|  楼主 | 2014-7-10 20:44 | 只看该作者
结贴了啊

使用特权

评论回复
9
aozima| | 2014-7-10 20:54 | 只看该作者
Thumb2拯救世界

使用特权

评论回复
10
拿起书本| | 2014-7-10 22:01 | 只看该作者
网上收集的:.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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

粉丝