Un gran Codigo de lenguaje ensamblador 'menu'
Enviado por danidrako • 19 de Abril de 2018 • Práctica o problema • 955 Palabras (4 Páginas) • 284 Visitas
MENU
title inicia(exe)
.model large
;-------------------------------
.stack 64
extrn suma:far
extrn divi:far
extrn mult:far
;________________________________
.data
;pilascontraseña___________________________
pass db 6 dup (?)
con db 6 dup(0),'$'
;mensajes contraseña_________________________
mensaje db 'Bienvenido','$'
mene db 'Incorrecta','$'
mensa db 'Ingresar contrasna','$'
mensaje2 db 'Desea ingresar de nuevo','$'
mensaje3 db 'Seleccione una operacion','$'
mensajei db 'Ingresa el numero de la operacion que deseas realizar:','$'
suma2 db '1 Suma','$'
multiplica db '2 Division','$'
multiplicadores db '3 Multiplicacion','$'
Menn13 DB 10,13,'Regresar (s): ','$'
menu db 3 (000),'$'
.code
begin proc far
mov ax,@data
mov ds,ax
mov bl,03
mov es,ax
fin:
;VENTANA1VERDE;
MOV AX,0600H
MOV BH,20H
MOV CX,0000H
MOV DX,184FH
INT 10H
;VENTANA BLANCA;
MOV AX,0600H
MOV BH,71H
MOV CX,0015H
MOV DX,184FH
INT 10H
;VENTANA ROJA;
MOV AX,0600H
MOV BH,46H
MOV CX,0039H
MOV DX,184FH
INT 10H
MOV AH,02H
MOV BH,00
MOV DH,03H
MOV DL,19
INT 10H
mov ah,07h
mov dx,00h
mov ah,09h
lea dx,mensa
int 21h
;comp1;
MOV AH,02H
MOV BH,00
MOV DH,04H
MOV DL,20
INT 10H
mov ah,07h
int 21h
mov ah,02h
mov dl,042
mov [pass+0],al
int 21h
MOV AH,02H
MOV BH,00
MOV DH,04H
MOV DL,21
INT 10H
mov ah,07h
int 21h
mov ah,02h
mov dl,042
mov [pass+1],al
int 21h
MOV AH,02H
MOV BH,00
MOV DH,04H
MOV DL,22
INT 10H
mov ah,07h
int 21h
mov ah,02h
mov dl,042
mov [pass+2],al
int 21h
MOV AH,02H
MOV BH,00
MOV DH,04H
MOV DL,23
INT 10H
mov ah,07h
int 21h
mov ah,02h
mov dl,042
mov [pass+3],al
int 21h
MOV AH,02H
MOV BH,00
MOV DH,04H
MOV DL,24
INT 10H
mov ah,07h
int 21h
mov ah,02h
mov dl,042
mov [pass+4],al
int 21h
MOV AH,02H
MOV BH,00
MOV DH,04H
MOV DL,25
INT 10H
mov ah,07h
int 21h
mov ah,02h
mov dl,042
mov [pass+5],al
int 21h
cmp [pass+0],'d'
je comparacion2
jnz error
comparacion2:
cmp [pass+1],'a'
je comparacion3
jnz error
comparacion3:
cmp [pass+2],'n'
je comparacion4
jnz error
comparacion4:
cmp [pass+3],'i'
je comparacion5
jnz error
comparacion5:
cmp [pass+4],'e'
je comparacion6
jnz error
comparacion6:
cmp [pass+5],'l'
je siguiente
jnz error
bienvenido:
MOV AH,02H
MOV BH,00
MOV DH,08H
MOV DL,28
INT 10H
mov ah,09h
lea dx,mensaje
int 21h
jmp siguiente
error:
mov dx,00h
mov ah,09h
lea dx,mene
int 21h
jmp ops
ops:
mov ah,02h
mov dx,0705h
int 10h
mov ah,09h
lea dx,Menn13 ; mnsj "Digite s para regresar al menu opciones"
int 21h
mov ah, 01h
int 21h
cmp al, 's'
jmp fin
jmp final
MOV AH,02H
MOV BH,00
MOV DH,08H
MOV DL,26
INT 10H
mov ah,07h
mov dx,00h
mov ah,09h
lea dx,mensaje2
int 21h
siguiente:
MOV AX,0600H
MOV BH,07H
MOV CX,0000H
MOV DX,184FH
INT 10H
mov ah,02h
mov bh,00
mov dh,01h
mov dl,00
int 10h
mov dx,00h
mov ah,09h
lea dx,mensajei
int 21h
...