PAGE 66,132 TITLE** PROGRAMMA di GESTIONE di programmi ASSEMBLER tipo COM (aprile 2009) SUBTTL** EsA006.ASM - Esercizi PALESTRA ASSEMBLY APPRENDISTI - by ing. G.OBER ;/---------------------------------------------------------------------------\ ;| NOME : EsA006.ASM | ;| AUTORE : Giorgio OBER | ;| VERSIONE : aprile 2009 | ;| DESCRIZIONE : Esercizio nø 0006 | ;| Pulisce lo schermo e stampa un carattere a colori in un pun-| ;| to preciso dello schermo, cioŠ fissa la posizione di stampa.| ;| (usa in parte le procedure della Libreria Giobe.LIB). | ;\---------------------------------------------------------------------------/ ; LIBRERIA UTILIZZATA DAL PROGRAMMA [opzione WinASM altrimenti non necessaria] includelib c:\arch-lab\bin\GIOBE.LIB ;PROCEDURE ESTERNE UTILIZZATE dal PROGRAMMA [NEAR, dalla LIBRERIA ~GIOBE.LIB~] ;----------------------------------------------------------------------------- EXTRN BIOScls:NEAR EXTRN KEYwait:NEAR ;DEFINIZIONE DEL SEGMENTO DEL CODICE ;----------------------------------------------------------------------------- _prog SEGMENT BYTE PUBLIC 'CODE' ;Inizio Standard del Segmento di CODICE ASSUME CS:_prog,DS:_prog ;Associazione Standard per i Segmenti ORG 0100H ;Indirizzo d'Inizio standard dell'eseguibile COM INIZIO: ;Indirizzo della prima istruzione da compilare JMP EsA006 ;Istruzione Standard che salta le (eventuali) ;variabili del programma e punta il Main Program ;AREA DESTINATA AI DATI DEL PROGRAMMA ;----------------------------------------------------------------------------- ATTRIB DB 1FH ;Attributo di colore: Bianco brillante su Blu ;***************************************************************************** ; ---------------------------------------------- EsA006 proc NEAR ; AREA DEDICATA AL MAIN PROGRAM ; ---------------------------------------------- ;----------------------------------------------------------------------------- ;Provvede alla cancellazione del video, CALL BIOScls ;posizionando il cursore alla riga0, colonna0, ;in alto a sinistra MOV BH,00H ;Predispone la stampa in Pagina video 0 MOV DH,12 ;Predispone la riga di stampa (esempio: riga12) MOV DL,39 ;Predispone la colonna di stampa (esempio: coln39) MOV AH,02H ;Fissa la posizione del cursore INT 10H MOV BH,00H ;Predispone la stampa in Pagina video 0 MOV CX,0001 ;Predispone la stampa di un solo carattere MOV AH,09H ;Provvede alla stampa del carattere Ascii "A" MOV BL,CS:[ATTRIB];con il codice di attributo di colore predispo- MOV AL,'A' ;sto nella variabile locale di nome ATTRIB, INT 10H ;nella posizione di stampa corrente CALL KeyWait ;Rimane in attesa della pressione di un tasto ;qualunque (lasciando il suo valore in AL) MOV AH,4CH ;Pone fine al processo (eseguibile) in atto INT 21H ;tornando al prompt del DOS nel modo migliore EsA006 ENDP ;Chiusura Standard della Procedura "MainProgram" _prog ENDS ;Chiusura Standard del Segmento di CODICE END INIZIO ;Indirizzo dell'ultima istruzione da compilare