π
<-
Chat plein-écran
[^]

[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

Message non lude Hayleia » 27 Fév 2015, 22:18

p'Ti rageur a écrit: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 a écrit: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
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

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

Message non lude grosged » 27 Fév 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
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

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

Message non lude Hayleia » 28 Fév 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 a écrit: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 a écrit: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
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

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

Message non lude Epharius » 28 Fév 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 =)
Dernière édition par Epharius le 28 Fév 2015, 18:57, édité 1 fois.
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
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7%
 
Messages: 1107
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

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

Message non lude Hayleia » 28 Fév 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
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

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

Message non lude Epharius » 28 Fév 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
Avatar de l’utilisateur
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 7%
 
Messages: 1107
Images: 4
Inscription: 08 Déc 2014, 17:38
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Ensimag
GitHub: MathisLav

Précédente

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1220 utilisateurs:
>1210 invités
>5 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)