2013-05-19 39 views
2

我在寫一個ARM彙編代碼。在這裏面有一個片段:ARM程序集:錯誤指令'ldrbcc'

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' 

我無法弄清楚。任何人都可以幫助我?謝謝。

+1

查找操作碼的參考手冊,應保持得心應手。不要懷疑它沒有充分理由的錯誤信息;挑戰假設。 – user2246674

回答

6

LDRBCC是現代的 「統一彙編語言」;您的彙編程序默認使用較早的UAL語法,並期望LDRCCB。你可以可以更改你的代碼以使用UAL之前的語法,但更好的解決方案是通過在你的代碼之前添加一個「.syntax unified」指令來告訴彙編程序你使用的是UAL風格。

+0

謝謝。這非常有幫助。 – wm8120

2

使用ldrccb代替ldrbcc ...

0

嘗試使用這些參數運行qmake

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

然後嘗試make