21天学通Linux嵌入式开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

5.5 不支持的指令

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指令