π
<-

[ASM] Stocker un nombre ASCII dans une adresse mémoire

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

[ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby Epharius » 26 Feb 2015, 20:34

Bonjour à tous !

Bon, j'ai assez de mal à m’expliquer... du coup si vous ne comprenez pas quelque chose, dites-le moi =)
Alors voilà, le but en lui même est de stocker un nombre hexadécimal inconnu dans une adresse de mémoire mais déjà convertie en code ASCII. Petit exemple (parce que ça m'étonnerais que vous ayez compris ^^) :

Je veux stocker "57" dans l'adresse, par exemple, $8265. Cependant, je ne veux pas stocker le code ASCII 57 (ce qui me donnerait W avec un _Puts) mais bien le nombre "57" et donc mettre dans l'adresse mémoire $8265 "35" et dans la suivante "37" (qui me donnerait bien "57" avec un _Puts). En outre, je ne peux pas faire un...
Code: Select all
label:
.db "57"

...puisque le nombre que je veux stocker est inconnu.

Maintenant la question, y a-t-il une RomCall qui convertirait un caractère en code ASCII ? Y en a bien une qui fait le contraire (keyToString) mais j'en n'ai pas trouvé une qui fait ce que je veux. S'il n'en existe pas, comment feriez-vous pour convertir ce nombre ? J'ai bien eu quelques petites idées, malheureusement, puisque c'est un nombre inconnu, à chaque fois il y avait quelque chose qui n'allait pas. Et puis, je voudrais être sûr qu'il n'existe aucune Romcall qui ferait le travail à ma place avant de me lancer dans ça ^^

Merci d'avance =)

PS : Petite image pour illustrer le tout :
Capturer.PNG
You do not have the required permissions to view the files attached to this post.
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: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby grosged » 26 Feb 2015, 21:41

En se basant sur cette table, ASCII
http://tibasicdev.wikidot.com/ascii-codes

les caractères ASCII de 0 à 9 , valent respectivement de 128 à 137 (&80 à &89 en hexadécimal)

Prenons un exemple:

le registre A contenant 12 (&0C), ainsi le registre BC devrait contenir &8182

C'est ça la manip' que tu cherches à faire ?
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby Epharius » 26 Feb 2015, 23:05

C'est cela ! En fait, j'ai un nombre allant de $9327 (pas par hasard) à $AFFF, et ce nombre je veux le transformer en token. Mais comme je ne trouve pas de RomCall pour ça, je pense que je vais créer un routine pour.

Cependant, je ne vois pas trop comment faire... j'aimerais éviter de faire 10 "CP [...]" pour éviter que la taille du programme n'explose et en même temps, je ne vois pas comment je pourrais faire autrement.
Ah et aussi, comment je pourrais faire pour récupérer juste le 2 dans 12 ? En masquant des bits ?
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby Hayleia » 27 Feb 2015, 08:34

Je ne sais pas si j'ai tout compris mais je vais expliquer comment faire ce que j'ai compris que tu veux faire.

Pour récupérer le 3 dans 123, tu fais 123 modulo 10. Pour récupérer le 2, tu fais 123 divisé par 10 puis modulo 10. Etc, pour obtenir chaque chiffre, tu divises par 10 un certain nombre de fois puis tu fais modulo 10 (sachant que tu devrais avoir une romcall DivHLby10 ou quelque chose du genre si je ne m'abuse).

Pour stocker le chiffre A (0≤A≤9) en "ASCII", normalement c'est assez simple.
Débrouille toi pour trouver quelle est la "valeur ASCII" de 0 (par exemple, fais un vieux programme avec un .db "0" et affiche la valeur numérique contenue à cette adresse), puis ajoute simplement la valeur trouvée à ton A, et le résultat obtenu devrait être ce que tu cherches.
Dit autrement, ce que tu cherches, c'est "0"+A.

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby grosged » 27 Feb 2015, 11:19

Oui, c'est ça!

On peut faire une routine en ASM genre:

HL contient la valeur 16bits
Tant que HL n'est pas à 0
on divise HL par 10 , le reste de cette division nous donne les unités, (+128 nous donnera l'ascii correspondant)
puis encore HL/10, le reste nous donne maintenant les dizaines...etc
User avatar
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 30.2%
 
Posts: 770
Images: 75
Joined: 14 Sep 2011, 12:29
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby Epharius » 27 Feb 2015, 18:02

Pas bête, en divisant par 10 on obtient bien à chaque fois les unités puis les dizaines etc... merci !

Petite question plus dure... j'aurais envie de faire pareil mais avec des lettres. Suis-je obligé de faire 26 CP ? Puisqu'il est impossible de faire des opération sur des lettres, je ne pense pas que ce soit possible. Ça m'embête, mon programme est déjà assez gros...
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: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby Hayleia » 27 Feb 2015, 18:11

T'as pas juste à faire un .db "ABCDEFGHIJKLMNOPQRSTUVWXYZ" pour les lettres ?

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby Epharius » 27 Feb 2015, 18:51

Ouais mais les lettres sont inconnues aussi...
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: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby Hayleia » 27 Feb 2015, 20:33

Ouais, mais t'es pas très clair là.

Autant un nombre, on le coupe en chiffres et on lit ce qu'il y a à une adresse offestée du chiffre en question, autant une lettre... ben c'est quoi une lettre en assembleur ? Tu la tiens d'où ta lettre ?

Parce que après avoir fait mon .db, je peux facilement transformer n'importe quel nombre de 0 à 25 en une lettre de A à Z, mais il nous faudrait plus de détails sur tes lettres à l'origine pour pouvoir les transformer en nombres de 0 à 25.

Il se peut même qu'avec ton manque de clarté, je n'ai pas compris ce que tu veux faire avec tes lettres...

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(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
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: [ASM] Stocker un nombre ASCII dans une adresse mémoire

Unread postby Epharius » 27 Feb 2015, 21:02

C'est vrai, je n'étais pas très clair... et je ne pense pas que ce soit possible. Mais je voulait juste voir si quelqu'un avait une idée. Mais du coup je vais faire des CP, ce n'est pas très grave ;)

En fait, la lettre vient d'une adresse mémoire (EX : $B58A). J'ai dit à tort 26, puisque ces lettres ne dépassent pas F. Ce que je veux, concrètement, c'est transformer un nombre, représentant une adresse mémoire, en tokens pour ensuite le mettre dans une autre adresse mémoire.
Et ma question était "serait-ce possible d'éviter les CP en les contournant par une opération". Mais comme je l'ai dit précédemment " je voulait juste voir si quelqu'un avait une idée".

Merci d'essayer de m'aider, j'en suis conscient, la communication et la clarté n'ont jamais été mon fort =)
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: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Next

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 87 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"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.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
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.
2321 utilisateurs:
>2266 invités
>49 membres
>6 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)