Home Chi sono Mappa del sito Contatti  
 
Java
Apache Wicket
Sistemistica Totocalcio
 
 
Programmare Applicativi...
Presentazione del libro
Panoramica dei contenuti
 
 
Giochi in PHP
Introduzione
Filetto (Tris)
Forza 4
Sudoku
 
 
Tutorial Linux/Unix
Archivio
 
 
Sql
Tutorial su Mysql
 
 
C++
Framework a oggetti
 
Esercizi di programmazione in Pascal->Grafica - Assembler in linea

Grafica - Assembler in linea

In questo piccolo tutorial verrà spiegato come attivare la modalità grafica VGA con risoluzione 640x480 e scrivere dei punti sullo schermo utilizzando codice assembler in linea.
Il sorgente è stato scritto per l'ambiente di sviluppo Turbo Pascal.
Mediante l'assembler, è possibile utilizzare gli interrupt del BIOS che permettono le varie impostazioni grafiche.

Per una maggiore comprensione si ricorda che ad esempio il registro AX è a 32 bit, ed è formato da i due registri AH (A-HEIGHT) e AL (A-LOW) rispettivamente a 16 bit.

Modalità grafica EGA/VGA
La modalità grafica si attiva mediante l'interrupt 10H, nel registro AX deve essere inserito il valore corrispondente alla modalità grafica e nel registro AH il valore 00H.
Valori possibili in AX:
0 modalità testo 40x25, 16 colori
1 modalità testo 40x25, 16 colori
2 modalità testo 80x25, 16 colori
3 modalità testo 80x25, 16 colori
4 modalità grafica 320x200, 4 colori
5 modalità grafica 320x200, 4 colori
6 modalità grafica 640x200, 2 colori
7 modalità testo 80x25, monocromatico
13 modalità grafica 320x200, 16 colori
14 modalità grafica 640x200, 16 colori
15 modalità grafica 640x350, monocromatico
16 modalità grafica 640x350, 4 colori
17 modalità grafica 640x480, 2 colori
18 modalità grafica 640x480, 16 colori
19 modalità grafica 320x200, 256 colori

Abbiamo quindi la seguente funzione in pascal per settare la modalità grafica:

Si osservi che la variabile modo non viene inserito in AL ma in AX poiché il tipo integer del pascal è un intero a 32 bit.


Scrivere un pixel sullo schermo
La scrittura di un pixel sullo schermo avviene mediante l'interrupt 10H, nel registro AH occorre inserire 0CH, il registro CX contiene la coordinata X, il registro DX contiene la coordinata Y, il registro AL contiene il colore ed il registro BH contiene la pagina video.

Si osservi che per inserire la pagina video in BH, viene dapprima inserito il valore in AX, quindi copiato il registro AL nel registro BH.


Leggere un carattere dallo standard input
La lettura di un carattere dallo standard input avviene mediante l'interrupt 21H, nel registro AH occorre inserire 01H.