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, READONLYNOINITCODEALIGNCODEDATA, READWRITE, . ARMTHUMB

    Tous sauf THUMB et ARM fonctionnent comme documentés dans le Guide de référence du compilateur ARM.

    Dans l’assembleur Microsoft ARM, THUMB indique qu’une CODE section contient du code Pouce et est la valeur par défaut pour CODE 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 et GLOBAL

    Spécifie les exportations à l’aide de cette syntaxe :

    EXPORT|GLOBALsymbol{[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 de EXPORT.

  • EXPORTAS

    Non pris en charge.

  • FRAME

    Non pris en charge.

  • FUNCTION et PROC

    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 et EXTERN

    Spécifie les importations à l’aide de cette syntaxe :

    IMPORT|EXTERNsymbol{, WEAKalias{, TYPEt}}

    symbol est le nom du symbole à importer.

    S’il WEAKalias est spécifié, il indique qu’il symbol 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 TYPEt elle est spécifiée, t indique comment l’éditeur de liens doit tenter de résoudre symbol. Ces valeurs t sont possibles :

    Value Description
    1 Ne recherchez pas les bibliothèques .symbol
    2 Rechercher des bibliothèques pour symbol.
    3 symbol est un alias pour alias (valeur par défaut).

    EXTERN est un synonyme de IMPORT, sauf qu’il symbol 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