Breve Guida all'Assembly 80x86
Corso di Architetture I del Corso di Laurea in Informatica - Università della Bicocca - Anno Accademico 1998/1999
Questa breve guida è stata scritta come complemento alle lezioni di Assembler 80x86
del corso di Architetture I della Facoltà di Informatica - Università della Bicocca - per l'Anno Accademico 1998/1999.
Risorse Utili
Ci sono diverse risorse che potete trovare utili.
- Elenco delle istruzioni
-
Se avete TASM, il "Borland Turbo Assembler Quick Reference"
contiene l'elenco delle istruzioni e delle temporizzazioni aggiornato fino al 486.
Anche l'"Intel Pentium Family User's Manual: Volume 3" è ugualmente utile.
- Elenco degli interrupt
-
Esistono diversi libri che contengono queste informazioni, ma uno dei più aggiornati
è il "Ralf Brown's Interrupt List" disponibile gratuitamente al seguente URL:
ftp://x2ftp.oulu.fi/pub/msdos/programming/docs/interXX[a-d].zip
dove XX è la versione (clicca qui).
Un libro che copre entrambi gli argomenti ed è anche un valido riferimento generale è:
The Revolutionary Guide to Assembly Language
Vitaly Maljugin, Jacov Izrailevich et al
Wrox Press
ISBN: 1-874416-12-5
Elenco degli argomenti
-
-
Breve panoramica sulla famiglia 80x86
· Rappresentazione dei numeri in notazione binaria
· Registri
· Segmenti e offset
· Lo Stack
-
-
Push e Pop: Due istruzioni per utilizzare lo Stack
· Tipi di operando
· Alcuni istruzioni che si devono conoscere
· Il primo programma Assembly
· Istruzioni per la compilazione
-
-
Qualche semplice esempio
· Input da tastiera
· Stampare un carattere
· Controllo del flusso
· Istruzioni di salto su condizione
-
-
Alcune istruzioni che si devono conoscere
· Introduzione alle procedure
· Procedure che passano parametri
· Cosa sono i "Memory Models"?
· Macro
· Macro con parametri
-
-
Funzioni che operano sui file
· Come salvare gli handle dei file
· Usare le funzioni FindFirst e FindNext
-
-
Istruzioni per le stringhe
· Scoprire la versione del DOS
· Push e Pop multipli
· Le istruzioni PUSHA/PUSHAD e POPA/POPAD
· Usare lo Shift per moltiplicazione e divisione
· Cicli
· Come usare un debugger
-
-
Altre operazioni di output in modalità testo
· Modalità 13h
· Verificare che la modalità 13h sia consentita
· Impostare la modalità video
· Alcune ottimizzazioni
-
-
Esempi
· Indirizzamento immediato
· Indirizzamento a registro
· Indirizzamento diretto
· Indirizzamento indiretto con registro
· Indirizzamento relativo con registro base
· Indirizzamento diretto con registro indice
· Indirizzamento con registri base e indice
· Somma esadecimale con indirizzamento immediato
· Sottrazione esadecimale con indirizzamento diretto
· Somma in precisione multipla con indirizzamento diretto
· Somma in precisione multipla con indirizzamento con registro indice
· Somma di numeri decimali con indirizzamento indiretto con registro
· Moltiplicazione per somme ripetute
· Moltiplicazione, elevamento al quadrato e al cubo con l'istruzione di moltiplicazione
· Divisione con variabili di tipo doubleword
· Estrazione di radice quadrata
· Tabella di lookup per logaritmi
· Conversione di codici mediante tabelle di lookup
· Conversione da numeri ASCII a numeri esadecimali
Ritorna in cima