Direttive assembly ARM

In genere, l'assembler Microsoft ARM usa il linguaggio di assembly ARM, documentato nella Guida di riferimento all'armasm del compilatore ARM. Tuttavia, le implementazioni Microsoft di alcune direttive assembly differiscono dalle direttive assembly arm. Questo articolo illustra le differenze.

Implementazioni Microsoft delle direttive assembly ARM

  • AREA

    L'assembler Microsoft ARM supporta questi AREA attributi: ALIGN, CODE, DATACODEALIGN, NOINIT, READONLYREADWRITE, THUMB. ARM

    Tutti tranne THUMB e ARM funzionano come documentato nella Guida di riferimento all'armasm del compilatore ARM.

    Nell'assembler THUMB Microsoft ARM indica che una CODE sezione contiene il codice Thumb ed è l'impostazione predefinita per CODE le sezioni. ARM indica che la sezione contiene codice ARM.

  • ATTR

    Non supportato.

  • CODE16

    Non supportato perché implica la sintassi pre-UAL Thumb, che l'assembler di Microsoft ARM non consente. Usare invece la THUMB direttiva insieme alla sintassi di Registrazione accesso utenti.

  • COMMON

    La specifica di un allineamento per l'area comune non è supportata.

  • DCDO

    Non supportato.

  • DN, QN, SN

    La specifica di un tipo o di una corsia nell'alias del registro non è supportata.

  • ENTRY

    Non supportato.

  • EQU

    La specifica di un tipo per il simbolo definito non è supportata.

  • EXPORT e GLOBAL

    Specifica le esportazioni utilizzando questa sintassi:

    EXPORT|GLOBALsymbol{[type]}

    symbol è il simbolo da esportare. [type], se specificato, può essere [DATA] per indicare che il simbolo punta ai dati o [FUNC] per indicare che il simbolo punta al codice. GLOBAL è un sinonimo di EXPORT.

  • EXPORTAS

    Non supportato.

  • FRAME

    Non supportato.

  • FUNCTION e PROC

    La sintassi dell'assembly consente di specificare una convenzione di chiamata personalizzata per le procedure: vengono elencati i registri che vengono salvati dal chiamante e quelli chiamati.the assembly syntax let you specify a custom calling convention on procedures: you list the registers that are caller-save, and the ones that are calle-save. Tuttavia, mentre l'assembler di Microsoft ARM accetta la sintassi, ignora gli elenchi di registri. Le informazioni di debug prodotte dall'assembler supportano solo la convenzione di chiamata predefinita.

  • IMPORT e EXTERN

    Specifica le importazioni usando questa sintassi:

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

    symbol è il nome del simbolo da importare.

    Se WEAK alias viene specificato, indica che symbol è un esterno debole. Se non viene trovata una definizione in fase di collegamento, tutti i riferimenti a tale definizione vengono associati a alias.

    Se TYPE t viene specificato, t indica come il linker deve tentare di risolvere symbol. Questi valori per t sono possibili:

    valore Description
    1 Non cercare le librerie per symbol.
    2 Cercare le librerie per symbol.
    3 symbol è un alias per alias (impostazione predefinita).

    EXTERN è un sinonimo di IMPORT, ad eccezione del fatto che symbol viene importato solo se nell'assembly corrente sono presenti riferimenti.

  • MACRO

    L'uso di una variabile per contenere il codice della condizione di una macro non è supportato. I valori predefiniti per i parametri di macro non sono supportati.

  • NOFP

    Non supportato.

  • OPT, TTL, SUBT

    Non supportato, perché l'assembler Microsoft ARM non produce presentazioni.

  • PRESERVE8

    Non supportato.

  • RELOC

    RELOC n può seguire solo un'istruzione o una direttiva di definizione dei dati. Non esiste un "simbolo anonimo" che può essere rilocato.

  • REQUIRE

    Non supportato.

  • REQUIRE8

    Non supportato.

  • THUMBX

    Non supportato, perché l'assembler Microsoft ARM non supporta il set di istruzioni Thumb-2EE.

Vedi anche

Riferimenti alla riga di comando dell'assembler ARM
Messaggi di diagnostica assembler ARM