C'est encore moi, je suis en train d'apprendre l'asm eZ80 et j'en suis aux stack. J'ai bien compriss le concept mais j'ai rencintré une petite difficulté : je souhaite faire un programme très simple : je veux que ce programme me donne la valeur stockée dans le registre SPL(cette valeur étant une adresse, donc un pointeur si j'ai bien compris). J'ai essayé plusieurs code mais ça ne semble pas marché.
Voici un simple exemple de code que j'ai pu essayé(les autres étants de pseudo variantes) :
- Code: Tout sélectionner
#include "ti84pce.inc";
.assume ADL=1;
.org userMem-2;
.db tExtTok,tAsm84CeCmp;
call $0020810; // affiche un écran blanc
ld hl,0h; on stocke 0 en hexadecimale dans le registre hl
add hl,SP; on ajoute la valeur du registre SPL dans hl
call _DispHL; affiche la valeur du registre hl
call _GetKey; attends la pression d'une touche
ret
Je compile avec spasm : aucun problème.
Je transfère le prgm sur CEmu et je l'éxecute .
Je lance le debbugger pour voir l'état du CPU.
Et la valeur qui m'est affiché est "13740101" sur l'écarn de la calculatrice.
je compare avec SPL (sa valeur est D1A83C en hex et en décimale ça donne 13740092)
Or ce n'est pas la même chose (9 de différence).
C'est dû à quoi ? Une mauvaise manip du logiciel ? Ou le code ?
Je sais que l’intérêt du programme est nul mais c'est juste un des programmes tests pour voir si j'ai bien compris les notions.
Je remercie celles et ceux qui peuvent m'aider par avance.