π
<-
Chat plein-écran
[^]

Asm eZ80 : problème de pile(stack)

Assembleur, Axe, C/C++, ICE...

Asm eZ80 : problème de pile(stack)

Unread postby isquelcrax » 08 Mar 2018, 13:27

Bonjour à tous(bon appétit aussi si vous mangez maintenant :) )

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: Select all
#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. :D
Que vive les sciences ad vitam aeternam
User avatar
isquelcraxPremium
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 57.8%
 
Posts: 62
Joined: 01 Mar 2018, 10:24
Location: Nancy
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S-SVT spé maths

Re: Asm eZ80 : problème de pile(stack)

Unread postby Epharius » 08 Mar 2018, 14:58

Mmmh, c'est censé marcher... tu vérifies la valeur (sur cemu) de sp quand ? Après la fin du programme ? Parce que sp change tout le temps, ce serait normal de ne pas trouver la même valeur.
Après, connaître la valeur de sp ça peut être un utile mais personnellement je n'en ai jamais eu besoin :/
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 7.7%
 
Posts: 1148
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Asm eZ80 : problème de pile(stack)

Unread postby Dark coco » 08 Mar 2018, 15:09

il doit s'agir de l'instruction _getkey je sais qu'elle utilise la pile.
(21:48:26) Hamza.S: Dark_coco : tu a écris 2 phrases sans faute
(19:15:10) Hayleia: ah ça je confirme que t'as appris à écrire à l'école de baptiste_leprovost :troll:
User avatar
Dark cocoProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 65.8%
 
Posts: 95
Joined: 15 Jan 2017, 14:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: dut gte

Re: Asm eZ80 : problème de pile(stack)

Unread postby Epharius » 08 Mar 2018, 15:13

Ah oui Dark coco a raison si tu vérifies SP alors que tu es dans le getkey, c'est normal que tu n'aies pas la même chose.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 7.7%
 
Posts: 1148
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: Asm eZ80 : problème de pile(stack)

Unread postby isquelcrax » 08 Mar 2018, 15:47

oui c'est vrai, sans getkey j'ai la même valeur mais il y a quand même un bon vieux ram cleared. Merci beaucoup à vous deux !
tant pis pour le ram cleared.
Que vive les sciences ad vitam aeternam
User avatar
isquelcraxPremium
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 57.8%
 
Posts: 62
Joined: 01 Mar 2018, 10:24
Location: Nancy
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S-SVT spé maths

Re: Asm eZ80 : problème de pile(stack)

Unread postby Adriweb » 08 Mar 2018, 16:31

CEmu indique dans la console la cause du RAM clear, si possible ; ça devrait te mettre sur une piste.
Tu peux aussi activer l'option pour automatiquement lancer le débuggeur lors d'un NMI.

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.4%
 
Posts: 14670
Images: 1118
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Asm eZ80 : problème de pile(stack)

Unread postby isquelcrax » 08 Mar 2018, 20:33

j'ai enfin compris ce que tu voulais me dire, voilà j'ai ça

[CEmu] NMI reset cause by write to flash at address 0x744e1 from unprivileged code. Hint: Possibly a null pointer dereference.
[CEmu] Reset caused by writing to bit 4 of port 0.
[CEmu] Reset triggered.
[CEmu] Memory reset.
[CEmu] LCD reset.
[CEmu] Keypad reset.
[CEmu] GPT reset.
[CEmu] RTC reset.
[CEmu] Watchdog timer reset.
[CEmu] CPU reset.

J'avoue que je n'ai rien compris (si bien que ce soit ce que tu voulais me dire)

donc NEED HELP
Que vive les sciences ad vitam aeternam
User avatar
isquelcraxPremium
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 57.8%
 
Posts: 62
Joined: 01 Mar 2018, 10:24
Location: Nancy
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S-SVT spé maths

Re: Asm eZ80 : problème de pile(stack)

Unread postby Adriweb » 09 Mar 2018, 06:32

isquelcrax wrote:[CEmu] NMI reset cause by write to flash at address 0x744e1 from unprivileged code. Hint: Possibly a null pointer dereference.
[CEmu] Reset caused by writing to bit 4 of port 0.

Ben donc a un moment, tu as un pointeur vers 0x744e1, ce qui n'est pas une adresse "a toi" (voire a personne ? *), donc tu n'as pas le droit de modifier ce qu'il s'y passe.
J'imagine que ce n'est pas quelque chose que tu as voulu, donc tu as une erreur quelque part dans ton code.
C'est quoi ton code exactement ?
Tu devrais surement l'executer pas-a-pas pour comprendre ce qui ne va pas (d'autant plus simple si c'est de l'assembleur, regarde dans la partie Desassembleur de CEmu et fais des "step")


* [eZ80Bot] 0x744e1 could be _os_GetStringDataPtr+0x52345 or ramStart-0xC8BB1F

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.4%
 
Posts: 14670
Images: 1118
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Asm eZ80 : problème de pile(stack)

Unread postby isquelcrax » 09 Mar 2018, 23:47

dsl pour le retard, j'ai pu voir ce que tu voulais par là : si je te suis c'est bien une erreur dû à mon PC ? Mon code est juste au dessus. Si tu pouvais m'expliquer comment fonctionne le "désassembleur" et le debbugger de CEmu car je crois que je les ai mal compris/utilisé, tu me sauverais la vie !!!
Que vive les sciences ad vitam aeternam
User avatar
isquelcraxPremium
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 57.8%
 
Posts: 62
Joined: 01 Mar 2018, 10:24
Location: Nancy
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S-SVT spé maths


Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 10 guests

-
Search
-
Social TI-Planet
-
Featured topics
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1487 utilisateurs:
>1474 invités
>8 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)