ARM アセンブリ言語モジュールのサンプル

Example 7 は、アセンブリ言語モジュールのいくつかの主要構成要素を示しています。このサンプルは ARM アセンブリ言語で記述されています。

このサンプルの構成は、以下のとおりです。

Example 7 では、READONLY としてマークされたコードを含む ARMex という名前の単一セクションを定義しています。

Example 7. アセンブリ言語モジュールの構成要素

        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                     ; ファイルの終わりをマークする

Show/hideアプリケーションのエントリ

ENTRY ディレクティブは、プログラムへのエントリポイントを宣言します。それによって、最初に実行される命令がマークされます。C ライブラリを使用するアプリケーションでは、エントリポイントが C ライブラリ初期化コード内にも含まれます。初期化コードと例外ハンドラにもエントリポイントが含まれます。

Show/hideアプリケーションの実行

Example 7 のアプリケーションコードでは、ラベル start から実行を開始し、10 進数の 10 と 3 をレジスタ R0R1 にロードします。次に、これらのレジスタを加算し、結果を R0 に返します。

Show/hideアプリケーションの終了

メインコードの実行後、このアプリケーションは制御をデバッガに戻すことによって終了します。この動作は、以下のパラメータを設定した ARM セミホスティング SVC(デフォルトでは 0x123456)を使用して行われます。

  • R0 = angel_SWIreason_ReportException0x18

  • R1 = ADP_Stopped_ApplicationExit0x20026

Show/hideプログラムの終了

END ディレクティブは、ソースファイルの処理を停止するようアセンブラに指示します。すべてのアセンブリ言語ソースモジュールは、END ディレクティブが単独で記述された行で終了する必要があります。END ディレクティブの後に続く行は、アセンブラによって無視されます。

Show/hide関連項目

概念

ARM プロセッサをターゲットとしたソフトウェア開発』

参照

『アセンブラリファレンス』

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