PAGE 66,132 TITLE** PROGRAMMA di GESTIONE di programmi ASSEMBLER tipo COM (aprile 2009) SUBTTL** EsA010.ASM - Esercizi PALESTRA ASSEMBLY APPRENDISTI - by ing. G.OBER ;/---------------------------------------------------------------------------\ ;| NOME : EsA010.ASM | ;| AUTORE : Giorgio OBER | ;| VERSIONE : aprile 2009 | ;| DESCRIZIONE : Esercizio nø 0010 | ;| Pulisce lo schermo e stampa stringa di caratteri a colori. | ;| Seconda Versione CON uso delle MACRO di Libreria GIOBE.MAC | ;\---------------------------------------------------------------------------/ ; MACRO UTILIZZATE DAL PROGRAMMA: include c:\arch-lab\bin\GIOBE.MAC ; 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 CambiaCol:NEAR EXTRN BIOScls:NEAR EXTRN BIOchr1:NEAR EXTRN BIOSmsg:NEAR EXTRN SET_cur:NEAR EXTRN KEYwait:NEAR ;Dichiarazione di VARIABILI interne utili alle PROCEDURE ESTERNE PUBLIC ATTRIB ;Attributo di colore ;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 EsA010 ;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 Testo01 DB " Benvenuto tra i programmatori del Club ~Arch-Lab~ ",00H ;***************************************************************************** ; ---------------------------------------------- EsA010 proc NEAR ; AREA DEDICATA AL MAIN PROGRAM ; ---------------------------------------------- ;----------------------------------------------------------------------------- ; Provvede alla cancellazione del video, CALL BIOScls ; posizionando il cursore alla riga0, colonna0, ; in alto a sinistra ; ---------------------------------------------- ; 1ø modo: con colore predeterminato e BIOSmsg ; ---------------------------------------------- M_CURSOR 8,15 ; Fissa la posizione di stampa a riga10, coln15 ; Mette a video la stringa da stampare nella LEA SI,Testo01 ; posizione di stampa corrente e con il colore CALL BIOSmsg ; predisposto nella variabile locale ATTRIB ; ---------------------------------------------- ; 2ø modo: colore predeterminatoe e MACRO M_msgN ; ---------------------------------------------- M_CURSOR 10,15 ; Fissa la posizione di stampa a riga10, coln15 ; Mette a video la stringa da stampare nella M_msgN Testo01 ; posizione di stampa corrente e con il colore ; predisposto nella variabile locale ATTRIB ; ---------------------------------------------- ; 3ø modo: colore e posizione fissati localmente ; ---------------------------------------------- M_COLOR 13H ; Fissa il colore a 31H (celeste su blu) M_CURSOR 12,15 ; Fissa la posizione di stampa a riga12, coln15 ; Mette a video la stringa da stampare nella M_msgN Testo01 ; posizione di stampa corrente e con il colore ;predisposto nella variabile locale ATTRIB ; ---------------------------------------------- ; modo FINALE! STRUTTURA COMPLETAMENTE AUTONOMA ; ---------------------------------------------- ; Mette a video la stringa da stampare nella M_msgC Testo01,14,15,4FH; posizione riga14, colonna15, con colore 4FH ; (bianco brillante su rosso) 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 EsA010 ENDP ; Chiusura Standard della Procedura "MainProgram" _prog ENDS ; Chiusura Standard del Segmento di CODICE END INIZIO ; Indirizzo dell'ultima istruzione da compilare