ARM程序集:错误指令'ldrbcc'

时间:2013-05-19 03:44:27

标签: assembly arm

我正在编写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'

我无法理解。有人可以帮帮我吗?感谢。

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:2)

使用ldrccb代替ldrbcc ...

答案 2 :(得分:0)

尝试使用以下参数运行qmake

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

然后尝试make