Je regardais la sortie assembleur de mon code et j'ai besoin d'aide pour les instructions ci-dessous.Besoin d'aide pour comprendre ces instructions ARM
- // -
0x00000fe8: e28fc000 .... ADR r12,{pc}+8 ; 0xff0
0x00000fec: e28cca08 .... ADD r12,r12,#8, 20 ; #0x8000
- // -
De ma compréhension de la 1ère instruction provoque r12 à charger avec
« {valeur pc} + 8 »qui est
"{Adresse de l'instruction en cours en cours d'exécution (0xfe8) plus 2 instructions avant (8)} + 8"
est donc r12 après le 1er exécution d'une instruction chargé de 0xff8 (0xfe8 + 8 + 8)
en ce qui concerne également la 2e instruction -
Comment calculer la valeur ajoutée et étant stockée à r12? (le commentaire dit 0x8000, bien que je ne sois pas capable de comprendre comment il l'a obtenu)
Salut Dan, Merci beaucoup! :) Beaucoup de fumée a été nettoyée maintenant !! ;) Oui, vous avez raison à propos de l'ADR évalué à ADD. Il se résume à ADD r12, pc, 0 Désolé d'être naïf, (mais je suis toujours :(jusqu'à ce que je reçois un certain temps) Donc, au moment d'assemblage {pc} +8 signifie que je interprète simplement comme l'adresse de l'instruction en cours + 8? Est-ce que je dois garder à l'esprit ..? –