miércoles, 28 de febrero de 2018

Programas en clase

1.- Menu para colores

                       
; 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


No hay comentarios:

Publicar un comentario