![]() |
| Home | Chi sono | Mappa del sito | Contatti |
|
Esercizi di programmazione in Pascal->Grafica - Assembler in linea
Grafica - Assembler in lineaIn 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:
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. |