table of contents
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.cCeci 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¶
- -a[cdhlmns]
- Activer les listings, dans l'une quelconque des formes suivantes :
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.
- -D
- Ignoré. Cette option n'est acceptée que pour assurer la
compatibilité avec des scripts contenant des appels à
d'autres assembleurs.
- --defsym sym=valeur
- 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.
- -f
- « rapide » (fast) -- sauter les
caractères d'espacement et le prétraitement des commentaires
(supposer que la source est une sortie de compilateur).
- --gstabs
- 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.
- --gdwarf2
- 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.
- --help
- Afficher un résumé des options de ligne de commandes et se
terminer.
- --target-help
- Afficher un résumé des options spécifiques à
la cible et se terminer.
- -I rép
- Ajouter le répertoire rép à la liste des
chemins de recherche des directives
« .include ».
- -J
- Ne pas avertir en cas de débordement (overflow) signé.
- -K
- Cette option est accepté mais n'a pas d'effet sur la famille CIBLE.
- -L
-
- --keep-locals
- 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.
- --listing-lhs-width=nombre
- Fixer la largeur maximale, en mots, de la colonne de données en
sortie pour un listing assembleur à nombre.
- --listing-lhs-width2=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.
- --listing-rhs-width=nombre
- Fixer la largeur maximale d'une ligne de code source d'entrée,
affichée dans un listing, à nombre octets.
- --listing-cont-lines=nombre
- Fixer le nombre maximal de lignes affichées dans un listing pour
une unique ligne d'entrée, à nombre + 1.
- -o fichobj
- Donner le nom fichobj au fichier objet généré
par as.
- -R
- Intégrer la section de données dans la section de texte
(code).
- --statistics
- Afficher l'espace maximal (en octets) et le temps total (en secondes)
utilisés durant l'assemblage.
- --strip-local-absolute
- Supprimer les symboles absolus locaux de la table des symboles sortante.
- -v
-
- -version
- Afficher le numéro de version de as.
- --version
- Afficher le numéro de version de as et se terminer.
- -W
-
- --no-warn
- Supprimer les messages d'avertissement.
- --fatal-warnings
- Traiter les avertissements comme des erreurs.
- --warn
- Ne pas supprimer les messages d'avertissement ou les traiter comme des
erreurs.
- -w
- Ignoré.
- -x
- Ignoré.
- -Z
- 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 :
- -marc[5⎪6⎪7⎪8]
- Cette option sélectionne la variante du processeur central.
- -EB ⎪ -EL
- 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 :
- -mcpu=processeur[+extension...]
- Spécifier la variante de processeur ARM cible.
- -march=architecture[+extension...]
- Spécifier la variante de l'architecture ARM utilisée par la
cible.
- -mfpu=format-virgule-flottante
- Spécifier le type d'architecture flottante utilisé par la
cible.
- -mthumb
- Activer le décodage des instructions spécifiques Thumb.
- -mapcs-32 ⎪ -mapcs-26 ⎪ -mapcs-float ⎪ -mapcs-reentrant ⎪ -moabi
- Sélectionner la convention d'appel de procédure
utilisée.
- -EB ⎪ -EL
- Sélectionner une sortie gros-boutiste (-EB) ou petit-boutiste
(-EL).
- -mthumb-interwork
- Spécifier que le code a été
généré avec la coopération entre le code Thumb
et ARM à l'esprit.
- -k
- 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 :
- -O
- Optimiser la sortie en parallélisant les instructions.
Les options suivantes sont disponibles quand as est
configuré pour un processeur D30V :
- -O
- Optimiser la sortie en parallélisant les instructions.
- -n
- Avertir quand des nops sont générés.
- -N
- 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 :
- -ACA ⎪ -ACA_A ⎪ -ACB ⎪ -ACC ⎪ -AKA ⎪ -AKB ⎪ -AKC ⎪ -AMC
- Spécifier quelle variante de l'architecture 960 est utilisée
par la cible.
- -b
- Ajouter du code pour collecter des statistiques concernant les
branchements empruntés.
- -no-relax
- 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 :
- --m32rx
- 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.
- --warn-explicit-parallel-conflicts or --Wp
- Produire des messages d'avertissement quand des constructions
parallèles discutables sont rencontrées.
- --no-warn-explicit-parallel-conflicts or --Wnp
- 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 :
- -l
- Raccourcir les références vers des symboles non
définis à un mot au lieu de deux.
- -m68000 ⎪ -m68008 ⎪ -m68010 ⎪ -m68020 ⎪ -m68030
-
- ⎪ -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.
- -m68881 ⎪ -m68882 ⎪ -mno-68881 ⎪ -mno-68882
- 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.
- -m68851 ⎪ -mno-68851
- 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}.
- -mpic ⎪ -mno-pic
- Générer du code indépendant (dépendant) de la
position. -mpic est utilisé par défaut.
- -mall
-
- -mall-extensions
- Autoriser toutes les extensions du jeu d'instructions. C'est le
comportement par défaut.
- -mno-extensions
- Désactiver toutes les extensions du jeu d'instructions. C'est le
comportement par défaut.
- -mextension ⎪ -mno-extension
- Activer (désactiver) une extension particulière du jeu
d'instructions
- -mcpu
- Activer les extensions du jeu d'instructions prises en charge par un CPU
particulier, et désactiver toutes les autres extensions.
- -mmachine
- 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 :
Les options suivantes sont disponibles quand as est
configuré pour la série des Motorola 68HC11 et 68HC12 :
- -m68hc11 ⎪ -m68hc12
- 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.
- --force-long-branchs
- Les branchements relatifs sont convertis en branchements absolus. Cela
concerne les branchements conditionnels, les branchements inconditionnels
et les branchements sur une sous-routine.
- -S ⎪ --short-branchs
- Ne pas convertir les branchements relatifs en branchements absolus quand
le décalage (offset) est hors de portée.
- --strict-direct-mode
- 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.
- --print-insn-syntax
- Afficher la syntaxe de l'instruction en cas d'erreur.
- --print-opcodes
- Afficher la liste des instructions avec leur syntaxe et se terminer.
- --generate-example
- 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 :
- -Av6 ⎪ -Av7 ⎪ -Av8 ⎪ -Asparclet ⎪ -Asparclite
-
- -Av8plus ⎪ -Av8plusa ⎪ -Av9 ⎪ -Av9a
- 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.
- -xarch=v8plus ⎪ -xarch=v8plusa
- Pour la compatibilité avec l'assembleur Solaris v9. Ces options
sont équivalentes à -Av8plus et -Av8plusa respectivement.
- -bump
- Avertir quand l'assembleur passe à une autre architecture.
Les options suivantes sont disponibles quand as est
configuré pour un processeur MIPS :
- -G nbr
- 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.
- -EB
- Générer une sortie au format gros-boutiste.
- -EL
- Générer une sortie au format petit-boutiste.
- -mips1
-
- -mips2
-
- -mips3
-
- -mips4
-
- -mips32
-
- -mips64
- 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.
- -m4650
-
- -no-m4650
- 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.
- -mcpu=cpu
- 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.
- --emulation=nom
- 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.
- -nocpp
- as ignore cette option. Elle est acceptée pour assurer la
compatibilité avec les outils natifs.
- --trap
-
- --no-trap
-
- --break
-
- --no-break
- 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).
- -n
- 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 :
- -jsri2bsr
-
- -nojsri2bsr
- 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.
- -sifilter
-
- -nosifilter
- 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.
- -relax
- Modifier les instructions de saut pour les longs déplacements.
- -mcpu=[210⎪340]
- Sélectionner le type de cpu présent sur le matériel
cible. Ceci contrôle quelles instructions peuvent être
assemblées.
- -EB
- Assembler pour une cible gros-boutiste.
- -EL
- Assembler pour une cible petit-boutiste.
Voyez les pages info pour la documentation sur les options spécifiques au MMIX.
VOIR AUSSI¶
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 |