ARM アセンブラー ディレクティブ

一般に、Microsoft ARM アセンブラーは ARM アセンブリ言語を使用します。これは、「ARM Compiler armasm Reference Guide」(ARM コンパイラ armasm リファレンス ガイド) に記載されています。 ただし、一部のアセンブリ ディレクティブの Microsoft の実装は、ARM アセンブリ ディレクティブとは異なります。 この記事ではその違いについて説明します。

ARM アセンブリ ディレクティブの Microsoft の場合の実装

  • AREA

    Microsoft ARM アセンブラーでは、次の AREA 属性がサポートされています。ALIGNCODECODEALIGNDATANOINITREADONLYREADWRITETHUMBARM

    THUMBARM を除くすべてが、「ARM Compiler armasm Reference Guide」(ARM コンパイラ armasm リファレンス ガイド) に記されているように動作します。

    Microsoft ARM アセンブラーでは、THUMB は、CODE セクションに Thumb コードが含まれ、CODE セクションの既定値であることを示します。 ARM は、セクションに ARM コードが含まれていることを示します。

  • ATTR

    サポートされていません。

  • CODE16

    サポートされていません。これは、Microsoft ARM アセンブラーで許可されていない UAL より前の Thumb 構文を意味するためです。 代わりに、THUMB ディレクティブを UAL 構文と共に使用します。

  • COMMON

    共通リージョンのアラインメントの指定はサポートされていません。

  • DCDO

    サポートされていません。

  • DNQNSN

    レジスタ エイリアスの型またはレーンの指定はサポートされていません。

  • ENTRY

    サポートされていません。

  • EQU

    定義されたシンボルの型の指定はサポートされていません。

  • EXPORT および GLOBAL

    次の構文を使用してエクスポートを指定します。

    EXPORT|GLOBALsymbol{[type]}

    symbol はエクスポートするシンボルです。 [type] が指定されている場合は、シンボルがデータをポイントすることを示す [DATA] か、シンボルがコードをポイントすることを示す [FUNC] かのいずれかになります。 GLOBALEXPORT のシノニムです。

  • EXPORTAS

    サポートされていません。

  • FRAME

    サポートされていません。

  • FUNCTION および PROC

    アセンブリ構文を使用すると、プロシージャに対してカスタム呼び出し規則を指定できます。呼び出し元と、呼び出し先が保存するレジスタを一覧表示します。 ただし、Microsoft ARM アセンブラーは構文を受け入れますが、レジスタ リストを無視します。 アセンブラーによって生成されるデバッグ情報は、既定の呼び出し規則のみをサポートします。

  • IMPORT および EXTERN

    次の構文を使用してインポートを指定します。

    IMPORT|EXTERNsymbol{, WEAK alias{, TYPE t}}

    symbol は、インポートするシンボルの名前です。

    WEAK aliasが指定されている場合は、symbolが弱い外部であることを示します。 リンク時に定義が見つからない場合は、それに対するすべての参照が、代わりに alias にバインドされます。

    TYPE tが指定されている場合、tはリンカーがsymbolの解決を試みる方法を示します。 t には次の値を使用できます。

    Value 説明
    1 ライブラリで symbol を検索しない。
    2 symbol でライブラリを検索する。
    3 symbolalias のエイリアスです (既定値)。

    EXTERNIMPORT のシノニムです。ただし symbol は、現在のアセンブリに参照がある場合にのみインポートされます。

  • MACRO

    マクロの条件コードを保持する変数の使用はサポートされていません。 マクロ パラメーターの既定値はサポートされていません。

  • NOFP

    サポートされていません。

  • OPTTTLSUBT

    Microsoft ARM アセンブラーでは一覧が生成されないため、サポートされていません。

  • PRESERVE8

    サポートされていません。

  • RELOC

    RELOC n は、命令またはデータ定義ディレクティブにのみ従います。 再設定できる "匿名シンボル" はありません。

  • REQUIRE

    サポートされていません。

  • REQUIRE8

    サポートされていません。

  • THUMBX

    サポートされていません。Microsoft ARM アセンブラーでは Thumb-2EE 命令セットがサポートされていないためです。

関連項目

ARM アセンブラーのコマンド ライン リファレンス
ARM アセンブラー診断メッセージ