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