codice:
;COLCHAR.ASM
;
;Stampa un carattere a colori
;
        EXTRN   L_CLS:NEAR      ; Pulisce lo schermo
        EXTRN   L_KWAIT:NEAR    ; Attende la pressione di un tasto
        EXTRN   L_WCHR:NEAR     ; Visualizza il carattere in AL col colore di BL
_prg    SEGMENT BYTE PUBLIC 'CODE'
        ASSUME CS:_prg,DS:_prg
        ORG     0100h
        JMP     START
START:  MOV     BH,00h  ; Pagina video 0
        CALL    L_CLS   ; Reimposta a 80x25 e pulisci lo schermo
        MOV     CX,0Fh  ; Visualizza in 15 colori diversi
VIS:    PUSH    CX      ; Metti al sicuro CX nello stack
        MOV     AL,'*'  ; Imposta il carattere da stampare
        MOV     BL,CL   ; Imposta il colore corrente
        CALL    L_WCHR  ; Visualizza il carattere corrente
        CALL    L_KWAIT ; Attendi la pressione di un tasto
        POP     CX      ; Preleva CX dallo stack
        LOOP    VIS     ; Ripeti finchŠ CX <> 0
        CALL    L_CLS   ; Reimposta a 80x25 e pulisci lo schermo
        MOV     AH, 4Ch ;
        INT     21H     ; ^ Esci al DOS
_prg    ENDS
        END START
l'idea è di visualizzare 15 volte un singolo carattere, ogni volta di colore diverso... perchè invece mi visualizza 15 caratteri del colore 15, poi 14 del colore 14 e così via fino a zero? mi ci sto perdendo...