アセンブリ言語のソース行の構文

以下はアセンブリ言語で記述するソース行の汎用形式です。

{symbol} {instruction|directive|pseudo-instruction} {;comment}

このソース行の 3 つのセクションはすべてオプションです。

symbol は通常、ラベルです。命令および疑似命令では、必ずラベルです。一部のディレクティブでは、変数または定数のシンボルです。詳細については、ディレクティブの説明を参照して下さい。

symbol は必ず最初の列から開始する必要があります。縦棒(|)で囲まれていない限り、スペースやタブなどの空白文字を含めることはできません。

ラベルは、アドレスを表すシンボルです。ラベルを使用して、コードの他の部分から参照する特定のアドレスをマークできます。ローカルラベル、0 ~ 99 の範囲の数値で始まるラベルのサブクラスです。他のラベルとは異なり、ローカルラベルは複数回定義できます。そのため、マクロを使用してラベルを生成するときに便利です。

ディレクティブによって、アセンブリ処理または最終出力イメージに影響する重要な情報がアセンブラに渡されます。

命令および疑似命令によって、プロセッサがタスクの実行に使用するコードが構成されます。

Note

先行ラベルが存在しない場合でも、命令、疑似命令、およびディレクティブの前には、スペースやタブなどのホワイトスペースを挿入する必要があります。

ディレクティブの中には、ラベルの使用を禁止しているものもあります。

コメントは、ソース行の最後の部分です。行内の最初のセミコロンは、文字列リテラルの中に出現する場合を除き、コメントの開始を意味しますその行の終わりがコメントの終わりになります。コメントのみの行も有効です。すべてのコメントはアセンブラによって無視されます。コード読みやすくするために空白行を使用することもできます。

命令ニーモニック、疑似命令、ディレクティブ、およびシンボルレジスタ名(a1a4v1v8、およびワイヤレス MMX レジスタを除く)は、大文字と小文字のどちらで記述することもできますが、大文字と小文字を混ぜることはできませんラベルおよびコメントには、大文字のみ、小文字のみ、または大文字と小文字を使用できます。

Example 5. 

        AREA     ARMex, CODE, READONLY
                                ; このコードブロックに ARMex という名前を付ける
        ENTRY                   ; 最初に実行する命令をマークする
start
        MOV      r0, #10        ; パラメータをセットアップする
        MOV      r1, #3
        ADD      r0, r0, r1     ; r0 = r0 + r1
stop
        MOV      r0, #0x18      ; angel_SWIreason_ReportException
        LDR      r1, =0x20026   ; ADP_Stopped_ApplicationExit
        SVC      #0x123456      ; ARM セミホスティング(以前の SWI)
        END                     ; ファイルの終わりをマークする

ソースファイルを読みやすくするには、行末にバックスラッシュ(\)を挿入して長いソース行を複数行に分割します。バックスラッシュの後には文字(スペースやタブも含む)を挿入しないで下さい。アセンブラは、バックスラッシュとそれに続く行末シーケンスをホワイトスペースとして処理します。コードを読みやすくするために空白行を使用するこもできます。

Note

引用符で囲まれた文字列内でバックスラッシュとそれに続く行末シーケンスを使用しないで下さい。

バックスラッシュを使用した拡張も含め、行の長さは 4095 文字までに制限されています。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0473FJ
Non-ConfidentialID111311