Anteriormente habiamos visto como podiamos realizar sumas o restas con numeros de un solo digito, pues en esta ocasion la calificacion es de dos digitos, por lo que en la sintaxis se ira explicando como es que esto funciona.
Sintaxis
.model small
.stack 64
.data ;seccion de variables
msg1 db "Dame una calificacion (Seguida de un enter):.$"
aprobado db 13,10,"Aprobado.$"
reprobado db 13,10,"Reprobado.$"
VAR1 dw ?,"$"
VAR2 dw ?,"$"
VAR3 dw ?,"$"
.code ;inicia el segmento del programa
RESULTADO PROC FAR
MOV AX,@DATA ;Inicio del programa
MOV DS,AX
;Desplegar primer mensaje
MOV AH,09
lea DX,msg1
int 21h
;Pedir un numero
MOV AH,01
int 21h
MOV VAR1,AX
;Pedir un segundo numero
MOV AH,01
int 21h
MOV VAR2,AX
;Pedir un tercer numero
MOV AH,01
int 21h
MOV VAR3,AX
;Momento de evaluar la calificacion
CMP AL,13 ;Comparacion
JE CONTINUE ;Salta si es igual
JMP MAYOR ;salto incondicional
;Inicia funcion
CONTINUE:
MOV AX,VAR1
CMP AL,037h ;7 es 37 en ascii
JGE MAYOR ;salta si es mayor o igual
JMP MENOR ;salto incondicional
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 RESULTADO
Resultado del programa.
Como veran en la sintaxis, estamos guardando tres valores en nuestras variables. Al ingresar nuestra calificacion(80), guardamos el 8 en codigo ascii en una variable, el 0 en otra variable(tambien en ascii) y finalmente el enter en la ultima variable.
Para comparar, tomamos de base el 70 en codigo ascii para asi saber a cual de las dos funciones(menor o mayor) ira nuestro programa al comparar con el valor que ya le hemos dado.


No hay comentarios.:
Publicar un comentario