as(1)
as
as är GNU:s portabla assembler.
Namn
as — GNU:s portabla assembler
Synopsis
as [-a[cdghilns][=fil]] [--alternate] [--compress-debug-sections] [--nocompress-debug-sections] [-D] [--dump-config] [--debug-prefix-map gammal=ny] [--defsym symbol=värde] [--elf-stt-common=[no|yes]] [--emulation=namn] [-f] [-g] [--gstabs] [--gstabs+] [--gdwarf-<N>] [--gdwarf-sections] [--gdwarf-cie-version=VERSION] [--generate-missing-build-notes=[no|yes]] [--gsframe] [--hash-size=N] [--help] [--target-help] [--info] [--no-info] [-I katalog] [-J] [-K] [--keep-locals] [-L] [--listing-lhs-width=NUM] [--listing-lhs-width2=NUM] [--listing-rhs-width=NUM] [--listing-cont-lines=NUM] [--multibyte-handling=[allow|warn|warn-sym-only]] [--no-pad-sections] [-o objektfil] [-R] [--scfi=experimental] [--sectname-subst] [--size-check=[error|warning]] [--statistics] [-v] [-version] [--version] [-W] [--no-warn] [--warn] [--fatal-warnings] [-w] [-x] [-Z] [@FIL] [målspecifika-alternativ] [--|filer ...]
Mål
Manualsidan listar ett mycket stort antal målspecifika alternativ för många arkitekturer, bland annat:
- AArch64
- Alpha
- ARC
- ARM
- Blackfin
- BPF
- CRIS
- C-SKY
- i386
- IA-64
- MIPS
- PowerPC
- RISC-V
- s390
- SPARC
- Xtensa
- Z80
De exakta flaggorna för varje mål finns i originalets avsnitt TARGET.
Beskrivning
GNU as är egentligen en hel familj assemblers. Om du använder (eller har använt) GNU assembler på en arkitektur bör du känna igen en mycket liknande miljö när du använder den på en annan arkitektur. Varje version har mycket gemensamt med de andra, inklusive objektfilformat, de flesta assemblerdirektiv (ofta kallade pseudo-ops) och assemblersyntax.
as är i första hand avsedd att assemblera utdata från GNU C-kompilatorn gcc för användning av länkaren ld. Trots det har man försökt få as att korrekt assemblera allt som andra assemblers för samma maskin skulle assemblera. Eventuella undantag dokumenteras uttryckligen. Det betyder dock inte att as alltid använder samma syntax som andra assemblers för samma arkitektur; till exempel finns flera inkompatibla varianter av 680x0-assemblersyntax.
Varje gång du kör as assemblerar den exakt ett källprogram. Källprogrammet består av en eller flera filer. (Standard in räknas också som en fil.)
Du anger en kommandorad med noll eller fler indatafilnamn. Indatafilerna läses från vänster till höger. Ett kommandoradsargument som inte har någon särskild betydelse tolkas som ett indatafilnamn.
Om du inte anger några filnamn försöker as läsa en indatafil från standard in, vilket normalt är terminalen. Du kan behöva skriva Ctrl-D för att tala om för as att det inte finns mer att assemblera.
Använd -- om du uttryckligen behöver namnge standard in-filen på kommandoraden.
Om källan är tom producerar as en liten, tom objektfil.
as kan skriva varningar och felmeddelanden till standard error (vanligtvis terminalen). Detta bör normalt inte ske när en kompilator kör as automatiskt. Varningar rapporterar ett antagande som gjorts för att as ska kunna fortsätta assemblera ett bristfälligt program; fel rapporterar ett allvarligt problem som stoppar assembleringen.
Om du anropar as via GNU C-kompilatorn kan du använda flaggan -Wa för att skicka argument vidare till assemblern. Argumenten måste skiljas åt med kommatecken. Exempel:
gcc -c -g -O -Wa,-alh,-L file.c
Detta skickar två alternativ till assemblern: -alh (skriv en listning till standard ut med både högnivåkällkod och assemblersource) och -L (behåll lokala symboler i symboltabellen).
Vanligtvis behöver du inte använda denna -Wa-mekanism, eftersom många kompilatorflaggor automatiskt skickas vidare till assemblern av kompilatorn. Du kan köra GNU-kompilatordrivrutinen med -v för att se exakt vilka flaggor som skickas till varje steg, inklusive assemblern.
Alternativ
Generella alternativ
@fil- Läs kommandoradsalternativ från fil. Alternativen infogas på platsen för det ursprungliga
@fil-argumentet. Om filen inte finns eller inte kan läsas behandlas alternativet bokstavligt och tas inte bort. - Alternativen i filen separeras med blanktecken. Ett blanktecken kan inkluderas i ett alternativ genom att hela alternativet omges av enkla eller dubbla citationstecken. Alla tecken (inklusive backslash) kan inkluderas genom att föregå tecknet med backslash. Filen kan själv innehålla ytterligare
@fil-alternativ; sådana behandlas rekursivt.
-a[cdghilmns]- Aktivera listningar på olika sätt:
-acutelämna falska villkor-adutelämna felsökningsdirektiv-aginkludera allmän information, som version och angivna alternativ-ahinkludera högnivåkällkod-alinkludera assemblerkod-aliinkludera assembler med ginsn-aminkludera makroexpansioner-anutelämna formsbehandling-asinkludera symboler=filsätt namnet på listningsfilen
- Alternativen kan kombineras. Exempelvis ger
-alnassemblerlistning utan formsbehandling. Om=filanvänds måste det vara sist. Enbart-amotsvarar-ahls.
--alternate- Börja i alternativt makroläge.
--compress-debug-sections- Komprimera DWARF-debugsektioner med zlib enligt ELF ABI:s
SHF_COMPRESSED. Resultatet kanske inte är kompatibelt med äldre länkare och objektverktyg. Om komprimering skulle göra en sektion större komprimeras den inte.
--compress-debug-sections=none|zlib|zlib-gnu|zlib-gabi|zstd- Styr hur DWARF-debugsektioner komprimeras.
nonemotsvarar--nocompress-debug-sectionszlibochzlib-gabimotsvarar--compress-debug-sectionszlib-gnuanvänder det föråldrade zlib-gnu-formatet och byter namn på debugsektioner så att de börjar med.zdebugzstdanvänder zstd
- Om komprimering gör sektionen större komprimeras den inte och byts inte heller namn.
--nocompress-debug-sections- Komprimera inte DWARF-debugsektioner.
-D- Aktivera felsökning i målspecifika backend-delar, om det stöds. Annars ignoreras alternativet. Det accepteras ändå för kompatibilitet med skript.
--debug-prefix-map gammal=ny- När filer assembleras i katalogen gammal, skriv felsökningsinformation som om de låg i ny.
--defsym symbol=värde- Definiera symbolen symbol till värde innan indatafilen assembleras. värde måste vara en heltalskonstant. Som i C betyder inledande
0xhexadecimalt och inledande0oktalt. Symbolens värde kan överskridas inuti en källfil med pseudo-op.set.
--dump-config- Visa hur assemblern är konfigurerad och avsluta.
--elf-stt-common=no|yes- Styr om ELF-assemblern ska generera gemensamma symboler med typen
STT_COMMON.
--emulation=namn- Om assemblern stöder flera målkonfigurationer kan detta användas för att välja önskad variant.
-f- Fast — hoppa över förbehandling av blanktecken och kommentarer (antar att källan är kompilatorutdata).
-g,--gen-debug- Generera felsökningsinformation för varje assemblerrad med det debugformat som målet föredrar, för närvarande vanligtvis STABS, ECOFF eller DWARF2.
--gstabs- Generera stabs-felsökningsinformation för varje assemblerrad.
--gstabs+- Generera stabs-felsökningsinformation med GNU-tillägg som i praktiken främst gdb kan hantera.
--gdwarf-2,--gdwarf-3,--gdwarf-4,--gdwarf-5- Generera DWARF-felsökningsinformation för varje assemblerrad enligt angiven version. Huruvida extra information verkligen genereras beror på målet.
--gdwarf-sections- Skapa en serie
.debug_line.foo-sektioner i stället för en enda.debug_line-sektion, där foo motsvarar namnet på respektive kodsektion.
--gdwarf-cie-version=VERSION- Styr vilken version av DWARF Common Information Entries (CIE) som produceras.
--generate-missing-build-notes=yes|no- Styr om ELF-assemblern ska generera GNU Build-attributnotiser när sådana saknas i källan.
--gsframe- Skapa sektionen
.sframefrån CFI-direktiv.
--hash-size=N- Ignoreras. Finns för kompatibilitet med andra assemblers.
--help- Skriv en sammanfattning av kommandoradsalternativ och avsluta.
--target-help- Skriv en sammanfattning av alla målspecifika alternativ och avsluta.
--info- Dämpa inte informationsmeddelanden.
--no-info- Dämpa informationsmeddelanden.
-I katalog- Lägg till katalogen katalog i sökvägen för
.include-direktiv.
-J- Varna inte om signed overflow.
-K- Utfärda varningar när differenstabeller ändras för långa displacements.
-L,--keep-locals- Behåll lokala symboler i symboltabellen. Dessa börjar vanligtvis med
.Lpå ELF-system ellerLpå traditionella a.out-system.
--listing-lhs-width=antal- Sätt maximal bredd i ord för datakolumnen i en assemblerlistning.
--listing-lhs-width2=antal- Sätt maximal bredd i ord för datakolumnen på fortsättningsrader.
--listing-rhs-width=antal- Sätt maximal bredd för en indatakällrad i en listning, i byte.
--listing-cont-lines=antal- Sätt maximalt antal rader som skrivs ut i en listning för en enskild indatarad till antal + 1.
--multibyte-handling=allow|warn|warn-sym-only- Styr hur assemblern hanterar multibyte-tecken i indatan.
allowtillåter dem utan klagomålwarnvarnar för varje multibyte-teckenwarn-sym-onlyvarnar bara när ett symbolnamn innehåller multibyte-tecken
--no-pad-sections- Sluta fylla ut slutet av utsektioner till sektionens alignment. Standard är att fylla ut, men det kan slösa minne på mål med begränsat utrymme.
-o objektfil- Namnge objektfilen som skapas till objektfil.
-R- Slå ihop datasektionen med textsektionen.
--reduce-memory-overheads- Ignoreras. Finns för kompatibilitet med verktyg som skickar samma alternativ till både assembler och länkare.
--scfi=experimental- Styr om assemblern ska syntetisera CFI för handskriven indata. Detta är experimentellt och avsett endast för System V AMD64 ABI.
--sectname-subst- Respektera substitutionssekvenser i sektionsnamn.
--size-check=error|warning- Utfärda fel eller varning för ogiltigt ELF-
.size-direktiv.
--statistics- Skriv ut maximalt minnesutrymme (i byte) och total tid (i sekunder) som användes vid assembleringen.
--strip-local-absolute- Ta bort lokala absoluta symboler från den utgående symboltabellen.
-v,-version- Skriv ut as-versionen.
--version- Skriv ut as-versionen och avsluta.
-W,--no-warn- Dämpa varningsmeddelanden.
--warn- Dämpa inte varningar och behandla dem inte som fel.
--fatal-warnings- Behandla varningar som fel.
-w- Ignoreras.
-x- Ignoreras.
-Z- Generera en objektfil även efter fel.
--eller filer- Standard in eller källfiler att assemblera.
Några viktiga målspecifika exempel
AArch64
-EB- Märk utdata som big-endian.
-EL- Märk utdata som little-endian.
-mabi=ABI- Ange vilken ABI källkoden använder. Kända värden är
ilp32ochlp64. Standard ärlp64.
-mcpu=processor[+tillägg...]- Ange målprocessor. Assemblern ger fel om en instruktion inte stöds av målet.
-march=arkitektur[+tillägg...]- Ange målarkitektur.
i386 / x86-64
--32,--x32,--64- Välj ordstorlek 32 eller 64 bitar.
-n- Inaktivera vissa nop-optimeringar för alignment.
--divide- Behandla
/som ett vanligt tecken i stället för kommentarstecken på SVR4-liknande plattformar.
-march=CPU[+EXTENSION...]- Ange målprocessor och eventuella ISA-tillägg.
-mtune=CPU- Optimera schemaläggning för en viss CPU.
-msyntax=att|intel- Ange instruktionernas syntax.
-mmnemonic=att|intel- Ange vilken mnemonikstil som används för matchning av instruktioner.
-mnaked-reg- Ange att register inte kräver prefixet
%.
-O0,-O,-O1,-O2,-Os- Optimera instruktionskodning för mindre kodstorlek.
ARM
-mcpu=processor[+tillägg...]- Ange ARM-processormodell.
-march=arkitektur[+tillägg...]- Ange ARM-arkitekturvariant.
-mfpu=format- Ange flyttalsarkitektur.
-mfloat-abi=abi- Ange vilken flyttals-ABI som används.
-mthumb- Aktivera endast Thumb-instruktioner.
-EB,-EL- Välj big-endian eller little-endian.
MIPS
-EB- Generera big-endian-utdata.
-EL- Generera little-endian-utdata.
-march=cpu- Generera kod för en viss MIPS-CPU.
-mtune=cpu- Schemalägg och optimera för en viss MIPS-CPU.
-mips16,-no-mips16- Slå på eller av MIPS16-läge.
-mmicromips,-mno-micromips- Slå på eller av microMIPS-läge.
-mabi=ABI- Ange ABI.
PowerPC
-a32- Generera ELF32 eller XCOFF32.
-a64- Generera ELF64 eller XCOFF64.
-mregnames- Tillåt symboliska namn för register.
-mno-regnames- Tillåt inte symboliska registernamn.
-mlittle,-mlittle-endian,-le- Generera little-endian-kod.
-mbig,-mbig-endian,-be- Generera big-endian-kod.
RISC-V
-fpic,-fPIC- Generera positionsoberoende kod.
-fno-pic- Generera inte positionsoberoende kod.
-march=ISA- Välj bas-ISA, till exempel
rv32ima.
-mabi=ABI- Välj ABI, exempelvis
ilp32ellerlp64, eventuellt med suffix för flyttalskonvention.
-mrelax- Utnyttja länkarlättnader för att minska antalet instruktioner som krävs för symboladresser.
-mno-relax- Gör inte sådana lättnader.
-mlittle-endian- Generera little-endian-kod.
-mbig-endian- Generera big-endian-kod.
Se även
gcc(1)ld(1)- Info-sidorna för binutils och ld
Copyright
Copyright (c) 1991–2025 Free Software Foundation, Inc.
Tillstånd ges att kopiera, distribuera och/eller ändra detta dokument enligt villkoren i GNU Free Documentation License, version 1.3 eller senare, publicerad av Free Software Foundation; utan oföränderliga avsnitt, utan framsidestexter och utan baksidestexter. En kopia av licensen finns i avsnittet ”GNU Free Documentation License”.
Colophon
Denna sida är en del av projektet binutils (en samling verktyg för att arbeta med exekverbara binärfiler). Information om projektet finns på http://www.gnu.org/software/binutils/.
Om du har en felrapport för denna manualsida, se http://sourceware.org/bugzilla/enter_bug.cgi?product=binutils.
Denna sida hämtades från tar-arkivet binutils-with-gold-2.44.tar.gz från https://ftp.gnu.org/gnu/binutils/ den 2026-01-16.
Om du upptäcker renderingsproblem i denna HTML-version av sidan, eller tror att det finns en bättre eller mer uppdaterad källa för sidan, eller har rättelser eller förbättringar av informationen i denna COLOPHON (som inte är en del av den ursprungliga manualsidan), skicka e-post till man-pages@man7.org.