domingo, 25 de febrero de 2018

cambiar color de pantalla








pila segment stack "stack" ;segmento de pila
    db 100h dup (?) ;a partir de la direccion de 100 de la pila
pila ends

datos segment
    titulo db 13,10," cambiar fondo de pantalla ",13,10 ,"$"
    mensaje db "presione ENTER si quiere que la pantalla azul.Siquiere morado presione 2",13,10,"para salir presione cualquier tecla",13,10,"$"  
    
datos ends

codigo segment ;segmento de codigo
    assume cs:codigo, ss:pila, ds:datos
    
    inicio:
           ;...........................................preparar pantalla
           mov ah,0
               mov al,3h ;modo texto
               int 10h ;interrupcion de video  
               
               mov ax,0600h ;limpiar pantalla
               mov bh,0fh ;0 color de fondo negro, f color de letra blanco
               mov cx,0000h
               mov dx,784fh
               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,mensaje
           mov ah,9h
           int 21h
              ;.........................................captura de teclas
                mov ah,08 ;pausa y captura de datos 05 espera que el usuario presione una tecla
                int 21h
                
                cmp al,13 ;verifica si presiono Enter,el cual tiene un codigo ascii
                je llamarAzul ;salto condicional jump equals opcion 1 saltar si es igual ala opcion 1
                
                cmp al,50 ;ascii 50= numero 2 compara lo que tiene el registro ah con el ascii 50 en el reg ah
                je llamarMorado
                
                jmp fin  ;si no escoge ni enter ni 2, sale del programa
                
         fin:  ;saca el mensaje por pantalla
         
              mov ax,4c00h
              int 21h
llamarAzul:
    CALL AZULPROC
llamarMorado:
    CALL MORADOPROC
;........................................................................
AZULPROC PROC NEAR
    
mov ah,0
              mov al,3h ;modo texto
              int 10h  ;interrupcion de video
              
              mov ax,0600h ;limpiar pantalla
              mov bh,0fh ;0 color de fondo negro, f color de letra blanco
              mov cx,0000h
              mov dx,184fh
              int 10h
              
              mov ah,02h
              mov bh,00
              mov dh,00
              mov dl,00
              int 10h
              
;;;;;;//////////////
              mov ah,06h    
              mov bh,1fh       
              mov cx,0000h 
              mov dx,184fh    
              int 10h   

   
   
   
              mov ax,4c00h
              int 21h
              
RET

AZULPROC ENDP

;----------------------------------
MORADOPROC PROC NEAR
           mov ah,06h    
           mov bh,5fh       
           mov cx,0000h    
           mov dx,184fh    
           int 10h   
           
           mov ax,4c00h    
           int 21h 
RET 

MORADOPROC ENDP

codigo ends
end inicio 
              
              

No hay comentarios.:

Publicar un comentario

Macro Potencia de un numero

name "potencia" include "emu8086.inc" include "macroos.txt" .model small data segment     base  dw ? ...