Ensamblador - Guardar una variable de 8btis en una de 16bits.

 
Vista:
Imágen de perfil de Carlos
Val: 8
Ha disminuido su posición en 2 puestos en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Guardar una variable de 8btis en una de 16bits.

Publicado por Carlos (5 intervenciones) el 15/03/2019 20:05:12
Muy buenas, me dejaron cierta actividad en la universidad, pero no logro comprender una parte, ya que al entregarla en la plataforma, el profesor me puso: "tu programa no finaliza adecuadamente." y no sé porqué. Creo que tiene que ver algo con la parte en la que dice que mi resultado tiene que quedar en 16bits, así que anexo mi código y las instrucciones para la actividad. Ojalá alguien me pueda ayudar.

"Desarrolla un programa en lenguaje ensamblador en el que se calcule la potencia de un numero de 8 bits, el resultado debe quedar en 16 bits. en este programa debes crear por lo menos una subrutina.

-La potencia y el número deberán ser introducidas desde la memoria en el momento de la depuración utilizando variables.

-No debe utilizarse la interrupción 21."


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
name "prac4"
org 100h
 
.data
numero db 03h
potencia db 03h
resultado dw 0h
 
.code
mov cl, potencia
mov al, numero
dec cl
 
call calcular
 
mov resultado,ax
 
calcular proc
 
inicio:
 mov bl,numero
 mul bl
 loop inicio
 
calcular endp
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

Guardar una variable de 8btis en una de 16bits.

Publicado por Nacho (81 intervenciones) el 15/03/2019 20:45:00
Antes de responderte, ¿me has votado tú con un -1 en la otra pregunta que haces?
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
Imágen de perfil de Carlos
Val: 8
Ha disminuido su posición en 2 puestos en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Guardar una variable de 8btis en una de 16bits.

Publicado por Carlos (5 intervenciones) el 15/03/2019 21:00:31
Sí, lo siento. Quería darle con +1, pero parece ser que le di -1 por accidente. Disculpa, es que tengo 9 tareas para entregar hoy y ando un poco loco.
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

Guardar una variable de 8btis en una de 16bits.

Publicado por Nacho (81 intervenciones) el 15/03/2019 21:36:27
En ensamblador no es correcto hablar de variables de tamaños o tipos. Existen sólo registros de un tamaño u otro y direccionamientos a la memoria de un byte o más.

Pero no creo que el profe te diga lo que te dice por el tamaño del resultado.

Se supone que el programa empieza en la etiqueta inicio, pero inicio está dentro del procedimiento calcula, y el loop que tiene que calcular la potencia tampoco está bien, con lo que es un lío de programa.

Se supone que el desarrolo corecto sería:

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
name "prac4"
 
org 100h
 
.data
numero db 03h
potencia db 03h
resultado dw 0h
 
.code
 
inicio:
mov cl, potencia
mov bl, numero
 
call calcular
 
mov resultado, ax
; aquí finalizar programa
 
calcular proc
  poten:
    mul bl
    loop poten    ; la instrucción loop ya decrementa cl
calcular endp
 
end

No puedo probarlo porque no puedo ensamblar código en 16 bits pero igual está todo bien.

Si resultado es de 8 bits mov resultado, ax da un error, y tendrías que poner mov resultado, al.
Si resultado es de 16 bits mov resultado, al también daría error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Guardar una variable de 8btis en una de 16bits.

Publicado por Nacho (81 intervenciones) el 15/03/2019 21:53:38
Me he olvidado del ret antes del calcular endp
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
Imágen de perfil de Carlos
Val: 8
Ha disminuido su posición en 2 puestos en Ensamblador (en relación al último mes)
Gráfica de Ensamblador

Guardar una variable de 8btis en una de 16bits.

Publicado por Carlos (5 intervenciones) el 15/03/2019 22:00:49
Gracias, espero que con esos cambios funcione correctamente a ojos del profesor.
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