Programa de 3 lineas de código y cambio de color al presionar ENTER.




pila segment stack 'stack'
    db 100h dup (?)
pila ends


datos segment             ;texto e instrucciones.
    titulo db 13,10,' Eduardo',13,10,'$'
    t db 13,10,' Ismael',13,10,'$'
    mensaje db 13, 10, ' 2',13,10,'$'
datos ends

codigo segment ;segmento de codigo
    assume cs:codigo, ss:pila, ds:datos
 
    ;prepara pantalla
 
    inicio:
        mov ah,0   
        mov al,3h     ;modo texto   
        int 10h       ;interrupcion de video

        mov ax,0600h  ;limpia pantalla
        mov bh,0fh     ;0 color de fondo negro, f letra en blanco
        mov cx,0000h
        mov dx,184Fh
        int 10h
 
        mov ah,02h
        mov bh,00
        mov dh,00
        mov dl,00
        int 10h
               
               
     ;mostrar mensajes         
               
        mov ax,datos
        mov ds,ax
     
        lea dx,titulo
        mov ah,9h
        int 21h
     
        lea dx,t
        mov ah,9h
        int 21h
     
        lea dx,mensaje
        mov ah,9h
        int 21h
     
        mov ah,08   ;pausa y captura datos 08 espera que el usuario presione una tecla
        int 21h
     
        cmp al,13      ;verifica si presiono ENTER
        je llamarAzul
     
        jmp fin           ;finaliza en caso de no recibir respuesta de enter o 2
                       
                       
    fin:                   ;saca el mensaje por pantalla
 
        mov ax,4c00h
        int 21h
     
    llamarAzul:
        CALL AZULPROC
 
    AZULPROC PROC NEAR
     
        mov ah,0   
        mov al,3h    ;modo texto
        int 10h      ;interrupcion de video
     
     
        mov ax,0600h  ;limpia pantalla
        mov bh,0fh     ;0 color de fondo negro, f letra en blanco
        mov cx,0000h
        mov dx,184Fh
        int 10h
     
     
        mov ah,02h
        mov bh,00
        mov dh,00
        mov dl,00
        int 10h
     
     
        ;aqui es donde se hace el cambio de color a azul
     
        mov ah,06h
        mov bh,4fh         ;1 en vez de 0, el 1 es para el azul
        mov cx,0000h

        mov dx,184fh
        int 10h
     
        mov ax,datos
        mov ds,ax
     
        lea dx,titulo
        mov ah,9h
        int 21h
     
        lea dx,t
        mov ah,9h
        int 21h
     
        lea dx,mensaje
        mov ah,9h
        int 21h
     
        mov ax,4c00h       ;terminacion de programa
        int 21h
    RET
    AZULPROC ENDP
         
codigo ends
end inicio

Comentarios

Entradas populares de este blog

Uso de INT 21h en ej. Limpiar Pantalla.

programa turbo assembler