ASM - hexa à ASCII

ASM - hexa à ASCII - ASM - Programmation

Marsh Posté le 27-01-2008 à 02:48:06    

Bonjour tout le monde,  
 
j'aimerai savoir comment faire pour transformer un chiffre hexa en code ascii.
 
Les chiffres hexa seront entré au clavier , transofrmé en ascii et afficher en ascii.
 
J'y ai beaucoup reflechi, j'ai reussi a le faire de l'ascii en hexa mais dans l'autre sens pas moyen...
 
Aidez moi svp.
 
je programme en .386
 
MERCI D'AVANCE A TOUS !!

Reply

Marsh Posté le 27-01-2008 à 02:48:06   

Reply

Marsh Posté le 27-01-2008 à 22:54:47    

Normalement ce que tu liras au clavier ce sera les codes ASCII qui représentent les chiffres donc tu pourras les afficher directement. Sinon pour convertir un chiffre en ASCII tu peux faire OR 30h et dans le sens inverse AND 0Fh.


---------------
dap.developpez.com
Reply

Marsh Posté le 19-03-2008 à 12:33:53    

Je dois faire un programme similaire, je lis au clavier une chaine de caractere dans laquelle se trouve un nombre coder en hexa, je le recupere et renvoie l'entier correspondant, ce n'est pas un probleme
Ensuite ( sans tricher et renvoyer ce que j'ai rentrer directement ) je dois renvoyer ce nombre en une chaine de caractere correspondant au code en hexa
j'arrive sans probleme a revenir au code ascii : il suffit de recupere le reste de la division euclidienne par 16 de ton nombre et tu recupere les dernier caractere de ton code ascii ( and $15,%ebx ou ebx contient ton nombre et ensuite tu divise par 16 ton nombre sotcker dans un autre registre et tu recommence : shr $4,%eax il faut juste ajoute 48 ou 55 il me semble pour avoir soit un chiffre ou une lettre )
Ensuite je dois sauvegarder le code ascii obtenu et continuer jusqu'a ce que mon nombre soit egal a 0
pour cela j'ai reserver dans le .bss de la memoire, j'ai l'adresse, je sais egalement a l'avance combien de caractere j'ai a y entrer donc je m'arrange pour que le dernier caractere que je vais mettre dans cette zone mémoire ( qui correspond au 1er caractere a afficher) soit a cette adresse et je met les autres dans les adresses suivantes.
seul probleme : quand j'appelle printf, il ne m'affiche que le caractere qui se trouve au debut de la zone mémoire et pas tous les caracteres : a mon avis il ne sait pas que c'est une chaine de caractere et je vois pas comment m'en sortir ^^
( je programme en asm gnu )

Reply

Marsh Posté le 19-03-2008 à 14:05:36    

Montre ton code ?


---------------
dap.developpez.com
Reply

Marsh Posté le 21-03-2008 à 20:05:28    

eu c'est bon j'avais oublie le \0 a la fin de ma chaine ^^ forcement ca marchait pas trop

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed