Ensamblador - COMO SEPARAR UN ELEMENTO DEL OTRO EN UN LOOP DE ENSAMBLADOR

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 2 puestos en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

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.

errordenumeros

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 3
Ha aumentado su posición en 5 puestos en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

COMO SEPARAR UN ELEMENTO DEL OTRO EN UN LOOP DE ENSAMBLADOR

Publicado por Tula 3000 (1 intervención) el 07/09/2020 23:20:59
Mire joven deje de ser vago y pongase a realizar usted mismo el codigo, verguenza como docente suyo me deberia dar saber que mi alumno no es eficiente en algo tan sencillo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 2 puestos en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

COMO SEPARAR UN ELEMENTO DEL OTRO EN UN LOOP DE ENSAMBLADOR

Publicado por Jeancarlo (3 intervenciones) el 07/09/2020 23:38:39
¿Como estas? Recién estoy empezando a aprender ensamblador amigo. No tenias que usar esos términos.
Vengo con el fin de una respuesta, no con el fin de que me critiquen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

COMO SEPARAR UN ELEMENTO DEL OTRO EN UN LOOP DE ENSAMBLADOR

Publicado por Nacho (81 intervenciones) el 07/09/2020 23:52:34
¿Separarlas metiendo un espacio por ejemplo? O una coma. No tienes más que añadir en .data algo como separador Db ' ','$' o separador Db ', ','$' y dentro del while sacar ese mensaje antes del loop.

¿Por qué pones mov ax, @data mov ds, ax tantas veces?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar