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
,DATA
CODEALIGN
,NOINIT
,READONLY
READWRITE
,THUMB
.ARM
Tutti tranne
THUMB
eARM
funzionano come documentato nella Guida di riferimento all'armasm del compilatore ARM.Nell'assembler
THUMB
Microsoft ARM indica che unaCODE
sezione contiene il codice Thumb ed è l'impostazione predefinita perCODE
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
eGLOBAL
Specifica le esportazioni utilizzando questa sintassi:
EXPORT
|GLOBAL
symbol
{[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 diEXPORT
.EXPORTAS
Non supportato.
FRAME
Non supportato.
FUNCTION
ePROC
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
eEXTERN
Specifica le importazioni usando questa sintassi:
IMPORT
|EXTERN
symbol
{ {, TYPE
, WEAK
alias
t
}}symbol
è il nome del simbolo da importare.Se
WEAK
alias
viene specificato, indica chesymbol
è un esterno debole. Se non viene trovata una definizione in fase di collegamento, tutti i riferimenti a tale definizione vengono associati aalias
.Se
TYPE
t
viene specificato,t
indica come il linker deve tentare di risolveresymbol
. Questi valori pert
sono possibili:valore Description 1 Non cercare le librerie per symbol
.2 Cercare le librerie per symbol
.3 symbol
è un alias peralias
(impostazione predefinita).EXTERN
è un sinonimo diIMPORT
, ad eccezione del fatto chesymbol
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