miércoles, 28 de febrero de 2018

M E N U




CODIGO 

;PRACTICA EN CLASE
;MENU
;SARAHI CRUZ MEDINA Y LUZ EDITH PEREZ

pila segment stack "stack" ;segmento de pila
    db 100h dup (?) 
pila ends

datos segment
    MENU db 13,10," -MENU- ",13,10 ,"$"
    MSG1 db 13,10," OPRIMA 1 PARA PANTALLA AZUL ",13,10 ,"$"
    MSG2 db 13,10," OPRIMA 2 PARA PANTALLA ROJA ",13,10 ,"$"
datos ends

codigo segment ;
    assume cs:codigo, ss:pila, ds:datos
   
    inicio:
           ;...........................................preparar pantalla
           mov ah,0
               mov al,3h 
               int 10h 
              
               mov ax,0600h ;limpiar pantalla
               mov bh,0fh ;0 color de fondo negro, F color de letra blanco
                          ;4 bits para color de pantalla 
                          ;y 4 para el color de la letra
               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,MENU
           mov ah,9h
           int 21h
              
           lea dx,MSG1
           mov ah,9h
           int 21h
          
           lea dx,MSG2
           mov ah,9h
           int 21h
              ;.........................................captura de teclas
                mov ah,08 ;pausa y captura 
                int 21h
               
                cmp al,49 ;verifica si presiono el numero 1
                          ;ascii 49= numero 1 
                je llamarAzul ;
               
                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 1 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  
;MENSAJE             
    
 
  

;;;;;;//////////////
              mov ah,06h   
              mov bh,9fh      
              mov cx,0000h
              mov dx,184fh   
              int 10h  

  
  
  
              mov ax,4c00h
              int 21h 
             
             
             
RET

AZULPROC ENDP

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

MORADOPROC ENDP

codigo ends

end inicio


No hay comentarios.:

Publicar un comentario