ayuda con ejercicio de tecnologia de computadores (arm)

Iniciado por anonimo115, 13 Marzo 2017, 09:57 AM

0 Miembros y 1 Visitante están viendo este tema.

anonimo115

Es que no suma el primer 2 del array ¿empieza directamente en el 4 no?
Por favor. tengo que entregar esa practica hoy

Código (cpp) [Seleccionar]
.data
tam: .word 8
datos: .word 2, 4, 6, 8, -2 -4, -6 -7
res: .word 0
.text
.global main
main: ldr r0, =tam
ldr r1, [r0]
ldr r2, =datos
mov r3, #0
loop: cmp r1, #0
beq sal
ldr r4, [r2], #4
add r3, r3, r4
sub r1, #1
b loop
sal: ldr r0, =res
str r3, [r0]
bx lr



ivancea96

Yo no programo ARM. El código, a simple vista, me <parece> correcto.

Lo que te puedo decir es... ¿no tienes forma de depurarlo línea a línea?
O al menos, sacar información cada ciclo del bucle de qué valores tienen r2 y r3.

anonimo115

Cita de: ivancea96 en 13 Marzo 2017, 10:33 AM
Yo no programo ARM. El código, a simple vista, me <parece> correcto.

Lo que te puedo decir es... ¿no tienes forma de depurarlo línea a línea?
O al menos, sacar información cada ciclo del bucle de qué valores tienen r2 y r3.

Es que no he programado absolutamente nada en arm. he mirado alguna transparencias por tratar de entender el codigo.
Me he cambiado de clase (2º profesor con mayor indice de suspensos de españa en el anterior grupo) y no tengo ni idea.

es que segun lo que yo entiendo en r2 guarda el primer valor del array.
en r4 el segundo.
pero en add r3,r3,r4 sumaria 0+4. ¿el dos se lo ha comido no?

ivancea96

No te puedo decir. Puedes probar de forma temporal a restarle 4 a r2 de inicio, posicionandote asi en el valor "anterior" inexistente.