Thumb 指令 为以 Thumb 状态运行的、基于 ARM 体系结构的处理器的操作进行编码的一个半字或两个半字。 Thumb 指令必须为半字对齐。Thumb 状态 执行 Thumb 指令的处理器工作在 Thumb 状态。 当直接通过 BX、BLX 等指令完成时,处理器可切换到 ARM 状态(以识别 ARM 指令)。Thumb-2 指令 Thumb-2 是 Thumb 指令集的一项主要增强功能,并且由 ARMv6T2 和 ARMv7M体系结构定义。 Thumb-2 提供了几乎与 ARM 指令集完全一样的功能。 它兼有16 位和 32 位指令,并可检索与 ARM 类似的性能,但其代码密度与 Thumb 代码类似。 Thumb-2EE 指令 Thumb-2 执行环境 (Thumb-2EE) 由 ARMv7 体系结构定义。 Thumb-2EE 指令集基于 Thumb-2,前者进行了一些更改和添加,使得动态生成的代码具有更好的目标,也就是说,就在执行之前或在执行过程中即可在该设备上编译代码。8 m4 L2 j+ L: p+ V; C! Z/ } ThumbEE 状态 执行 Thumb-2EE 指令的处理器正在以 ThumbEE 状态运行。 在此状态下,该指令集几乎与 Thumb 指令集相同。 不过,有些指令已经修改了行为,有些原有的指令已不再提供,另外还新添了一些指令。 ![]() ![]() (2)有些功能只能由ARM程式完成。如:使用或禁止异常中断;) C f- I @: \- b (3)当处理器进入异常中断处理程式时,程式状态转换到ARM状态,即在异常中断处理程式入口的一些指令是ARM指令,然后根据需要程式能转换到Thumb状态,在异常中断程式返回前,程式再转换到ARM状态。 (4)ARM处理器总是从ARM状态开始执行。因而,如果要在调试器中运行Thumb程式,必须为该Thumb程式添加一个ARM程式头,然后再转换到Thumb状态,执行Thumb程式。 |
关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )
GMT+8, 2025-9-24 17:19 , Processed in 0.125000 second(s), 27 queries , Gzip On.
地址:深圳市南山区科技生态园2栋A座805 电话:19926409050