by Hayleia » 08 Nov 2014, 19:44
C'est normal comme dit matref, ça vient de la manière dont fonctionnent l'Axe et l'Asm.
Ta première ligne évalue 2 puis le stocke à un endroit dont l'adresse est une constante (L1) puis à un autre endroit (dont l'adresse est une constante aussi (L1+1)). En Asm, on peut écrire à une adresse fixe sans avoir à l'évaluer dans un registre. Du coup, quand en Axe tu écris à une adresse fixe, ça compile comme ça et ton hl reste intact.
Par contre dans ta deuxième ligne, tu évalues 2 puis tu écris à l'adresse r3, qui n'est pas une constante, donc ton hl est sauvegardé puis remplacé par la valeur r3 et on écrit ce qu'on avait sauvegardé à l'adresse hl. Puis lors de ton deuxième →, hl a été modifié.
Si tu veux éviter ce problème, tu peux faire Select(2,→{r3})→{r3+1} (je trouve plus lisible de faire 2Select(,→{r3})→{r3+1}), ça marche aussi).

   Pokemon Topaze (Axe) discussion and download links here |
(19:29:36) noelnadal: plus sérieusement, j'ai très peu de problèmes (22:45:44) Clifward: J'aime rire du malheur des autres 
(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!! (2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked). (2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked. (2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat. (2017.11.18 - 17:07:28) Fireworks: <3 (2017.11.18 - 17:07:31) Fireworks: 208 |