Scroll to navigation

AS(1) GNU Development Tools AS(1)

NOME

AS - l'assembler GNU portabile.

SINTASSI

as [-a[cdhlns][=file]] [--alternate] [-D]
[--defsym sym=val] [-f] [-g] [--gstabs] [--gstabs+]
[--gdwarf-2] [--help] [-I dir] [-J] [-K] [-L]
[--listing-lhs-width=NUM] [--listing-lhs-width2=NUM]
[--listing-rhs-width=NUM] [--listing-cont-lines=NUM]
[--keep-locals] [-o objfile] [-R] [--statistics] [-v]
[-version] [--version] [-W] [--warn] [--fatal-warnings]
[-w] [-x] [-Z] [--target-help] [target-options]
[--files ...]

oPZIONI target Alpha:
[-mcpu]
[-mdebug-no-mdebug]
[-relax] [-g] [-Gsize]
[-F] [-32addr]

Opzioni target ARC :
[-marc[5⎪6⎪7⎪8]]
[-EB-EL]

Opzioni target ARM :
[-mcpu=processor[+extension...]]
[-march=architecture[+extension...]]
[-mfpu=floating-point-format]
[-mfloat-abi=abi]
[-meabi=ver]
[-mthumb]
[-EB-EL]
[-mapcs-32-mapcs-26-mapcs-float
-mapcs-reentrant]
[-mthumb-interwork] [-k]

Opzioni target CRIS :
[--underscore--no-underscore]
[--pic] [-N]
[--emulation=criself--emulation=crisaout]
[--march=v0_v10--march=v10--march=v32--march=common_v10_v32]

Opzioni target D10V :
[-O]

Opzioni target D30V :
[-O-n-N]

Opzioni target i386 :
[--32--64] [-n]

Opzioni target i960 :
[-ACA-ACA_A-ACB-ACC-AKA-AKB
-AKC-AMC]
[-b] [-no-relax]

Opzioni target IA-64 :
[-mconstant-gp-mauto-pic]
[-milp32-milp64-mlp64-mp64]
[-mlembe]
[-mhint.b=ok-mhint.b=warning-mhint.b=error]
[-x-xexplicit] [-xauto] [-xdebug]

Opzioni target IP2K :
[-mip2022-mip2022ext]

Opzioni target M32R :
[--m32rx--[no-]warn-explicit-parallel-conflicts
--W[n]p]

Opzioni target M680X0 :
[-l] [-m68000-m68010-m68020⎪...]

Opzioni target M68HC11 :
[-m68hc11-m68hc12-m68hcs12]
[-mshort-mlong]
[-mshort-double-mlong-double]
[--force-long-branchs] [--short-branchs]
[--strict-direct-mode] [--print-insn-syntax]
[--print-opcodes] [--generate-example]

Opzioni target MCORE :
[-jsri2bsr] [-sifilter] [-relax]
[-mcpu=[210⎪340]]

Opzioni target MIPS :
[-nocpp] [-EL] [-EB] [-O[optimization level]]
[-g[debug level]] [-G num] [-KPIC] [-call_shared]
[-non_shared] [-xgot]
[-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
[-march=CPU] [-mtune=CPU] [-mips1] [-mips2]
[-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2]
[-mips64] [-mips64r2]
[-construct-floats] [-no-construct-floats]
[-trap] [-no-break] [-break] [-no-trap]
[-mfix7000] [-mno-fix7000]
[-mips16] [-no-mips16]
[-mips3d] [-no-mips3d]
[-mdmx] [-no-mdmx]
[-mdebug] [-no-mdebug]
[-mpdr] [-mno-pdr]

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

Opzioni target PDP11 :
[-mpic-mno-pic] [-mall] [-mno-extensions]
[-mextension-mno-extension]
[-mcpu] [-mmachine]

Opzioni target picoJava :
[-mb-me]

Opzioni target 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]

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

Opzioni target TIC54X :
[-mcpu=54[123589]-mcpu=54[56]lp] [-mfar-mode-mf]
[-merrors-to-file <filename>-me <filename>]

Opzioni target Xtensa :
[--[no-]text-section-literals] [--[no-]absolute-literals]
[--[no-]target-align] [--[no-]longcalls]
[--[no-]transform]
[--rename-section oldname=newname]

DESCRIZIONE

GNU as è in realtà una famiglia di assemblatori. Se si usa (o si è usato) l'assemblatore GNU in una architettura, si dovrebbe trovare un ambiente abbastanza simile quando lo si usa in un'altra architettura. Ciascuna versione ha molto in comune con le altre, inclusi i formati dei file oggetto, la maggior parte delle direttive assembler (spesso chiamate pseudo-ops) e la sintassi assembler.

as è fatto principalmente per assemblare l'output del compilatore GNU C "gcc" per l'uso da parte del linker "ld". Ciononostante abbiamo provato a far assemblare correttamente a as qualunque cosa venga assemblata correttamente da altri assemblatori per la stessa macchina. Le eccezioni sono documentate esplicitamente. Ciò non significa che as usa sempre la stessa sintassi di un altro assemblatore per la stessa architettura; per esempio conosciamo molte versioni incompatibili della sintassi del linguaggio assembly 680x0.

Ogni volta che si esegue as esso assembla esattamente un programma sorgente. Il programma sorgente è fatto di uno o più file. (Anche lo standard input è un file.)

Si inserisce as in una linea di comando che ha zero o più nomi di file di input. I file di input sono letti (da sinistra a destra). Un argomento della linea di comando (in qualunque posizione) che non ha alcuno speciale significato è considerato un nome di file di input.

Se non si dà a as alcun nome di file esso tenta di leggere un file di input dallo standard input di as , che è normalmente il proprio terminale. Si potrebbe dover digitare ctl-D per dire a as che non c'è più programma da assemblare.

Usare -- se si ha bisogno di nominare esplicitamente il file dello standard input nella propria linea di comando.

Se il sorgente è vuoto, as produce un piccolo, vuoto file oggetto.

as può scrivere avvisi e messaggi di errore sul file dello standard error (solitamente il proprio terminale). Ciò potrebbe non accadere quando un compilatore esegue as automaticamente. Gli avvisi riportano un'assunzione fatta, in modo che as possa continuare ad assemblare un programma; gli errori riportano un grave problema che arresta l'assemblaggio.

Se si invoca as atraverso il compilatore C GNU, si può usare l'opzione -Wa per passare argomenti all'assemblatore. Gli argomenti dell'assemblatore devono essere separati tra loro (e da -Wa) da virgole. Per esempio:

        gcc -c -g -O -Wa,-alh,-L file.c

Questo passa due opzioni all'assemblatore: -alh (emette un elenco sullo standard output con livello alto e sorgente assembly) e -L (mantiene i simboli locali nella tabella simboli).

Solitamente non c'è bisogno di usare questo meccanismo -Wa, poiché molte opzioni dei compilatori a linea di comando sono automaticamente passate all'assemblatore dal compilatore. (Si può chiamare il driver del compilatore GNU con l'opzione -v per vedere precisamente quali opzioni esso passa a ciascun passo di compilazione, incluso l'assemblatore).

OPZIONI

Attiva le elencazioni, in una tra molte modalità:
omette i falsi condizionali
omette le direttive di debugging
include il sorgente di alto livello
include l'assembly
include le macro espansioni
omette il processamento dei form
include simboli
=file
imposta il nome del file elencato

Si possono combinare queste opzioni; per esempio, usare -aln per l'assembly listing senza il processamento dei form. L'opzione =file , se usata, deve essere l'ultima. Da solo, -a significa -ahls.

Inizia in modalità macro alternata, vedere @ref{Altmacro,,".altmacro"}.
Ignorato. Questa opzione è accettata per compatibilità di script con chiamate ad altri assemblatori.
Definisce il simbolo sym con il valore value prima di assemblare il file di input. value deve essere una costante intera. Come in C, un 0x iniziale indica un valore esadecimale, e un 0 iniziale indica un valore ottale.
``fast''---skip salta spazi e commenti di preprocessing (assume che il sorgente sia l'output del compilatore).
Genera informazioni di debugging per ciascuna linea sorgente dell'assembler usando il formato di debug preferito dal target. Questo attualmente significa uno tra STABS, ECOFF o DWARF2.
Genera informazioni stabs di debugging per ciascuna linea dell'assembler. Questo potrebbe aiutare il debugging del codice assembler, se il debugger lo può gestire.
Genera informazioni stabs di debugging per ciascuna linea dell'assembler, con estensioni GNU che probebilmente solo gdb può usare, e che può mandare in crash altri debugger o farli rifiutare di leggere il proprio programma. Questo può aiutare il debugging del codice assembler. Attualmente la sola estensione GNU è la locazione della directory di lavoro corrente al momento dell'assemblaggio.
Genera informazioni di debugging DWARF2 per ciascuna linea dell' assembler. Questo può aiutare il debugging del codice assembler, se il debugger può usarlo. Notare che questa opzione è supportata solo da alcuni target, non da tutti.
Stampa un sommario delle opzioni della linea di comando ed esce.
Stampa un sommario di tutte le opzioni specifiche del target ed esce.
Aggiunge la directory dir all'elenco di ricerca per le direttive ".include" .
Non dà alcun avviso dell'overflow con segno.
Emette avvisi quando le tabelle di differenza sono alterate per lunghi spostamenti.
Mantiene (nella tabella simboli) i simboli locali. Su sistemi a.out tradizionali esso inizia con L, ma sistemi differenti hanno etichette di prefissi locali differenti.
Imposta la massima ampiezza, in parole, della colonna dati in output per un assembler che elenca number.
Imposta la massima ampiezza, in parole, della colonna dati in output per le linee di continuazione in un assembler che elenca number.
Imposta la massima ampiezza di una linea sorgente di input, come visualizzato in un elenco, in number byte.
Imposta il numero massimo di linee stampate in un elenco per una singola linea di input in number + 1.
Nomina il file oggetto di output da as objfile.
Racchiude la sezione dati nella sezione testo.
Stampa lo spazio massimo (in byte) e il tempo totale (in secondi) usato dell'assembly.
Rimuove i simboli locali assoluti dalla tabella simboli in uscita.
Stampa la versione di as.
Stampa la versione di as ed esce.
Sopprime i messaggi di avviso.
Tratta gli avvisi come errori.
Non sopprime i messaggi di avviso e non li tratta come errori.
Ignorato.
Ignorato.
Genera un file oggetto anche dopo degli errori.
-- ⎪ files ...
Lo standard input, o i file sorgenti da assemblare.

Le seguenti opzioni sono disponibili quando as è configurato per un processore ARC .

Questa opzione seleziona la variante core del processore.
Seleziona l'output di tipo big-endian (-EB) o little-endian (-EL).

Le seguenti opzioni sono disponibili quando as è configurato per la famiglia di processori ARM .

Specifica quale variante del processore ARM è il target.
Specifica quale variante dell'architettura ARM è usata dal target.
Seleziona quale architettura Floating Point è il target.
Seleziona quale ABI floating point è in uso.
Abilita la decodifica delle sole istruzioni Thumb.
Seleziona quale convenzione di chiamata della procedura è in uso.
Seleziona l'output di tipo big-endian (-EB) o little-endian (-EL).
Specifica che il codice è stato generato con un'interazione tra codice Thumb ARM in mente.
Specifica che è stato generato codice PIC.

Vedere le pagine info per la documentazione delle opzioni specifiche di CRIS.

Le seguenti opzioni sono disponibili quando as è configurato per un processore D10V.

Ottimizza l'output parallelizzando le istruzioni.

Le seguenti opzioni sono disponibili quando as è configurato per un processore D30V.

Ottimizza l'output parallelizzando le istruzioni.
Avvisa quando sono generati dei nops.
Avvisa quando è generato un nop dopo un'istruzione di moltiplicazione a 32-bit.

Le seguenti opzioni sono disponibili quando as è configurato per il processore Intel 80960.

Specificano quale variante dell'architattura 960 è il target.
Aggiunge codice per raccogliere statistiche sulle ramificazioni prese.
Non altera le istruzioni compare-and-branch sui lunghi spostamenti; errore se necessario.

Le seguenti opzioni sono disponibili quando as è configurato per le serie Ubicom IP2K.

Specifica che le istruzioni estese IP2022 sono permesse.
Ripristina il comportamento di default, che restringe le istruzioni permesse a quelle base IP2022.

Le seguenti opzioni sono disponibili quando as è configurato per le serie Renesas M32R (una volta Mitsubishi M32R).

Specifica quale processore nella famiglia M32R è il target. Il default è normalmente l'M32R, ma questa opzione lo cambia in M32RX.
Produce messaggi di avviso quando vengono incontrati costrutti paralleli discutibili.
Non produce messaggi di avviso quando vengono incontrati costrutti paralleli discutibili.

Le seguenti opzioni sono disponibili quando as è configurato per le serie Motorola 68000.

Riferimenti più corti a simboli indefiniti, di una parola invece di due.
⎪ -m68040 ⎪ -m68060 ⎪ -m68302 ⎪ -m68331 ⎪ -m68332
⎪ -m68333 ⎪ -m68340 ⎪ -mcpu32 ⎪ -m5200
Specifica quale è il processore target nella famiglia 68000. Il default è normalmente il 68020, ma può essere cambiato in fase di configurazione.
La macchina target ha (o non ha) un coprocessore floating-point. Il default è supporre un coprocessore per 68020, 68030, e cpu32. Sebbene il 68000 di base non sia compatibile con il 68881, può essere specificata una combinazione dei due, poiché è possibile fare l' emulazione delle istruzioni del coprocessore con il processore principale.
La macchina target ha (o non ha) un'unità coprocessore di gestione memoria. Il default è supporre un MMU per 68020 e superiore.

Per dettagli sulle opzioni delle caratteristiche PDP-11 dipendenti dalla macchina, vedere @ref{PDP-11-Options}.

Genera codice indipendente dalla posizione (o dipendente dalla posizione). Il default è -mpic.
Abilita tutte le estensioni dei set di istruzioni. Questo è il default.
Disabilita tutte le estensioni dei set di istruzioni.
Abilita (o disabilita) una particolare estensione del set istruzioni.
Abilita le estensioni del set di istruzioni supportate da una particolare CPU, e disabilita tutte le altre estensioni.
Abilita le estensioni del set di istruzioni supportate da un particolare modello di macchina, e disabilita tutte le altre estensioni.

Le seguenti opzioni sono disponibili quando as è configurato per un processore picoJava.

Genera output in formato ``big endian''.
Genera output in formato ``little endian''.

Le seguenti opzioni sono disponibili quando as è configurato per le serie Motorola 68HC11 o 68HC12.

Specifica quale è il processore target. Il default è definito dalla opzione di configurazione quando si costruisce l'assembler.
Specifica di usare l'intero 16-bit ABI.
Specifica di usare l'intero 32-bit ABI.
Specifica di usare il doppio 32-bit ABI.
Specifica di usare il doppio 64-bit ABI.
Le ramificazioni relative sono trasformate in assolute. Questo riguarda ramificazioni condizionali, ramificazioni non condizionali e ramiicazioni a una subroutine.
Non trasforma le ramificazioni relativa in assolute quando l'offset è fuori gamma.
Non trasforma il modo ad indirizzamento diretto in modo ad indirizzamento esteso quando l'istruzione non supporta il modo ad indirizzamento diretto.
Stampa la sintassi dell'istruzione in caso di errore.
stampa l'elenco delle istruzioni con sintassi ed esce.
stampa n esempio di istruzione per ciascuna possibile istruzione e quindi esce. Questa opzione è utile solo per il testing as.

Le seguenti opzioni sono disponibili quando as è configurato per l'architettura SPARC:

Seleziona esplicitamente una variante dell'architettura SPARC.

-Av8plus e -Av8plusa seleziona un ambiente a 32 bit. -Av9 e -Av9a seleziona un ambiente a 64 bit.

-Av8plusa e -Av9a abilita il set di istruzioni SPARC V9 con estensioni UltraSPARC.

Per compatibilità con l'assembler Solaris v9. Queste opzioni sono equivalenti rispettivamente a -Av8plus e -Av8plusa.
Avvisa quando l'assembler commuta su un'altra architettura.

Le seguenti opzioni sono disponibili quando as è configurato per l'architettura 'c54x.

Abilita il modo di indirizzamento esteso. Tutti gli indirizzi e rilocazioni assumono l'indirizzamento esteso (di solito a 23 bit).
Imposta la versione di CPU per la quale si compila.
Redirige l'output errore su un file, per sistemi difettosi che non supportano tale comportamento nella shell.

Le seguenti opzioni sono disponibili quando as è configurato per un processore MIPS.

Questa opzione imposta la più ampia dimensioni di un oggetto che può essere referenziato implicitamente con il registro "gp". E' accettato solo per target che usano il formato ECOFF, come una DECstation su cui funziona Ultrix. Il valore predefinito è 8.
Genera output in formato ``big endian''.
Genera output in formato ``little endian''.
Genera codice per un particolare livello di Instruction Set Architecture MIPS. -mips1 è un alias per -march=r3000, -mips2 è un alias per -march=r6000, -mips3 è un alias per -march=r4000 e -mips4 è un alias per -march=r8000. -mips5, -mips32, -mips32r2, -mips64, e -mips64r2 corrisponde rispettivamente ai processori generici MIPS V, MIPS32, MIPS32 Release 2, MIPS64, e MIPS64 Release 2 ISA.
Genera codice per una particolare cpu MIPS.
Programma e regola per una particolare cpu MIPS.
Fa inserire dei nops se la lettura del registro di destinazione di un'istruzione mfhi o mflo avviene nelle due istruzioni seguenti.
Fa inserire l'output di debugging stabs-style per andare in una sezione ECOFF-style .mdebug invece che nelle sezioni standard ELF .stabs.
Controlla la generazione di sezioni ".pdr".
Le dimensioni del registro sono normalmente dedotte da ISA e ABI, ma questi flag forzano la trattazione di un certo gruppo di registri come se fossero sempre ampi 32 bit. -mgp32 controlla la dimensione dei registri di uso generale e dei -mfp32 controlla la dimensione dei registri floating-point.
Genera codice per il processore MIPS 16. Ciò equivale a mettere ".set mips16" all'inizio del file assembly. -no-mips16 disabilita questa opzione.
Genera codice per le Application Specific Extension MIPS-3D. Questo dice all'assembler di accettare istruzioni MIPS-3D. -no-mips3d disabilita questa opzione.
Genera codice per la Application Specific Extension MDMX. Questo dice all'assembler di accettare istruzioni MDMX. -no-mdmx disabilita questa opzione.
L'opzione --no-construct-floats disabilita la costruzione di costanti floating point a doppia ampiezza caricando le due metà del valore nei due registri floating point a singola ampiezza che compone il registro a doppia ampiezza. Per default è selezionato --construct-floats, permettendo la costruzione di queste costanti floating point.
Questa opzione fa sì che as emuli as configurato per qualche altro target, in tutti gli aspetti, incluso il formato di output ( scegliendo solo tra ELF e ECOFF), la manipolazione degli pseudo-opcodes, che può generare informazioni di debug o memorizzare informazioni sulla tabella simboli, e endian di default. I nomi di configurazione disponibili sono: mipsecoff, mipself, mipslecoff, mipsbecoff, mipslelf, mipsbelf. I primi due non alterano l'endian di default da quello del target primario per il quale l'assembler è stato configurato; gli altri cambiano il default in little- o big-endian coma indicato da b o l nel nome. L'uso di -EB o -EL sovrascriverà la selezione dell'endian in ogni caso.

Questa opzione attualmente è supportata solo quando il target primario per cui as è configurato è un MIPS ELF o ECOFF. Inoltre il target primario o altri specificati con --enable-targets=... al momento della configuraizone deve includere il supporto per l'altro formato, se entrambi vengono resi disponibili. Per esempio, la configurazione Irix 5 include il supporto per entrambi.

Alla fine questa opzione supporterà più configurazioni, con un maggior controllo a grana fine sul comportamento dell'assembler, e verrà supportata per più processori.

as ignora questa opzione. E' accetata per compatibilità con gli strumenti nativi.
Controlla come comportarsi con l'overflow di moltiplcazione e la divisione per zero. --trap o --no-break (che sono sinonimi) intercettano un'eccezione trap (e funzionano solo per l'Instruction Set Architecture level 2 e maggiore); --break o --no-trap (anch'essi sinonimi, e predefiniti) intercettano un'eccezione break.
Quando questa opzione è usata, as emetterà un avviso ogni volta che genera un'istruzione nop da una macro.

Le seguenti opzioni sono disponibili quando as è configurato per un processore MCore.

abilita o disabilita la trasformazione da JSRI a BSR. Per default è abilitato. L'opzione da linea di comando -nojsri2bsr può esere usata per disabilitarlo.
Abilita o disabilita il comportamento silicon filter. Per default esso è disabilitato. Il default può essere sovrascritto dall'opzione a linea di comando -sifilter.
Altera le istruzioni di salto per i lunghi spostamenti.
Seleziona il tipo di cpu sull'hardware target. Questo controlla qualil istruzioni possono essere assemblate.
Assembla per un target big endian.
Assembla per un target little endian.

Vedere le pagine info per avere documentazione sulle opzioni secifiche per MMIX.

Le seguenti opzioni sono disponibili quando as è configurato per un processore Xtensa.

Con --text-section-literals, i pool literal sono sparpagliati nella sezione testo. Il default è --no-text-section-literals, che mette i literal in una sezione separata nel file di output. Queste opzioni influenzano solo i literal referenziati attraverso istruzioni relative PC "L32R"; i literals per le istruzioni in modo assoluto "L32R" sono gestiti separatamente.
Indica all'assembler se le istruzioni "L32R" usano indirizzamenti PC assoluti o relativi. Il default è di prendere l' indirizzamento assoluto se il processore Xtensa include l'opzione "L32R" di indirizzamento assoluto. Altrimenti può essere usato solo il modo PC relativo "L32R".
Abilita o disabilita automaticamente l'allineamento per ridurre le penalizzazioni dei salti al costo di un po' più codice. Il default è --target-align.
abilita o disabilita la trasformazione delle istruzioni di chiamata per permettere chiamate attraverso un maggior spettro di indirizzi. Il default è --no-longcalls.
Abilita o disabilita tutte le trasformazioni assembler delle sitruzioni Xtensa. Il default è --transform; --no-transform deve essere usato solo nei rari casi in cui le istruzioni devono essere esattamente come specificato nel sorgente assembly.

VEDERE ANCHE

gcc(1), ld(1), e i campi Info per binutils e ld.

COPYRIGHT

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

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''.

2005-08-05 binutils-2.15.94.0.2.2