Dites que je prends un entier assigné à $ a0, comment faire pour imprimer l'entier dans sa forme hexadécimale?Convertir un nombre entier en sa valeur hexadécimale pour imprimer
Répondre
utilisation syscall 34. MARS syscalls
Si vous utilisez un simulateur qui n'a pas que syscall, ou si vous voulez voir uniquement les octets nécessaires, vous devrez le faire manuellement. L'approche la plus simple serait itérative. Obtenez une chaîne de 10 octets (8 valeurs hexadécimales et 0x principal).
1) et Bitwise $ a0 avec constante 15.
2) Convertir résultat à valeur hexadécimale équivalent en ASCII. Une table de recherche serait propre et efficace.
3) Enregistrer la valeur hexadécimale équivalente dans l'espace pour la chaîne. Gardez à l'esprit les petits problèmes endian.
4) décalage vers la droite logique a0 $ par 4.
5) Aller à 1.
Faites cela jusqu'à a0 $ est 0 et vous devriez avoir la valeur hexadécimale dans une chaîne, que vous pouvez ensuite imprimer .