【发布时间】:2014-07-28 10:05:07
【问题描述】:
我有一个带有 thumb2 (T32) 指令的简单汇编文件 (temp.S)。例如:
或 R4,R7,R8
我想用 linaro 汇编器来组装它,但我找不到合适的标志来做这件事。
如果我尝试:
arm-linux-gnueabihf-as -o temp.o temp.S
然后我得到A32版指令的汇编
但是,如果我尝试:
arm-linux-gnueabihf-as -o temp.o -mthumb temp.S
我收到错误消息
> temp.S: Assembler messages:
> temp.S:1: Error: lo register required -- `orr R4,R7,R8
就好像它在期待一个 T16 指令。
任何有关 T32 指令正确标志的帮助将不胜感激。
顺便说一下,我的汇编版本是: GNU 汇编器(crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC 2013.11)2.24.0.20131220
【问题讨论】:
-
如果在程序集文件的顶部添加
.syntax unified和.code 16并跳过-mthumb命令行选项会怎样? -
同意迈克尔,这很好。
-
是的。也为我工作,非常感谢。
-
GCC 4.5 文档提到 -mthumb 的行为优于同一文档的当前版本gcc.gnu.org/onlinedocs/gcc-4.4.5/gcc/ARM-Options.html