domingo, 3 de marzo de 2019

Programa menu de operaciones

En esta entrada, veremos un programa como repaso de todo lo que anteriormente estábamos viendo.
Haciendo énfasis en los últimos temas con el uso de la librería emu8086.inc
He realizado un programa que al ingresar dos números, se le da al usuario un menú para que elija que se hará con esos dos números(suma,resta,multiplicación o división).



Sintaxis del programa



org 100h
include 'emu8086.inc'
.data
    numeros db 2 dup (?) ;creacion de un arreglo
    cad2 dw ?
    msg dw "El resultado es: $"
.code
    print 'Ingresa el primer numero:'
    call scan_num //funcion para leer un numero
    mov numeros[0],cl  //guardamos el numero en el arreglo
    printn ""
    print 'Ingresa el segundo numero:'
    call scan_num
    mov numeros[1],cl
    printn "" 
    printn 'Elija una operacion a realizar:'
    printn '1.Suma'
    printn '2.Resta'
    printn '3.Multiplicacion'  
    printn '4.Division'
    printn 'Opcion:'
    call scan_num
    mov cad2,cx //la opcion elegida es guardada en cad2
    
    cmp cad2,1h //hacemos las compraciones
    je suma //si cad2 tiene dentro un 1,el programa hara un salto hasta "suma"
    cmp cad2,2h
    je resta 
    cmp cad2,3h
    je multi 
    cmp cad2,4h
    je divi     
    
resta:  
xor ax,ax
mov al,numeros[0]
sub al,numeros[1]
jmp fin
suma: 
xor ax,ax
add al,numeros[0]
add al,numeros[1]
jmp fin
multi:
xor ax,ax //limpiamos el registro ax
mov al,numeros[0] //movemos el primer numero a multiplicar a al
mul numeros[1] //con la funcion, realizamos la multiplicacion
jmp fin //brincamos a la funcion fin
divi:  
xor ax,ax
mov al,numeros[0]
div numeros[1]
jmp fin

fin:
mov bx, ax
mov ah,09 
lea dx,msg
int 21h 
mov ax, bx 
printn ""
call PRINT_NUM
ret 
    
    define_print_num
    define_scan_num
    define_print_num_uns
    define_print_string     
    define_get_string
end 

En si, el programa lo que hace de diferente a todo lo que ya hemos visto, es la elección de una opción y de esa opción el programa va a la parte indicada para hacer dicha operación.
Es una combinación de varias cosas que se vieron como el uso de un arreglo para guardar los números ingresados y también el uso de comparación, y las funciones de la librería antes mencionada.



Programa fuente usado como inspiracion o referencia: http://iscsaucedacarolina.blogspot.com/2019/02/programa-con-modulo-emu8086inc.html

No hay comentarios.:

Publicar un comentario