Home Page / Programmazione / Assembler per i newbie

Programmazione

ASM 80x86 per chi inizia

Che cosa è questa pagina

Nel Febbraio 2000 ho dovuto imparare il linguaggio Assembler dell'80x86, per poter superare l'esame di Calcolatori elettronici all'università.

Ho trovato grosse difficoltà nell'imparare un linguaggio così ostico, così diverso dai normali linguaggi di programmazione ad alto livello che ero abituato ad usare. Ma ho anche trovato tutto quello che mi serviva consultando esclusivamente Internet. In poco tempo sono passato dal non sapere quasi niente dell'Assembler alla stesura di un programma tutt'altro che banale, il quale è venuto bene, dato che ha contribuito in larga parte a farmi guadagnare un 30 all'esame.

Così, ho deciso di mettere a disposizione in questa pagina il mio programma, alcuni programmini di prova che mi hanno aiutato nella stesura del programma principale, e tutti i link a documenti e programmi che sono risultati utili nell'apprendimento di questo linguaggio.

Ma prima di iniziare...

Ti serve aiuto per il tuo programma in Assembler?

Se hai un problema con la programmazione in assembler, prima di fare qualunque cosa leggi attentamente questa pagina! Grazie!

Il mio programma: MacBMP

Il programma che ho presentato all'esame si chiama MacBMP ed è un programma, scritto al 100% in Assembler, che carica in memoria un'immagine BMP e permette di effettuare due semplici operazioni su di essa, ovvero la media dei colori di una porzione dell'immagine e la ricerca degli otto colori pił usati.

Il programma funziona in modalità VGA 320x200 a 256 colori, ed è interamente comandato tramite mouse e un'interfaccia grafica a pulsanti. E' in grado di riconoscere tutte i diversi formati di immagini BMP, e di caricare quelle a 2, 16 o 256 colori, sia compresse RLE che non compresse, le cui dimensioni non eccedano quelle dello schermo.

Il listato dimostra quindi come si può utilizzare la modalità VGA, il mouse, come si carica un file da disco, come si decodifica una BMP, in particolare quelle compresse in RLE. Mostra anche un trucchetto per caricare velocemente in memoria della grafica, che viene inglobata nel file eseguibile del programma.

Il compilatore da usare per compilare il sorgente non è l'arcinoto MASM ma NASM, un assemblatore completamente gratuito, che garantisce un controllo assoluto sul programma, e rispecchia da vicino il funzionamento dell'hardware, senza introdurre artifici come invece fa MASM.

Il listato è ampiamente commentato in italiano. Nell'archivio viene distribuita anche la relazione che ho presentato all'esame insieme col programma; può essere utile sia per imparare ad usare il programma (non che sia così difficile), sia per capire il funzionamento del codice sorgente.

Nota bene: leggete la licenza di utilizzo e il file Leggimi.txt.

Links

I link che riporto qui mi sono stati utili nel processo di apprendimento dei rudimenti dell'assembler. L'ultimo link punta ad un file di testo, che ho ricavato dal newsgroup comp.lang.asm.x86, in cui sono elencati un bel po' di siti correlati con l'argomento.

Home Page / Programmazione / Assembler per i newbie


Marcello Mac Mancini Home Page
by Marcello Mancini

Versione 3.0