COMO SEPARAR UN ELEMENTO DEL OTRO EN UN LOOP DE ENSAMBLADOR
Publicado por Jeancarlosmoraa (3 intervenciones) el 07/09/2020 23:01:46
Que tal comunidad, Estoy editando este código dado por mi docente, básicamente calcula el promedio de 3 calificaciones, ya está en estado funcional, pero como adjunto en la imagen quisiera separar una calificación de la otra por gustos de visualización y no encuentro por ningún lado alguna instrucción o un comando que me permita hacer aquello sin cambiar la estructura. Adjunto el código y agradezco su ayuda de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
.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
Valora esta pregunta
0