2

我正在编写 ARM 汇编代码。其中有一个片段:

cmp r3, r2
ldrbcc r6, [r3], #1

我想表示如果r3小于r2,则加载[r3]到寄存器r6。但是当我用 linaro 工具链(版本 13.04)编译它时:

arm-linux-gnueabihf-as -march=armv7-a -mcpu=cortex-a9 test.s -o test

编译器输出:

Error: bad instruction `ldrbcc r6,[r3],#1'

我想不通。任何人都可以帮助我吗?谢谢。

4

3 回答 3

7

LDRBCC 是现代的“统一汇编语言”;您的汇编程序默认使用旧的 pre-UAL 语法并需要 LDRCCB。您可以更改代码以使用 UAL 之前的语法,但更好的解决方案是通过在代码前添加“.syntax Unified”指令来告诉汇编器您正在使用 UAL 样式。

于 2013-05-19T12:45:12.563 回答
2

使用 ldrccb 而不是 ldrbcc ...

于 2013-05-19T03:53:24.943 回答
0

尝试qmake使用这些参数运行:

~/raspi/qt5/bin/qmake -r WEBENGINE_CONFIG+=use_proprietary_codecs QMAKE_CFLAGS+=-mthumb

然后尝试make

于 2017-03-04T13:13:05.277 回答