Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: anonimo115 en 13 Marzo 2017, 09:57 am



Título: ayuda con ejercicio de tecnologia de computadores (arm)
Publicado por: anonimo115 en 13 Marzo 2017, 09:57 am
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
  1. .data
  2. tam: .word 8
  3. datos: .word 2, 4, 6, 8, -2 -4, -6 -7
  4. res: .word 0
  5. .text
  6. .global main
  7. main: ldr r0, =tam
  8. ldr r1, [r0]
  9. ldr r2, =datos
  10. mov r3, #0
  11. loop: cmp r1, #0
  12. beq sal
  13. ldr r4, [r2], #4
  14. add r3, r3, r4
  15. sub r1, #1
  16. b loop
  17. sal: ldr r0, =res
  18. str r3, [r0]
  19. bx lr



Título: Re: ayuda con ejercicio de tecnologia de computadores (arm)
Publicado por: 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.


Título: Re: ayuda con ejercicio de tecnologia de computadores (arm)
Publicado por: anonimo115 en 13 Marzo 2017, 10:43 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?


Título: Re: ayuda con ejercicio de tecnologia de computadores (arm)
Publicado por: ivancea96 en 13 Marzo 2017, 10:45 am
No te puedo decir. Puedes probar de forma temporal a restarle 4 a r2 de inicio, posicionandote asi en el valor "anterior" inexistente.