ARM-Assemblyanweisungen

Im Allgemeinen verwendet der Microsoft ARM-Assembler die ARM-Assemblysprache, die im ARM-Compiler-Referenzhandbuch dokumentiert ist. Die Microsoft-Implementierungen einiger Assemblydirektiven unterscheiden sich jedoch von den ARM-Assemblydirektiven. In diesem Artikel werden die Unterschiede erläutert.

Microsoft-Implementierungen von ARM-Assemblydirektiven

  • AREA

    Der Microsoft ARM-Assembler unterstützt diese AREA Attribute: ALIGN, , CODE, CODEALIGN, DATA, NOINIT, READONLY, READWRITE. THUMBARM.

    Alle außer THUMB und ARM arbeiten wie im ARM-Compiler-Armasm-Referenzhandbuch dokumentiert.

    Gibt im Microsoft ARM-Assembler an, THUMB dass ein CODE Abschnitt Daumencode enthält und die Standardeinstellung für CODE Abschnitte ist. ARM gibt an, dass der Abschnitt ARM-Code enthält.

  • ATTR

    Nicht unterstützt.

  • CODE16

    Wird nicht unterstützt, da es vor-UAL Thumb-Syntax impliziert, die der Microsoft ARM-Assembler nicht zulässt. Verwenden Sie stattdessen die THUMB Direktive zusammen mit der UAL-Syntax.

  • COMMON

    Die Spezifikation einer Ausrichtung für den gemeinsamen Bereich wird nicht unterstützt.

  • DCDO

    Nicht unterstützt.

  • DN, QNSN

    Die Spezifikation eines Typs oder einer Spur im Registeralias wird nicht unterstützt.

  • ENTRY

    Nicht unterstützt.

  • EQU

    Die Spezifikation eines Typs für das definierte Symbol wird nicht unterstützt.

  • EXPORT und GLOBAL

    Gibt Exporte mithilfe dieser Syntax an:

    EXPORT|GLOBALsymbol{[type]}

    symbol ist das zu exportierende Symbol. [type], falls angegeben, kann entweder angegeben werden [DATA] , dass das Symbol auf Daten zeigt oder [FUNC] darauf hinweist, dass das Symbol auf Code verweist. GLOBAL ist ein Synonym für EXPORT.

  • EXPORTAS

    Wird nicht unterstützt.

  • FRAME

    Wird nicht unterstützt.

  • FUNCTION und PROC

    Mit der Assemblysyntax können Sie eine benutzerdefinierte Aufrufkonvention für Prozeduren angeben: Sie listen die Register auf, die vom Aufrufer gespeichert werden, und die Register, die angerufen werden. Während der Microsoft ARM-Assembler jedoch die Syntax akzeptiert, werden die Registerlisten ignoriert. Die debuginformationen, die vom Assembler erstellt werden, unterstützen nur die Standardaufrufkonvention.

  • IMPORT und EXTERN

    Gibt Importe mit dieser Syntax an:

    IMPORT|EXTERNsymbol{ {, TYPE, WEAK aliast}}

    symbol ist der Name des zu importierenden Symbols.

    Wenn WEAK alias angegeben, gibt es an, dass symbol es sich um eine schwache externe Datei handelt. Wenn eine Definition für sie zur Verknüpfungszeit nicht gefunden wird, werden stattdessen alle Verweise darauf aliasgebunden.

    Wenn TYPE t angegeben, gibt dies t an, wie der Linker versuchen soll, aufzulösen symbol. Diese Werte t sind möglich:

    Wert Beschreibung des Dataflows
    1 Suchen Sie keine Bibliotheken nach symbol.
    2 Suchbibliotheken nach symbol.
    3 symbol ist ein Alias für alias (Standard).

    EXTERN ist ein Synonym für IMPORT, mit der Ausnahme, dass nur symbol importiert wird, wenn in der aktuellen Assembly Verweise darauf vorhanden sind.

  • MACRO

    Die Verwendung einer Variablen zum Speichern des Bedingungscodes eines Makros wird nicht unterstützt. Standardwerte für Makroparameter werden nicht unterstützt.

  • NOFP

    Nicht unterstützt.

  • OPT, TTLSUBT

    Wird nicht unterstützt, da der Microsoft ARM-Assembler keine Auflistungen erzeugt.

  • PRESERVE8

    Nicht unterstützt.

  • RELOC

    RELOC n kann nur einer Anweisung oder einer Datendefinitionsdirektive folgen. Es gibt kein "anonymes Symbol", das verschoben werden kann.

  • REQUIRE

    Wird nicht unterstützt.

  • REQUIRE8

    Wird nicht unterstützt.

  • THUMBX

    Wird nicht unterstützt, da der Microsoft ARM-Assembler den Thumb-2EE-Anweisungssatz nicht unterstützt.

Siehe auch

Befehlszeilenverweis des ARM-Assemblers
Diagnosemeldungen des ARM-Assemblers