Directive d'assembleur ARM
En règle générale, l’assembleur Microsoft ARM utilise le langage d’assembly ARM, qui est documenté dans le guide de référence du compilateur ARM. Toutefois, les implémentations Microsoft de certaines directives d’assembly diffèrent des directives d’assembly ARM. Cet article explique les différences.
Implémentations Microsoft des directives d’assembly ARM
AREA
L’assembleur Microsoft ARM prend en charge ces
AREA
attributs :ALIGN
,READONLY
NOINIT
CODEALIGN
CODE
DATA
,READWRITE
, .ARM
THUMB
Tous sauf
THUMB
etARM
fonctionnent comme documentés dans le Guide de référence du compilateur ARM.Dans l’assembleur Microsoft ARM,
THUMB
indique qu’uneCODE
section contient du code Pouce et est la valeur par défaut pourCODE
les sections.ARM
indique que la section contient du code ARM.ATTR
Non pris en charge.
CODE16
Non pris en charge, car il implique une syntaxe pouce pré-UAL, que l’assembleur Microsoft ARM n’autorise pas. Utilisez plutôt la
THUMB
directive, ainsi que la syntaxe UAL.COMMON
La spécification d’un alignement pour la région commune n’est pas prise en charge.
DCDO
Non pris en charge.
DN
, ,QN
SN
La spécification d’un type ou d’une voie sur l’alias d’inscription n’est pas prise en charge.
ENTRY
Non pris en charge.
EQU
La spécification d’un type pour le symbole défini n’est pas prise en charge.
EXPORT
etGLOBAL
Spécifie les exportations à l’aide de cette syntaxe :
EXPORT
|GLOBAL
symbol
{[type]
}symbol
est le symbole à exporter.[type]
, s’il est spécifié, peut être[DATA]
soit pour indiquer que le symbole pointe vers des données ou[FUNC]
pour indiquer que le symbole pointe vers le code.GLOBAL
est un synonyme deEXPORT
.EXPORTAS
Non pris en charge.
FRAME
Non pris en charge.
FUNCTION
etPROC
La syntaxe d’assembly vous permet de spécifier une convention d’appel personnalisée sur les procédures : vous répertoriez les registres qui sont appelant-enregistrer et ceux qui sont appelés-enregistrer. Toutefois, alors que l’assembleur Microsoft ARM accepte la syntaxe, il ignore les listes d’inscriptions. Les informations de débogage générées par l’assembleur prennent uniquement en charge la convention d’appel par défaut.
IMPORT
etEXTERN
Spécifie les importations à l’aide de cette syntaxe :
IMPORT
|EXTERN
symbol
{, WEAK
alias
}, TYPE
t
}symbol
est le nom du symbole à importer.S’il
WEAK
alias
est spécifié, il indique qu’ilsymbol
s’agit d’un externe faible. Si une définition pour celle-ci n’est pas trouvée au moment du lien, toutes les références à celle-ci sont liées à la place àalias
.Si
TYPE
t
elle est spécifiée,t
indique comment l’éditeur de liens doit tenter de résoudresymbol
. Ces valeurst
sont possibles :Valeur Description 1 Ne recherchez pas les bibliothèques . symbol
2 Rechercher des bibliothèques pour symbol
.3 symbol
est un alias pouralias
(valeur par défaut).EXTERN
est un synonyme deIMPORT
, sauf qu’ilsymbol
est importé uniquement s’il y a des références à celle-ci dans l’assembly actuel.MACRO
L’utilisation d’une variable pour contenir le code de condition d’une macro n’est pas prise en charge. Les valeurs par défaut des paramètres de macro ne sont pas prises en charge.
NOFP
Non pris en charge.
OPT
, ,TTL
SUBT
Non pris en charge, car l’assembleur Microsoft ARM ne produit pas de listes.
PRESERVE8
Non pris en charge.
RELOC
RELOC n
peut uniquement suivre une instruction ou une directive de définition de données. Il n’y a pas de « symbole anonyme » qui peut être déplacé.REQUIRE
Non pris en charge.
REQUIRE8
Non pris en charge.
THUMBX
Non pris en charge, car l’assembleur Microsoft ARM ne prend pas en charge le jeu d’instructions Thumb-2EE.
Voir aussi
Référence de la ligne de commande de l’assembleur ARM
Messages de diagnostic de l’assembleur ARM