assemblée des nombres ascii
Je travaille avec un programme à l'assemblée à l'aide de l'at&t de la syntaxe d'un processeur intel.
Je suis perdu, comment puis-je convertir un entier dans un registre à un numéro d'ascii?
Permet de dire que je veux convertir le nombre 10 et je vais mettre le numéro 10 dans le registre %eax.
Si je viens d'ajouter le numéro 48, %eax, l'ascii signe sera un :
Je veux ajouter 48, à 1, puis de 48 à 0 dans le nombre 10.
Comment puis-je le faire?
Exemple de code:
mov $10, %eax
#Cut the number in some way.
add $48, %eax
OriginalL'auteur Bewn | 2012-02-02
Vous devez vous connecter pour publier un commentaire.
Pour convertir nombre en ASCII, vous devez diviser le nombre par 10 et utiliser le reste comme résultat. Puis ajouter ASCII de '0' et de stocker le chiffre. Ensuite, répétez la même chose avec le quotient jusqu'à ce qu'il atteigne zéro.
Cependant, cela donne les chiffres dans l'ordre inverse, en commençant par le chiffre le moins significatif. Vous pouvez inverser l'ordre par exemple à l'aide de la pile. Pousser chaque chiffre dans la pile, puis de la pop et les stocker dans une mémoire tampon de chaîne.
Quelque chose comme ça (pas testé):
OriginalL'auteur PauliL
Généralement, vous pouvez le faire de cette façon:
Mais les chiffres seront de la dernière à la première. Convertir cette assemblée.
C mise en œuvre de cette pseudo-code : stackoverflow.com/a/9113669/1155000
OriginalL'auteur dbrank0