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 )