Scroll to navigation

AS(1) Outils de Développement GNU AS(1)

NOM

as - L'assembleur GNU portable

SYNOPSIS

as [-a[cdhlns][=fichier]] [-D] [--defsym sym=val]
[-f] [--gstabs] [--gdwarf2] [--help] [-I rép]
[-J] [-K] [-L]
[--listing-lhs-width=NBR] [--listing-lhs-width2=NBR]
[--listing-rhs-width=NBR] [--listing-cont-lines=NBR]
[--keep-locals] [-o fichobj] [-R] [--statistics] [-v]
[-version] [--version] [-W] [--warn] [--fatal-warnings]
[-w] [-x] [-Z] [--target-help] [options-cible]
[--fichiers ...]

Options de cible ARC :
[-marc[5⎪6⎪7⎪8]]
[-EB-EL]

Options de cible ARM :
[-mcpu=processeur[+extension...]]
[-march=architecture[+extension...]]
[-mfpu=format-virgule-flottante]
[-mthumb]
[-EB-EL]
[-mapcs-32-mapcs-26-mapcs-float
-mapcs-reentrant]
[-mthumb-interwork] [-moabi] [-k]

Options de cible D10V :
[-O]

Options de cible D30V :
[-O-n-N]

Options de cible i386 :
[--32--64]

Options de cible i960 :
[-ACA-ACA_A-ACB-ACC-AKA-AKB
-AKC-AMC]
[-b] [-no-relax]

Options de cible M32R :
[--m32rx--[no-]warn-explicit-parallel-conflicts
--W[n]p]

Options de cible M680X0 :
[-l] [-m68000-m68010-m68020⎪...]

Options de cible M68HC11 :
[-m68hc11-m68hc12]
[--force-long-branchs] [--short-branchs]
[--strict-direct-mode] [--print-insn-syntax]
[--print-opcodes] [--generate-example]

Options de cible MCORE :
[-jsri2bsr] [-sifilter] [-relax]
[-mcpu=[210⎪340]]

Options de cible MIPS :
[-nocpp] [-EL] [-EB] [-G nbr] [-mcpu=CPU ]
[-mips1] [-mips2] [-mips3] [-mips4] [-mips5]
[-mips32] [-mips64]
[-m4650] [-no-m4650]
[--trap] [--break] [-n]
[--emulation=nom ]

Options de cible MMIX :
[--fixed-special-register-names] [--globalize-symbols]
[--gnu-syntax] [--relax] [--no-predefined-symbols]
[--no-expand] [--no-merge-gregs] [-x]
[--linker-allocated-gregs]

Options de cible PDP11 :
[-mpic-mno-pic] [-mall] [-mno-extensions]
[-mextension-mno-extension]
[-mcpu] [-mmachine]

Options de cible picoJava :
[-mb-me]

Options de cible PowerPC :
[-mpwrx-mpwr2-mpwr-m601-mppc-mppc32-m603-m604
-m403-m405-mppc64-m620-mppc64bridge-mbooke
-mbooke32-mbooke64]
[-mcom-many-maltivec] [-memb]
[-mregnames-mno-regnames]
[-mrelocatable-mrelocatable-lib]
[-mlittle-mlittle-endian-mbig-mbig-endian]
[-msolaris-mno-solaris]

Options de cible SPARC :
[-Av6-Av7-Av8-Asparclet-Asparclite
-Av8plus-Av8plusa-Av9-Av9a]
[-xarch=v8plus-xarch=v8plusa] [-bump]
[-32-64]

DESCRIPTION

GNU as est en réalité une famille d'assembleurs. Si vous utilisez (ou avez utilisé) l'assembleur GNU sur une architecture, vous devriez retrouver un environnement assez similaire quand vous l'utilisez sur une autre architecture. Chaque version a beaucoup en commun avec les autres, ceci incluant les formats de fichiers objets, la plupart des directives assembleur (souvent appelées pseudo-opérations) et la syntaxe de l'assembleur.

as est destiné principalement à assembler la sortie du compilateur C GNU pour utilisation par l'éditeur de liens. Néanmoins, nous avons essayé de faire en sorte que as assemble correctement tout ce qui pourrait l'être par d'autres assembleurs pour la même machine. Cela ne signifie pas que as utilise toujours la même syntaxe qu'un autre assembleur pour la même architecture ; par exemple, nous connaissons de nombreuses versions de syntaxes de langages d'assemblage 680x0 incompatibles.

Chaque fois que vous exécutez as, il assemble exactement un programme source. Le programme source est composé d'un ou de plusieurs fichiers. (L'entrée standard est également un fichier).

Vous donnez à as une ligne de commandes comportant zéro ou plusieurs noms de fichiers d'entrée. Les fichiers d'entrée éventuels sont lus (de gauche à droite). Un argument de ligne de commandes (à n'importe quel endroit) qui n'a pas de signification spéciale est considéré être un nom de fichier d'entrée.

Si vous ne donnez aucun nom de fichier à as, il essaie de lire un fichier d'entrée à partir de l'entrée standard de as, qui est normalement votre terminal. Vous devrez peut-être taper ctrl-D pour indiquer à as qu'il n'y a plus de programme à assembler.

Utilisez -- si vous devez nommer explicitement le fichier d'entrée standard sur votre ligne de commandes.

Si le source est vide, as produit un petit fichier objet (vide).

as peut écrire des avertissements et des messages d'erreur sur la sortie d'erreur standard (généralement votre terminal). Ceci ne devrait pas se produire si as a été lancé automatiquement par un compilateur. Les avertissements rapportent les suppositions effectuées par as pour pouvoir continuer à assembler un programme défectueux ; les erreurs rendent compte d'un problème grave qui provoque l'arrêt de l'assemblage.

Si vous invoquez as via le compilateur GNU C (version 2), vous pouvez utiliser l'option -Wa pour passer des arguments à l'assembleur. Ceux-ci doivent être séparés les uns des autres (et de -Wa) par des virgules. Par exemple :

        gcc -c -g -O -Wa,-alh,-L fichier.c
Ceci passe deux options à l'assembleur : -alh (émettre sur la sortie standard un listing des sources de haut niveau (high-level) et d'assemblage) et -L (maintenir les symboles locaux dans la table des symboles).

Généralement, vous ne devrez pas utiliser ce mécanisme -Wa, car beaucoup d'options de ligne de commandes du compilateur sont passées automatiquement à l'assembleur par le compilateur (Vous pouvez appeler le pilote du compilateur GNU avec l'option -v pour voir précisément quelles options il transmet à chaque étape de la compilation, assemblage compris).

OPTIONS

Activer les listings, dans l'une quelconque des formes suivantes :

omettre les conditionnels faux
omettre les directives de débogage
inclure le source de haut niveau
inclure l'assemblage
inclure les développements de macros
omettre le traitement des formes
inclure les symboles
=fichier
fixer le nom du fichier de listing

Vous pouvez combiner ces options ; par exemple, utilisez -aln pour le listing d'assemblage sans traitement des formes. L'option =fichier, si elle est utilisée, doit être la dernière. Seule, -a vaut -ahls par défaut.


Ignoré. Cette option n'est acceptée que pour assurer la compatibilité avec des scripts contenant des appels à d'autres assembleurs.
Définir le symbole sym de valeur valeur avant l'assemblage du fichier d'entrée. valeur doit être une constante entière. Comme en C, un préfixe 0x indique une valeur hexadécimale, et un préfixe 0 indique une valeur octale.
« rapide » (fast) -- sauter les caractères d'espacement et le prétraitement des commentaires (supposer que la source est une sortie de compilateur).
Générer des informations de débogage au format stabs pour chaque ligne assembleur. Ceci peut faciliter le débogage de code assembleur, si le débogueur le supporte.
Générer des informations de débogage au format DWARF2 pour chaque ligne assembleur. Cela peut faciliter le débogage de code assembleur, si le débogueur le supporte. Note : cette option n'est prise en charge que pour certaines cibles, et pas toutes.
Afficher un résumé des options de ligne de commandes et se terminer.
Afficher un résumé des options spécifiques à la cible et se terminer.
Ajouter le répertoire rép à la liste des chemins de recherche des directives « .include ».
Ne pas avertir en cas de débordement (overflow) signé.
Cette option est accepté mais n'a pas d'effet sur la famille CIBLE.

Conserver (dans la table des symboles) les symboles locaux. Dans les systèmes a.out traditionnels, ceux-ci débutent par L, mais d'autres systèmes utilisent des préfixes locaux différents.
Fixer la largeur maximale, en mots, de la colonne de données en sortie pour un listing assembleur à nombre.
Fixer la largeur maximale, en mots, de la colonne de données en sortie pour les lignes de prolongement dans un listing assembleur à nombre.
Fixer la largeur maximale d'une ligne de code source d'entrée, affichée dans un listing, à nombre octets.
Fixer le nombre maximal de lignes affichées dans un listing pour une unique ligne d'entrée, à nombre + 1.
Donner le nom fichobj au fichier objet généré par as.
Intégrer la section de données dans la section de texte (code).
Afficher l'espace maximal (en octets) et le temps total (en secondes) utilisés durant l'assemblage.
Supprimer les symboles absolus locaux de la table des symboles sortante.

Afficher le numéro de version de as.
Afficher le numéro de version de as et se terminer.

Supprimer les messages d'avertissement.
Traiter les avertissements comme des erreurs.
Ne pas supprimer les messages d'avertissement ou les traiter comme des erreurs.
Ignoré.
Ignoré.
Générer un fichier objet même après des erreurs.
-- ⎪ fichiers ...
Entrée standard, ou fichiers source à assembler.

Les options suivantes sont disponibles quand as est configuré pour un processeur ARC :

Cette option sélectionne la variante du processeur central.
Sélectionner une sortie gros-boutiste (-EB) ou petit-boutiste (-EL).

Les options suivantes sont disponibles quand as est configuré pour la famille de processeurs ARM :

Spécifier la variante de processeur ARM cible.
Spécifier la variante de l'architecture ARM utilisée par la cible.
Spécifier le type d'architecture flottante utilisé par la cible.
Activer le décodage des instructions spécifiques Thumb.
Sélectionner la convention d'appel de procédure utilisée.
Sélectionner une sortie gros-boutiste (-EB) ou petit-boutiste (-EL).
Spécifier que le code a été généré avec la coopération entre le code Thumb et ARM à l'esprit.
Spécifier quel code PIC (NdT : Position Independent Code, code indépendant de la position) a été généré.

Les options suivantes sont disponibles quand as est configuré pour un processeur D10V :

Optimiser la sortie en parallélisant les instructions.

Les options suivantes sont disponibles quand as est configuré pour un processeur D30V :

Optimiser la sortie en parallélisant les instructions.
Avertir quand des nops sont générés.
Avertir quand une instruction nop est générée après une instruction multiply 32 bits.

Les options suivantes sont disponibles quand as est configuré pour le processeur Intel 80960 :

Spécifier quelle variante de l'architecture 960 est utilisée par la cible.
Ajouter du code pour collecter des statistiques concernant les branchements empruntés.
Ne pas modifier les instructions compare-and-branch pour les long déplacements ; générer une erreur si nécessaire.

Les options suivantes sont disponibles quand as est configuré pour la série des Mitsubishi M32R :

Spécifier le processeur de la famille M32R utilisé par la cible. Le processeur par défaut est le M32R, mais cette option le remplace par le M32RX.
Produire des messages d'avertissement quand des constructions parallèles discutables sont rencontrées.
Ne pas produire de message d'avertissement quand des constructions parallèles discutables sont rencontrées.

Les options suivantes sont disponibles quand as est configuré pour la série des Motorola 68000 :

Raccourcir les références vers des symboles non définis à un mot au lieu de deux.

⎪ -m68040 ⎪ -m68060 ⎪ -m68302 ⎪ -m68331 ⎪ -m68332

⎪ -m68333 ⎪ -m68340 ⎪ -mcpu32 ⎪ -m5200
Spécifier le processeur de la famille 68000 utilisé par la cible. Le processeur par défaut est le 68020, mais cela peut être modifié au moment de la configuration.
La machine cible possède un (ne possède pas de) coprocesseur flottant. On présuppose l'existence d'un coprocesseur pour les 68020, 68030, et cpu32. Bien que le 68000 de base ne soit pas compatible avec le 68881, une combinaison des deux peut être spécifiée, puisqu'il est possible de faire émuler les instructions du coprocesseur par le processeur principal.
La machine cible possède un (ne possède pas de) coprocesseur d'unité de gestion de mémoire (memory-management unit, MMU). On présuppose l'existence d'une MMU pour les 68020 et supérieurs.

Pour obtenir des détails concernant les options des fonctionnalités PDP-11 dépendantes de la machine, voyez @ref{PDP-11-Options}.

Générer du code indépendant (dépendant) de la position. -mpic est utilisé par défaut.

Autoriser toutes les extensions du jeu d'instructions. C'est le comportement par défaut.
Désactiver toutes les extensions du jeu d'instructions. C'est le comportement par défaut.
Activer (désactiver) une extension particulière du jeu d'instructions
Activer les extensions du jeu d'instructions prises en charge par un CPU particulier, et désactiver toutes les autres extensions.
Activer les extensions du jeu d'instructions prises en charge par un modèle de machine particulier, et désactiver toutes les autres extensions.

Les options suivantes sont disponibles quand as est configuré pour un processeur picoJava :

Générer une sortie au format gros-boutiste.
Générer une sortie au format petit-boutiste.

Les options suivantes sont disponibles quand as est configuré pour la série des Motorola 68HC11 et 68HC12 :

Spécifier le processeur utilisé par la cible. Le processeur par défaut est défini par une option de configuration lors de la construction de l'assembleur.
Les branchements relatifs sont convertis en branchements absolus. Cela concerne les branchements conditionnels, les branchements inconditionnels et les branchements sur une sous-routine.
Ne pas convertir les branchements relatifs en branchements absolus quand le décalage (offset) est hors de portée.
Ne pas remplacer le mode d'adressage direct par le mode d'adressage étendu quand l'instruction ne prend pas en charge le mode d'adressage direct.
Afficher la syntaxe de l'instruction en cas d'erreur.
Afficher la liste des instructions avec leur syntaxe et se terminer.
Afficher un exemple d'instruction pour chaque instruction possible et ensuite se terminer. Cette option n'est utile que pour tester as.

Les options suivantes sont disponibles quand as est configuré pour l'architecture SPARC :


Sélectionner explicitement une variante de l'architecture SPARC.

-Av8plus et -Av8plusa sélectionnent un environnement 32 bits. -Av9 et -Av9a sélectionnent un environnement 64 bits.

-Av8plusa et -Av9a activent le jeu d'instructions SPARC V9 avec les extensions UltraSPARC.

Pour la compatibilité avec l'assembleur Solaris v9. Ces options sont équivalentes à -Av8plus et -Av8plusa respectivement.
Avertir quand l'assembleur passe à une autre architecture.

Les options suivantes sont disponibles quand as est configuré pour un processeur MIPS :

Cette option fixe la taille maximale d'un objet pouvant être référencé implicitement par le registre « gp ». Elle n'est acceptée que pour les cibles qui utilisent le format ECOFF, comme une DECstation exécutant Ultrix. La valeur par défaut est 8.
Générer une sortie au format gros-boutiste.
Générer une sortie au format petit-boutiste.





Générer du code pour un niveau particulier de l'architecture de jeu d'instructions (Instruction Set Architecture, ISA) MIPS. -mips1 correspond aux processeurs R2000 et R3000, -mips2 au processeur R6000 et -mips3 au processeur R4000. -mips5, -mips32 et -mips64 correspondent aux processeurs génériques d'ISA MIPS V, MIPS32 et MIPS64, respectivement.

Générer du code pour la puce MIPS R4650. Cela indique à l'assembleur d'accepter les instructions mad et madu, et de ne pas prévoir d'instruction nop autour des accès aux registres HI et LO. -no-m4650 désactive cette option.
Générer du code pour un type de cpu MIPS particulier. C'est exactement équivalent à -mcpu, sauf qu'un plus grand nombre de valeurs de cpu sont comprises.
Cette option fait émuler par as un as configuré pour une autre cible, à tous les égards, ce qui inclut le format de sortie (choix entre ELF et ECOFF uniquement), le traitement des pseudo-opcodes (codes opératoires) qui peuvent générer des informations de débogage ou stocker des informations sur la table des symboles, et le boutisme (ordre des octets) par défaut. Les noms de configurations disponibles sont mipsecoff, mipself, mipslecoff, mipsbecoff, mipslelf et mipsbelf. Les deux premières ne modifient pas le boutisme par défaut qui est celui de la cible primaire pour laquelle l'assembleur a été configuré ; les autres utilisent par défaut le gros- ou le petit-boutisme comme indiqué par le b ou le l dans le nom. L'utilisation de -EB ou -EL surchargera dans tous les cas la sélection de boutisme.

Cette option n'est actuellement supportée que lorsque l'as de la cible primaire est configuré pour une cible MIPS ELF ou ECOFF. En outre, la cible primaire ou d'autres spécifiées avec --enable-targets=... au moment de la configuration doit inclure la prise en charge de l'autre format, si tous deux doivent être disponibles. Par exemple, la configuration de l'Irix 5 inclut le support pour les deux formats.

Par la suite, cette option supportera plus de configurations, avec un contrôle plus fin sur le comportement de l'assembleur, et sera prise en charge pour un plus grand nombre de processeurs.

as ignore cette option. Elle est acceptée pour assurer la compatibilité avec les outils natifs.



Contrôle la façon de traiter le débordement consécutif à une multiplication, et la division par zéro. --trap ou --no-break (qui sont des synonymes) utilisent un mécanisme d'interception d'exceptions (trap) (et ne fonctionnent qu'avec l'architecture de jeu d'instructions (Instruction Set Architecture) de niveau 2 ou supérieur) ; --break ou --no-trap (également des synonymes, et le comportement par défaut) utilisent une interruption (break).
Quand cette option est utilisée, as émettra un avertissement à chaque fois qu'il génère une instruction nop depuis une macro.

Les options suivantes sont disponibles quand as est configuré pour le processeur MCore :


Activer ou désactiver la transformation JSRI vers BSR. Par défaut, elle est activée. L'option de ligne de commandes -nojsri2bsr peut être utilisée pour la désactiver.

Activer ou désactiver le comportement du filtre à silicium. Par défaut, il est désactivé. La valeur par défaut peut être surchargée par l'option de ligne de commandes -sifilter.
Modifier les instructions de saut pour les longs déplacements.
Sélectionner le type de cpu présent sur le matériel cible. Ceci contrôle quelles instructions peuvent être assemblées.
Assembler pour une cible gros-boutiste.
Assembler pour une cible petit-boutiste.

Voyez les pages info pour la documentation sur les options spécifiques au MMIX.

VOIR AUSSI

gcc(1), ld(1), et les entrées Info pour les binutils et ld.

COPYRIGHT

Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.

L'autorisation est accordée de copier, de distribuer et/ou de modifier ce document sous les termes de la GNU Free Documentation License version 1.1 ou toute autre version ultérieure publiée par la Free Software Foundation, sans section invariante ni texte de couverture ni texte de quatrième de couverture. Une copie de la licence est incluse dans la section intitulée « GNU Free Documentation License ».

TRADUCTION

Frédéric Delanoy <delanoy_f at yahoo.com>, 2002.

5 avril 2002 binutils-2.11.93.0.2