dal 2015 - visita n. 563
ATTRIB1
ATTRIB1

 

ATTRIB1.ASM

;::::::::: 8086 - ESERCIZI SVOLTI - RstSv/017 ::::::::::::::::::::::::::::::::
;:                                                                          ::
;: ATTRIB1.ASM - 15/03/2002                                                 ::
;:                                                                          ::
;: Visualizzare un carattere con tutti i possibili Attributi Colore.        ::
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;: Il programma,  dopo la pulizia  dello schermo,  nella sua fase di lavoro ::
;: scrive il carattere 2 volte: con gli attributi assegnati dalla variabile ::
;: ad incremento e con gli stessi attributi + il lampeggio a distanza di 40 ::
;: colonne.                                                                 ::
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

                                      ; SEZIONE DICHIARATIVE
SegVideo  EQU     0B800h              ; Posizione Segmento Video
DimVideo  EQU     2000                ; Dimensione Area Video
WordFill  EQU     0720h               ; 07  attributi / 20  codice ASCII

                                      ; SEZIONE PROLOGO o INTESTAZIONE
CodeSeg   SEGMENT
          ASSUME  CS:CodeSeg, DS:CodeSeg
          ORG     100H

                                      ; 1) FASE DI INIZIALIZZAZIONE
Start:    MOV     AX,SegVideo         ; ES = Segmento Video
          MOV     ES,AX               ;
          CALL    ClrScr              ; Pulizia Video
          MOV     CX,8                ; Contatore Righe
          MOV     DI,0                ; DI Punta Colonna Corrente
          MOV     AL,'*'              ; Carattere
          MOV     AH,0                ; Attributi Colore

                                      ; 2) FASE DI ESECUZIONE
Ciclo2:   PUSH    CX                  ; Salvataggio Contatore Righe
          MOV     CX,16               ; Imposta Contatore Colonne
Ciclo1:   MOV     ES:[DI],AX          ; Scrivi Caratt. + Attributi  in [DI]
          MOV     DX,AX               ;
          OR      DX,8000h            ; Aggiungi Lampeggio
          MOV     ES:[DI+80],DX       ; Scrivi Caratt. + Attributi  in [DI+80]

                                      ; 3) FASE DI CONTROLLO
          ADD     DI,4                ; DI Punta Colonna Corrente + 2
          INC     AH                  ; Aggiorna Attributi Colore
          DEC     CX                  ; CX = 0  ?
          JNZ     Ciclo1              ;    NO: Ripeti Ciclo1
          POP     CX                  ;    SI: Ripristina Contatore Righe
          ADD     DI,96+160           ;        DI Punta Riga Corrente + 2
          DEC     CX                  ;        CX = 0 ?
          JNZ     Ciclo2              ;           NO: Ripeti Ciclo2
                                      ;           SI: Fine

                                      ; 4) FASE DI USCITA
Fine:     MOV     AH,8                ; Attesa Tasto
          INT     21h                 ;
          CALL    ClrScr              ; Pulizia Schermo
          INT     20h                 ; Rientro DOS

                                      ; 5) SOTTOPROGRAMMI
ClrScr:   SUB     DI,DI               ; DI = Offset Video
          MOV     CX,DimVideo         ; CX = Dimensione Area Video
          MOV     AX,WordFill         ; AX = Word di Riempimento:
JClsW:    MOV     ES:[DI],AX          ;
          ADD     DI,2                ; Aggiorna Puntatore DI
          DEC     CX                  ; CX = Zero ?
          JNZ     JClsW               ;   NO: Ricicla da JClsW
          RET                         ;   SI: Rientro Chiamante


                                      ; SEZIONE EPILOGO o CHIUSURA
CodeSeg   ENDS
          END     Start               ; Rinvio all'Istruzione di Start



Asm86
COPYBLK1
COPYBLK2
DISPMSG1
DISPMSG2
DISPMSG3
FILLBLK1
FILLBLK2
WAITKBD1
SOMDIF1
PASSWRD1
CLRSCR1
SCACCHI1
SCACCHI2
SCACCHI3
SCACCHI4
ALLCHAR1
ATTRIB1
CLRSCR2
TESTOCOM
ORDIN1
Funzioni Stringa
Tastiera DOS



La cosa pių importante nel mondo non č tanto dove stiamo, quanto in che direzione stiamo andando.
Oliver Holmes

Valid CSS!
pagina generata in 0.001 secondi