禁用ARM 16位拇指指令

时间:2014-12-22 18:45:42

标签: arm thumb

ARM世界中是否有办法仅使用32位指令(例如在Cortex M3上)并禁用16位拇指指令?我在谈论指令本身,而不是关于加载/存储访问机制。

对不起,如果已经提出这个问题,或者这个问题太愚蠢等等。

非常感谢帮助...

3 个答案:

答案 0 :(得分:2)

如果您只想强制选择32位编码而不是存在的16位,那么可以通过在各个助记符中添加.W后缀来进行汇编。然后,汇编器将发出32位编码,如果没有,则会引发错误。因此,您不能简单地将它应用于每个指令,因为某些具有16位编码,但是敲除某种基于正则表达式的基于正则表达式的转换似乎是可行的。如果您正在处理已编译的更高级代码,那么转换中间程序集列表或者破解汇编程序/编译器可能是唯一可行的选项。

答案 1 :(得分:0)

大多数较新的芯片仅使用Thumb-2指令集,这意味着您将拥有一些16位指令和一些32位指令。如果要使用老式的32位ARM指令集,则需要查找旧硬件。

答案 2 :(得分:0)

cortex-m3只是一个拇指机,所以它只有一个16但拇指核心,32位指令只是未定义的16位扩展,所以你必须使用16位拇指核心甚至得到32位thumb2 extensions ...所以没有定义它是不可能的。

32位扩展也不足以完成您可能想要的所有操作。