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

wm8*_*120 2 assembly arm

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

cmp r3, r2
ldrbcc r6, [r3], #1
Run Code Online (Sandbox Code Playgroud)

我想表达r3是否小于r2,然后将[r3]加载到寄存器r6.但是当我使用linaro工具链(版本13.04)编译它时:

arm-linux-gnueabihf-as -march=armv7-a -mcpu=cortex-a9 test.s -o test
Run Code Online (Sandbox Code Playgroud)

编译器输出:

Error: bad instruction `ldrbcc r6,[r3],#1'
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚.有人可以帮帮我吗?谢谢.

Ste*_*non 7

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