ARM(五) Thumb 指令集

Thumb指令集是ARM指令集的一个16位子集,适用于16位总线设备,提供更高的代码密度,尤其适合手机和PDA等设备。相比ARM,在32位总线处理器上性能较弱。Thumb模式下,编译器通过C/C++等高级语言生成代码,不直接支持改变cpsr和spsr,但可通过ARM模式的MSR和MRS指令。ARM-Thumb interworking允许在两种模式间切换,BLX指令自动保存pc,而BX则需要手动处理。条件分支仅在Thumb模式下有条件执行,数据处理指令主要操作低寄存器并更新cpsr。Thumb指令的寻址模式和基址寄存器有限制。当在Thumb模式下发生中断或异常,会自动转到ARM模式处理。
摘要由CSDN通过智能技术生成

导读:
本文包括了Thumb register usage, ARM-Thumb interworking, branch instructions, data processing, load-store instructions, stack operations and software interrupts.

一、简介

  1. Thumb将32Bit的ARM指令的子集译码成16Bit的指令集。Thumb在16bit总线的处理器上性能高于ARM指令集。但是在32bit总线的处理器上性能就差于ARM了。
  2. Thumb有着更高的code density.对于手机和PDA等设备code density是非常重要的。
  3. Thumb在相同的代码上比ARM指令集实现的内存大小少了30%
  4. Thumb的目的是用于编译器的,而不是为了手写的汇编代码。我建议你编写Thumb-目标代码通过C/C++等高级语言

二、Thumb register usage

要改变cpsr和spsr,必须要进入ARM模式通过MSR和MRS来改变。Thumb不提供更改的方法。

<
Register Access
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值