.S

File S

Assembly Language Source File
Fai una domanda
RISPOSTA RAPIDA

Un file .s è un file sorgente in linguaggio assembly - testo semplice contenente istruzioni CPU di basso livello per un processore specifico come x86-64 o ARM. Qualsiasi editor di testo può aprirlo per la visualizzazione. Per trasformarlo in un programma, esegui «gcc file.s -o program» su Linux o macOS, oppure usa MinGW o MASM su Windows. Il file è sicuro da aprire; il rischio sussiste solo se si assembla ed esegue codice non attendibile.

Sviluppatore: N/A (compiler/toolchain convention - GNU, Unix C toolchains) Categoria: File di sviluppo Standard aperto MIME: text/x-asm
SI APRE SU Windows macOS Linux
Correlati: .DO · .MD · .HEX · .XSD

In questa pagina

19k+ estensioni indicizzate
Ultima revisione Aug 4, 2026

Non sei sicuro di cosa sia il tuo file?

Trascina qualsiasi file nel nostro identificatore - leggiamo solo i primi byte per dare un nome al formato.

Identifica un file

Che cos'è il formato di file S?

Un file .s è un file sorgente in linguaggio assembly in formato testo semplice utilizzato su Unix, Linux, macOS e toolchain embedded. Contiene istruzioni CPU leggibili dall'uomo - mnemonici, operandi, direttive dell'assemblatore e etichette - che un assemblatore traduce direttamente in codice oggetto.

L'estensione .s è una convenzione della pipeline del compilatore C Unix risalente agli anni '70. L'esecuzione di gcc -S su un file sorgente C interrompe la compilazione dopo la generazione del codice e scrive un file .s, consentendo di ispezionare o ottimizzare manualmente l'output del compilatore prima dell'assemblaggio. Tale file viene poi passato ad as (il GNU assembler) per produrre un file oggetto .o pronto per il linking.

Una convenzione sottile ma importante separa il .s minuscolo dal .S maiuscolo: i file .s vanno direttamente all'assemblatore, mentre i file .S passano prima attraverso il preprocessore C, consentendo direttive come #include, #define e #ifdef - una distinzione su cui si basano pesantemente i codebase di kernel e firmware.

La sintassi varia a seconda della toolchain. GNU as utilizza per impostazione predefinita la sintassi AT&T su x86; gli assemblatori Windows come MASM e NASM (stile Intel) utilizzano la sintassi Intel. Lo stesso layout di file .s viene utilizzato indipendentemente dall'ISA di destinazione - x86-64, ARM/AArch64, RISC-V, MIPS e altri - quindi l'estensione stessa non fornisce informazioni sull'architettura.

I file .s non contengono magic bytes e hanno il tipo MIME text/x-asm. Qualsiasi editor di testo può aprirli; per i file più grandi sono preferibili editor con evidenziazione della sintassi assembly come VS Code, Vim ed Emacs. L'estensione correlata .asm serve allo stesso scopo su molte toolchain non Unix.

Sicurezza e incolumità

RISCHIO: LOW

Un file .s è testo semplice e non fa nulla da solo: non può essere eseguito finché non lo si assembla ed esegue deliberatamente. Il rischio è lo stesso di qualsiasi codice sorgente che si sceglie di compilare: l'assembly può contenere istruzioni che eseguono qualsiasi operazione consentita dalla CPU, quindi assembla ed esegui file .s solo da fonti attendibili e leggi l'assembly sconosciuto prima di compilarlo. Aprire un file .s in un editor di testo per visualizzarlo è completamente sicuro.

Dettagli del formato

in sintesi
NOME COMPLETOAssembly Language Source Fileanche noto come Assembly source, Assembler source
SVILUPPATOREN/A (compiler/toolchain convention - GNU, Unix C toolchains)dal 1970s (Unix C compiler toolchain convention)
TIPO MIMEtext/x-asm
TIPOCodice sorgente assembly in testo semplice
STANDARDAperto · royalty-free
Questa estensione è usata anche da…
  • Sorgente linguaggio di programmazione S - Codice sorgente per il linguaggio statistico S (predecessore di R); raro oggi, ancora presente in codice statistico legacy.
  • Sorgente Scheme (non comune) - Occasionalmente un file sorgente Scheme/Lisp, sebbene .scm sia l'estensione abituale.

Programmi che aprono file S

Windows3 apps
Notepad Open-source Apri direttamente; il menu Linguaggio dispone dell'evidenziazione Assembly. Ideale per visualizzazione e modifiche leggere.
Visual Studio Code Gratuito Apri il file .s; installa un'estensione «x86/ARM Assembly» per l'evidenziazione della sintassi. Modifica come testo semplice.
MASM / MinGW-w64 GCC (to assemble) Gratuito Per compilarlo: «gcc file.s -o program.exe» (MinGW) o «ml64» (MASM di Visual Studio).
macOS2 apps
Visual Studio Code Gratuito Apri il file .s; installa un'estensione «x86/ARM Assembly» per l'evidenziazione della sintassi. Modifica come testo semplice.
Xcode command-line tools (clang/as) Gratuito Installa con «xcode-select --install», quindi assembla usando clang/as dal Terminale.
Linux3 apps
GNU as (binutils) + GCC Open-source Assembla con «as file.s -o file.o» o compila direttamente con «gcc file.s -o program». La toolchain di riferimento.
GNU Emacs / Vim Open-source Apri in asm-mode (Emacs) o con evidenziazione della sintassi (Vim) per leggere e modificare.
gedit / any text editor Open-source Apri come testo semplice per una visualizzazione rapida; gedit evidenzia le sintassi assembly comuni.

Dettagli tecnici

specifiche approfondite
Tipo di fileSorgente in linguaggio assembly (testo semplice)
Tipo MIMEtext/x-asm (accettati anche: text/x-assembly, text/plain)
CodificaASCII / UTF-8
Firma del file (magic bytes)Nessuna - testo semplice senza intestazione fissa; tipicamente inizia con un commento (#, ;), un'etichetta (che termina con :) o una direttiva come .text o .global
Struttura delle righeEtichetta opzionale, direttiva dell'assemblatore o mnemonico CPU con operandi, commento inline - un'operazione logica per riga
Convenzione maiuscole/minuscoleIl formato minuscolo .s viene assemblato direttamente; il maiuscolo .S viene prima passato al preprocessore C (supporta #include, #define, #ifdef)
Emissione del compilatoregcc -S o clang -S emette un file .s dal sorgente C/C++, interrompendo la pipeline di build dopo la generazione del codice e prima dell'assemblaggio
ISA supportatex86-64, ARM/AArch64, RISC-V, MIPS, POWER/PowerPC, AVR e altri - l'estensione è neutra rispetto all'ISA
Varianti di sintassiSintassi AT&T (predefinita per GNU as su x86), sintassi Intel (MASM, NASM), ARM Unified Assembly Language (UAL)
Direttive comuni dell'assemblatore.text, .data, .bss, .global, .section, .align, .byte, .word, .long, .string
ToolchainGNU Binutils (as), assemblatore integrato LLVM/Clang, Microsoft MASM, NASM, yasm, armasm
Ruolo nella pipeline di buildStadio di testo intermedio tra la generazione del codice del compilatore e la creazione del file oggetto; assemblato da as o equivalente per produrre un file .o
Supporto al preprocessingLa variante .S (maiuscola) viene passata attraverso cpp prima dell'assemblaggio, consentendo la compilazione condizionale e l'espansione delle macro all'interno del sorgente asm
Dimensione tipica del file1 KB - 500 KB
Ambienti associatiLinux, Unix, macOS, Windows, embedded/bare-metal (microcontrollori, codice di avvio del kernel, bootloader)
Rilasciato1970s (Unix C compiler toolchain convention)
Ultima versioneN/A (no versioned spec; depends on target CPU ISA and assembler)
Standard aperto · royalty-free
Specificasourceware.org

Conversioni S

Domande e risposte della community

chiesto dagli utenti
Fai una domanda veloce
Ottieni aiuto da persone che lavorano con i file S. Sii specifico - includi il tuo sistema e la versione del software.
Nessun account necessario · risposte solitamente entro un giorno

Ancora nessuna domanda - sii il primo a chiedere informazioni sui file S.

Domande frequenti

Cos'è un file .s?
È un file sorgente in linguaggio assembly: istruzioni CPU di basso livello in formato testo semplice per un processore specifico (x86, ARM, RISC-V, ecc.). È ciò che un compilatore C emette prima di produrre codice macchina, ed è il formato in cui viene salvato l'assembly scritto a mano.
Come apro un file .s?
Puoi aprirlo in qualsiasi editor di testo o IDE: VS Code, Notepad++, vim, Emacs. Per compilarlo effettivamente, usa un assemblatore/toolchain come GNU as o il comando «gcc file.s -o program».
Qual è la differenza tra .s e .S?
Il formato minuscolo .s è assembly puro che l'assemblatore legge direttamente. Il formato maiuscolo .S è assembly che viene prima elaborato dal preprocessore C, quindi può usare #include, #define e #ifdef (comune nel codice del kernel/OS). La distinzione tra maiuscole e minuscole è fondamentale su Unix/Linux.
Come compilo un file .s?
Su Linux/macOS: «gcc file.s -o program» (assemblaggio + linking) o «as file.s -o file.o» (solo assemblaggio). Su Windows usa il gcc di MinGW o ml64 di MASM. È necessario l'assemblatore corrispondente alla CPU e alla sintassi del file.
Posso convertire l'assembly (.s) in C?
Non fedelmente. L'assembly perde la struttura di alto livello necessaria al C, quindi non esiste un vero convertitore da .s a C. I decompilatori come Ghidra producono un C approssimativo dai binari compilati, non un sorgente equivalente.
Il formato .s è uguale a .asm?
Entrambi sono sorgenti assembly. .s è la convenzione Unix/GNU (spesso sintassi AT&T tramite GNU as); .asm è più comune su Windows/DOS (NASM, MASM, spesso sintassi Intel). La CPU e l'assemblatore determinano il dialetto, non l'estensione.

Riferimenti

1GNU Assembler (as) manual - Sourcewaresourceware.org
2GCC - Overall options (-S emits assembly)gcc.gnu.org

Continua a esplorare

nel database

Migliori estensioni della settimana

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.MDMarkdown Document
4.BINCD/DVD Disc Image (BIN/CUE)
5.NOMEDIAAndroid No-Media Marker File
6.PARTPartial Download File
7.RPMSGRestricted Permission Message
8.EXEWindows Executable (Portable Executable)
9.AVIFAV1 Image File Format (AVIF)
10.DBSQLite Database File

Estensioni correlate

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Strumenti file gratuiti

Un identificatore di file e convertitore di immagini nel browser - tutto viene eseguito sul tuo dispositivo.

Apri la cassetta degli attrezzi

Sfoglia le estensioni dei file A-Z