sábado, 14 de abril de 2018
menu
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," Menu de opciones ",13,10 ,"$"
mensaje db 13,10,"Presionar 1 color Cyan,letras negras",13,10, "$"
mensaje2 db 13,10,"Presionar 2 color rojo,letras azules",13,10,"$"
mensaje3 db 13,10,"presionar cualquier tecla para salir",13,10,"$"
mensaje4 db 13,10,"Hola mundo en Negro",13,10,"$"
mensaje5 db 13,10,"Hola mundo en azul",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,5fh ;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
lea dx,mensaje2
mov ah,9h
int 21h
lea dx,mensaje3
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,49 ;ascii 49= numero1
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,30h ;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
;mensaje
mov ax,datos
mov ds,ax
lea dx,mensaje4
mov ah,9h
int 21h
mov ax,4c00h
int 21h
RET
AZULPROC ENDP
;----------------------------------
MORADOPROC PROC NEAR
mov ah,06h
mov bh,41h
mov cx,0000h
mov dx,184fh
int 10h
;mensaje
mov ax,datos
mov ds,ax
lea dx,mensaje5
mov ah,9h
int 21h
mov ax,4c00h
int 21h
RET
MORADOPROC ENDP
codigo ends
end inicio
Suscribirse a:
Comentarios de la entrada (Atom)
Macro Potencia de un numero
name "potencia" include "emu8086.inc" include "macroos.txt" .model small data segment base dw ? ...
-
Un registro de segmento se utiliza para alinear en un limite de párrafo o dicho de otra forma codifica la dirección de inicio de cada segmen...
-
Registros Apuntadores Estos registros son usados como índices por algunas instrucciones. También pueden ser usados como operandos (excepto...
-
El registro FLAGS es el registro de estado en los microprocesadores Intel x86 que contiene el estado actual del procesador. Este registro es...
No hay comentarios.:
Publicar un comentario