π
<-

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

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

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

Unread postby Hayleia » 27 Feb 2015, 22:18

p'Ti rageur wrote: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.
Ça ne répond pas à la question "c'est quoi tes lettres".
Il y a quoi dans ton adresse mémoire ? Quelque chose du genre .db "A05V" ? Ou tes lettres dans tes adresses mémoires sont codées différemment ?

p'Ti rageur wrote:E
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".
Ben on a bien des idées mais on ne sait pas si elles s'appliquent puisqu'on ne sait pas sur quoi on est censés travailler.

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, 22:53

En fait, ça serait par exemple d'avoir les codes ASCII des caractères "B" , "5" , "8" , et "A"
en ayant au départ ld HL,&B58A

Afficher un nombre hexa, c'est plus simple car il suffit de traiter par demi-octet :
&B5 divisé par 16 (décalage de 4 bits vers la droite) nous donne &0B
&B5 and &0F nous donne &05
&8A /16 nous donne &08
&8A and &0F nous donne &0A
on sait qu'il faut ajouter 128 pour avoir l'ASCII des chiffres "0","1",...
Il faudrait, par contre, connaître où démarrent les codes ASCII des caractères "A" à "F"
Parce que si (comme je le pense) ces caractères-là ne sont pas juste après
Il faudra utiliser une table contenant les ASCII des chiffres suivi des ASCII de A jusqu'à F
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 Hayleia » 28 Feb 2015, 09:00

Ah mais c'est juste ça qu'on veut faire ? Parce que dans ce cas c'est facile.

Effectivement, le plus simple est d'avoir un .db "0123456789ABCDEF". Ensuite, tout ce qu'on a à faire, c'est prendre notre B58A, prendre son modulo par 16, afficher le caractère qui se trouve dans notre .db offseté du modulo trouvé, puis diviser notre B58A par 16, recommencer à prendre son modulo, etc.

Sinon, si pour économiser un .db, une fois le modulo pris, on fait un CP (un seul), qui dit si le modulo est plus grand ou non que 9. S'il est plus petit ou égal, on fait "0"+M (où M est le modulo dont on parlait et où "0"+M est ce dont on parlait dans la page précédente). Et s'il est plus grand, on fait "A"+M-10 (même opération qu'avec "0" mais avec "A").

Bon, maintenant, pourquoi j'ai eu du mal à comprendre ce que tu voulais :P
p'Ti rageur wrote: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.
Ici, tu as mis un "e" à "converti". C'est donc l'adresse mémoire où tu veux stocker qui est convertie en "ASCII", pas le nombre que tu veux stocker.

p'Ti rageur wrote: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).
Là, il aurait fallu prendre un exemple avec un nombre qui soit un peu plus hexadécimal que 57, genre A7. Et du coup, ça ne correspond pas à ce que tu disais puisque l'adresse n'est pas « convertie en "ASCII" ».

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 » 28 Feb 2015, 12:03

Oui j'aurais du préciser que je voulais convertir le nombre, pas la valeur contenue dans l'adresse mémoire. (Oups, je n'avais pas vu la faute de "convertie")

Pourquoi je n'y ai pas pensé... A est égal à 10, il suffit de faire une simple addition. Merci beaucoup à vous deux ! Je pense que déjà, avec ce que j'ai, je pourrais me débrouiller. Au pire si j'ai un problème je reposterai.

Par contre, petite précision, les codes ASCII allant de 128 à 137 sont ceux pour les minuscules. Du coup j'utilise plutôt les valeurs allant de 48 à 57 (30h à 39h). Mais dans la logique ça ne change rien.

Encore merci =)
Last edited by Epharius on 28 Feb 2015, 18:57, edited 1 time in total.
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 » 28 Feb 2015, 16:00

Juste une petite précision. Tu risques d'avoir des "problèmes" lorsque tu vas stocker tes nombres dans l'adresse mémoire si tu le fais comme on t'a dit puisque ça les stockera dans l'ordre inverse (en gros, si tu traites "$1234", tu vas d'abord traiter $1234 modulo 16 c'est à dire 4, puis 3, etc, donc si tu les stockes dans l'ordre de traitement, ils seront à l'envers).

Plusieurs solutions.

Soit, avant de regarder les chiffres, tu regardes le log16 du nombre, ce qui te donne son nombre de chiffres et tu peux donc savoir quelle taille il prendra dans la mémoire et où mettre chaque chiffre.
Soit tu les échange deux à deux une fois stockés pour les remettre dans le bon ordre.
Soit tu t'en fous, tu dis qu'ils sont tous inférieurs à $FFFF, ils prennent tous 4 caractères ($A7 donnerait 00A7) et puis basta :P

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 » 28 Feb 2015, 18:56

T'inquiète pas pour ça, j'ai déjà fait la modification pour qu'il le stocke de la forme $3412 (les deux octets sont inversés, c'est normal puisque je veux l’insérer dans un programme ASM).

Ensuite, je suis certain que l'adresse de mémoire (le nombre, pas la valeur) va de $9327 et ne dépasse pas $EEEE (Si tout se passe bien :p )
Je galère bien mais mon programme avance, j'espère pouvoir le finir un jour mais c'est pas gagné...
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

Previous

Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 3 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.
5115 utilisateurs:
>5053 invités
>56 membres
>6 robots
Record simultané (sur 6 mois):
8077 utilisateurs (le 09/07/2025)
-
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)