Thumb 模式指令为 2 个字节,ARM 模式指令为 4 个字节。截图是拇指模式指令的反汇编。为什么我看到 4 字节指令与 2 字节指令混合在一起?有人可以解释一下吗?
先感谢您。
Thumb 模式指令为 2 个字节,ARM 模式指令为 4 个字节。截图是拇指模式指令的反汇编。为什么我看到 4 字节指令与 2 字节指令混合在一起?有人可以解释一下吗?
先感谢您。
Cortex M micros 只能在 Thumb-2 模式下运行,这种模式介于拇指和 ARM 模式之间。Thumbs-2 指令集包括 16 位和 32 位指令,处理器不需要切换模式来执行这两种类型的指令。
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0471i/CHDFEDDB.html
或pdf
http://infocenter.arm.com/help/topic/com.arm.doc.dui0471i/DUI0471I_developing_for_arm_processors.pdf
Thumb-2 技术可用于 ARMv6T2 及更高版本的架构。Thumb-2 技术是对 Thumb 指令集的重大改进。它增加了 32 位指令,可以在程序中与 16 位指令自由混合。附加的 32 位编码 Thumb 指令使 Thumb 能够覆盖 ARM 指令集的大部分功能。16 位和 32 位指令的可用性使 Thumb-2 技术能够将 Thumb 早期版本的代码密度与 ARM 指令集的性能相结合。