En este programa se van a digitar 3 calificaciones (de 0 a 9 todavía no se captura 10) y dependiendo del promedio nos mostrará un mensaje para saber si el alumno es aprobado o reprobado, el alumno aprobará siempre y cuando tenga un promedio mayor de 7 y se puede repetir el programa cuantas veces quiera el usuario.
Limitaciones del programa:
No imprime ni evalua divisiones con decimales, por lo tanto solo evalua divisiones con residuo 0.
.Model Small
.Stack 64
.Data
msj Db 0ah,0dh, ' Digita las 3 calificaciones: ','$'
msj2 Db ' Aprobado','$'
msj3 Db ' Reprobado','$'
msj4 Db 0ah,0dh, ' Desea capturar otro alumno? 1.-Si, 2.-No','$'
num db 0
sum db 0
prom db 0
.Code
inicio:
mov cx,03h ;numero de calificaciones a pedir
mov bl,0000h
mov al,0000h
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset msj
int 21h
Pedir: ;Pide 3 calificaciones, contador asignado en CX
mov ah,01h
int 21h
sub al,30h
add bl,al ;Hacemos la suma de las calificaciones y las asignamos en bl
aaa
loop pedir ;repite ciclo
jmp promedio
promedio: ;siemplemente divide el resultado de la suma entre 3
mov ax,bx ;pasamos el total de la suma a AX
mov bl,03h
div bl ;dividimos AX entre bl
aad ;ajuste
mov bl,al ;movemos el resultado a bl para imprimirlo
mov ah,02h
mov dl,bh
add dl,30h
int 21h
mov dl,bl
add dl,30h
int 21h
cmp bl,07h ;comparamos si el resultado (bl) es 7
ja apro ;si es mayo salta a la etiqueta apro
je apro ;si es igual salta a la etiqueta apro
jb repro ; si es menor salta a la etiqueta repro
apro: ;Solo imprime el mensaje de aprobado
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset msj2
int 21h
jmp otro
repro: ;Solo imprime el mensaje de reprobado
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset msj3
int 21h
jmp otro
otro: ;Imprime el mensaje si quiere otro promedio y compara con 1 para repetir todo el programa
mov ax,@data
mov ds,ax
mov ah,09
mov dx,offset msj4
int 21h
mov ah,01h
int 21h
cmp al,31h
je inicio
ja salir
jb salir
salir:
mov ah,04ch
int 21h
end inicio
Programa en ejecución:
Los primeros 3 números son los digitados por el usuario, los siguientes dos es el promedio y al final el mensaje si el alumno es aprobado o reprobado.
hola si quiesiera que fueran 4 calificaciones como le aria?
ResponderEliminar