; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
org 100h
.stack 64 ;
.data ;
titulo db 13,10,' CAMBIAR FONDO DE PANTALLA',13,10,'$'
mensaje db 'Presione 1 si quiere la pantalla verde.',10,13,'Si quiere rojo, presione 2',13,10,'Si quiere Morado, presione 3',13,10,'Si quiere Celeste, presione 4.',10,13,'Para salir, presione cualquiertecla',13,10,'$'
.code
inicio:;Funcion
;---------------------------------------------------
mov ah,0H ;limpia el registro
mov al,3H ;modo de texto
int 10h ;interrupcion de video
mov bh,0FH ;0 color negro , f color de letra blanca
mov cx,0000H ;es la esquina superior izquierda reglon: columna
mov dx,184FH ;es la esquina inferior derecha reglon: columna
int 10h
;mov ah,02h ;Limpiamos los registros
; mov bh,00
;mov dh,00
;mov dl,00
;int 10h
;--------------------------------------------------
mov ax,@data ;llamar a .data
mov ds,ax ;guardar los datos en ds
lea dx,titulo ;imprimir el mensaje
mov ah,9h
int 21h
lea dx,mensaje ;imprimir mensaje
mov ah,9h
int 21h
;---------------------------------------------------
mov ah,08 ;pausa y espera a que el usuario precione una tecla
int 21h ;interrupcion para capturar
cmp al,49 ;compara si lo que el usuario preciono fue un 1
je llamarVerde ;si el usuario si preciono enter llama a la funcion
cmp al,50 ;compara si el usuario preciono el numero 2
je llamarRojo
cmp al,51 ;compara si el usuario preciono el numero 3
je llamarMorado
cmp al,52 ;compara si el usuario preciono el numero 4
je llamarAmarillo
jmp fin ;si el usuario no preciono ni una opcion a la funcion fin
fin:
mov ax,4c00h ;funcion que termina el programa
int 21h
llamarVerde:
CALL VERDEPROC ;llama al procedimiento
llamarRojo:
CALL ROJOPROC
llamarAmarillo:
CALL AMARILLOPROC
llamarMorado:
CALL MORADOPROC ;llama al procedimiento
VERDEPROC PROC NEAR
;//////////////////////////////////// lo mismo que hacemos al inicio del programa
; mov ah,0 ;limpia el registro
;mov al,3h
;int 10h
; mov ax,0600h
; mov bh,0fh
;mov cx,0000h
; mov dx,184Fh
;int 10h
; mov ah,02h
;mov bh,00
; mov dh,00
; mov dl,00
;int 10h
;////////////////////////////////////////////////////////////// Poner la pantalla azul
mov ah,06h ;Salida directa a patalla
mov bh,2fh ;Color de pantalla azul y blanco de letra
mov cx,0000h
mov dx,184Fh
int 10h ;Esta interrupción se utiliza básicamente para mostrar texto en la pantalla, para cambiar a modo gráfico, para establecer la paleta de colores, etc...
mov ax,4c00h ;termina el programa
int 21h
RET
VERDEPROC ENDP
MORADOPROC PROC NEAR
mov ah,06h ;Salida directa a patalla
mov bh,5fh ; color de pantalla morado y blanco de letra
mov cx,0000h
mov dx,184fh
int 10h
mov ax,4c00h ;termina el programa
int 21h
RET
MORADOPROC ENDP
ROJOPROC PROC NEAR
mov ah,06h ;Salida directa a patalla
mov bh,4fh ; color de pantalla morado y blanco de letra
mov cx,0000h
mov dx,184fh
int 10h
mov ax,4c00h ;termina el programa
int 21h
RET
ROJOPROC ENDP
AMARILLOPROC PROC NEAR
mov ah,06h ;Salida directa a patalla
mov bh,3fh ; color de pantalla morado y blanco de letra
mov cx,0000h
mov dx,184fh
int 10h
mov ax,4c00h ;termina el programa
int 21h
RET
AMARILLOPROC ENDP
end inicio
2.-Loop
.model small
.stack 64
.data
mensaje db 0AH, 0dh, "Letrero cinco veces","$"
.code
inicio:
mov cx,0005h
ciclo:
mov ax,@data
mov ds,ax
mov dx,offset mensaje
mov ah,09h
int 21h
loop ciclo
mov ah,04ch
int 21h
end inicio