2

ARM アセンブリで

bic r0, r0, #0x1f

正常に動作します。#define MODE 0x1f今、私は上記のコードを に変更したいと思いますbic r0,r0, #MODE

ここにはリスクがあります。が定義されているヘッダー ファイルをインクルードするのを忘れた場合#define MODE 0x1f、gcc は問題なくアセンブルしますが、結果は間違っています。コンパイラ#MODEは 0 として変換します。

問題の原因が " " であることを証明しました##これはアセンブリで使用されるため、「#」を処理しないようにプリプロセッサに指示するにはどうすればよいですか?

ありがとう

4

1 に答える 1

3
  1. 最新の ARM ドキュメントでは # をイミディエイトでオプションとして指定していると思いますので、bic r0, MODE を使用してみてください。
  2. アセンブリ レベルの定義を使用できます。

    .eq モード、0x1F

    bic r0,r0, #MODE

于 2011-02-15T11:23:57.410 に答える