Cortex-M3不支持ARM指令。另外,Cortex-M3支持绝大部分的ARMv6 Thumb指令,但以下两个指令不支持。
● BLX #im:在使用立即数做操作数时,BLX 总是要切入 ARM 状态。因为 Cortex-M3只在Thumb态下运行,故以此指令为代表的,凡是试图切入ARM态的操作,都将引发一个用法错误。
● SETEND:由 v6 引入的,在运行时改变处理器端设置的指令(大端或小端)。因为Cortex-M3不支持动态端的功能,所以此指令也将引发错误。
Cortex-M3支持部分的ARMv7 Thumb指令,但有少量在ARMv7 Thumb中列出的指令不被支持,如表5-13所示。
表5-13不支持的ARMv7 Thumb指令
续表