1Fermer3
squalylLe 04/03/2010 à 10:46
un cours sur le fonctionnement de l'architecture arm te serait plus utile.

parce que ldr c'est load, tout simplement. Donc il charge le contenu de la mémoire à l'adresse .L5 dans r3.

et comme .L5 est une adresse dont le contenu est l'adresse de cpt, ben le ldr r3, [r3+0] récupère vraiment le contenu de la variable cptr, sa valeur quoi.

c'est une astuce utilisée car l'arm n'a pas d'instruction pour charger directement le contenu d'une adresse complète dans un registre. Il ne peut charger que des adresses sur 8 bits significatifs je crois. Donc l'astuce c'est de lui faire charger le contenu d'une adresse "pas loin", qui elle contient vraiment l'adresse que tu veux.

en gros, c'est impossible de faire directement ldr r3, cpt, parce que cpt peut être à une adresse que l'instruction ldr peut pas encoder. Donc il faut un intermédiaire.

le débogueur s'appelle gdb, il y a un "target sim" qui permet de simuler l'arm sur pc.