miércoles, 20 de noviembre de 2019

Programa de calificaciones con emu8086.

El siguiente programa analiza la calificación ingresada y muestra si es aprobatoria o reprobatoria.

org 100h
.model small
.stack 64
.data ;seccion de variables
msg1 db "Dame una calificacion (seguida de un enter):$"
aprobado db 13,10, "Aprobado$" ;13 es salto de linea y 10 es salto de carro
reprobado db 13,10, "Reprobado$"
var1 dw ?,"$" ;variable data write
var2 dw ?,"$"
var3 dw ?,"$"
.code ;inicia el segmento de codigo
resultado proc far ;declaracion de funcion
mov ax, @data ;como inicio
mov ds, ax
;------------desplegar primer mensaje
mov ah,09 ;inicio de mensaje
lea dx,msg1
int 21h
;------------pedir un caracter
mov ah,01
int 21h ;parpadea el cursor
mov var1,ax
;------------pedir segundo caracter
mov ah,01
int 21h ;parpadea el cursor
mov var2,ax
;------------pedir un caracter
mov ah,01
int 21h ;parpadea el cursor
mov var3,ax
;------------momento de evaluar
cmp al,13 ;compara con el enter
je continue ;salto si se cumple la condicion igual a 13
jmp mayor
;inicia funcion
continue:
mov ax, var1 ;valor de var1 se va a reg ax
cmp al,037h
jge mayor ;salta si es mayor o igual
jmp menor ;si no se cumplio se va a funcion menor
mayor:
mov ah,09
lea dx, aprobado
int 21h
jmp salir
menor:
mov ah,09
lea dx, reprobado
int 21h
jmp salir
salir:
mov ax, 4ch
int 21h
resultado endp
end