Assemblatori

Stato
Discussione chiusa ad ulteriori risposte.

Barbossa

Utente Electrum
30 Gennaio 2016
392
16
83
139
Ecco una lista con relativi links a vari assemblatori utilizzati per la programmazione in assembly:

  • NASM
    E' forse l'assemblatore non-MASM più conosciuto. Scritto interamente in C e disponibile su tutti i sistemi operativi (Linux, Windows, Mac, ...), possiede una sintassi semplice ed intuitiva. La documentazione presente in Internet è enorme, seconda forse solo al GAS e al MASM nei suoi tempi d'oro. Supporta solo sintassi Intel e a partire dalla versione 2 supporta anche codice a 64 bit. Possiede anche un disassemblatore che però supporta solo programmi flat (quindi niente PE, ELF)
    Sintassi: Intel
    Sito: http://www.nasm.us/
  • GAS
    E' l'assemblatore open-source predefinito di Linux, su di esso si basano molti compilatori di linguaggi di alto livello come gcc e g++. Utilizza la sintassi AT&T di default, ma con opportune direttive è possibile utilizzare anche la sintassi Intel, ed è disponibile su molte architetture (tra le quali ci sono i386(x86) ed amd64 (x86_64)) generando codice compatibile. Se sei un programmatore assembly per Linux non puoi non conoscere GAS, in quanto ogni guida per Linux utilizza tale assemblatore.
    Sintassi: AT&T (Intel)
    Disponibile tramite il pacchetto binutils
    NOTA: gcc permette di inserire righe assembly GAS-compatibile nel codice C, rendendolo perfetto per chi vuole combinare assembly e C su Linux
  • FASM
    Vari utenti lo considerano il migliore assemblatore (o almeno uno dei migliori). Open-source, scritto interamente in assembly (FASM-compatibile, chissà come mai :asd:) più veloce dei suoi "colleghi" e possiede un potente algoritmo di ottimizzazione. Inoltre è stato uno dei primi assemblatori (anche prima del NASM) a supportare codice a 64 bit. Purtroppo, essendo scritto in assembly, è difficilmente aggiornabile e, pur potendo assemblare codice a 64 bit, funziona solo su macchine a 32 bit (almeno per sistemi operativi Linux).
    Sintassi: Intel
    Sito: http://flatassembler.net/
  • MASM(32) / ML64.exe
    Non poteva mancare lui. Possiamo definirlo L'assembler della Microsoft. Sviluppato già ai tempi del DOS, è ancora oggi uno dei più utilizzati assemblatori. Purtroppo la sua più grave limitazione è quella di essere disponibile solo per Windows, tagliando fuori gran parte dei programmatori assembly. Inoltre la sua versione a 64 bit, ML64.exe, è disponibile solo all'interno di Visual Studio (per maggiori informazioni su MASM a 32 e 64 bit https://msdn.microsoft.com/it-it/library/afzk3475.aspx ).
    Sintassi: Intel
    Download:
    (ml.exe) http://www.masmforum.com/board/index.php?PHPSESSID=786dd40408172108b65a5a36b09c88c0&topic=6598.0 richiede visual C++
    (ml64.exe)
  • YASM
    Pubblicizzato come l'assemblatore "più multiparadigma", YASM è il frutto della riscrittura dell'assemblatore NASM, quando era ancora sotto una licenza propria, sotto la "nuova" licenza BSD. E' uno dei pochi che supporta nativamente le sintassi AT&T ed Intel senza estensioni e/o direttive. La sua unica pecca è una documentazione non completa, a cui i produttori stanno ponendo rimedio (Nota dell'autore: molti passi della documentazione dI YASM sembrano delle copie della documentazione del più noto NASM). Inoltre il rilascio del NASM con la licenza BSD toglie ai programmatori assembly un altro motivo per l'utilizzo di YASM
    Sintassi: Intel, AT&T
    Sito:http://yasm.tortall.net/
  • TASM
    Uno dei prodotti che hanno reso nota la Borland nella comunità dei programmatori assembly. Le caratteristiche di questo assemblatore sono quasi identiche al MASM della Microsoft. Come il GAS, il TASM viene richiamato da altri compilatori, stavolta della Borland (Turbo Pascal, Turbo C, Turbo Basic, ... che fantasia). Sviluppato anch'esso per il SO DOS, questo compilatore sta scomparendo dalla scena, difatti manca completamente il supporto alle istruzioni a 64 bit e non è più reperibile dal sito ufficiale, ma è ancora possibile ottenerlo effettuando ricerche su Google.
    Sintassi: Intel
    Sito: (mancante)
  • GoAsm
    Disponibile per Windows, questo assemblatore risulta quasi sconosciuto ai programmatori assembly. Sviluppato insieme ad altri tools per la programmazione in assembly su Windows, tra cui compaiono un debugger e il linker GoLink più conosciuto dello stesso assemblatore, GoAsm tra le sue caratteristiche ha il supporto ai caratteri Unicode (più informazioni si possono ottenere dal sito) e macro che facilitano l'utilizzo delle API di Windows. NOTA: anche gli altri assemblatori hanno o hanno in progetto l'inserimento del supporto ai caratteri Unicode, più informazioni possono essere reperite sui rispettivi manuali.
    Purtroppo il GoAsm è disponibile solo per Windows (x86, anche se può ancora essere eseguito su Windows 64), tagliando fuori tutto il mondo Linux. Infine, non essendo molto utilizzato, le uniche informazioni sull'assemblatore si trovano solo sul sito ufficiale (anche se comunque è ben documentato).
    Sintassi: Intel
    Sito: http://www.godevtool.com/
 
  • Mi piace
Reazioni: Kolo93 e Mich43
Che sarà utile ne sono sicuro, a tanti non credo. Comunque negli ultimi tempi la maggior parte dei programmatori assembly si sta orientando sempre più verso NASM e GAS, in quanto la documentazione presente su Internet è molto vasta, mentre molti altri assemblatori non vengono più aggiornati (il TASM è forse il caso più emblematico). Comunque la lista è in continuo aggiornamento. Se conoscete qualche assemblatore che pensate possa essere utile a qualcuno fatemi sapere.
 
Stato
Discussione chiusa ad ulteriori risposte.