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 は最新の「統一アセンブリ言語」です。アセンブラは、古い UAL 以前の構文にデフォルト設定されており、LDRCCB を想定しています。UAL 以前の構文を使用するようにコードを変更することもできますが、コードの前に ".syntax Unified" ディレクティブを追加して、UAL スタイルを使用していることをアセンブラーに伝える方がはるかに優れています。

于 2013-05-19T12:45:12.563 に答える
2

ldrbcc の代わりに ldrccb を使用してください...

于 2013-05-19T03:53:24.943 に答える