将整数转换为其十六进制值以进行打印

发布于 2024-10-06 08:36:31 字数 40 浏览 3 评论 0原文

假设我将一个整数分配给 $a0,我该如何以十六进制形式打印该整数?

Say I take an integer assigned to $a0, how do I go about and print the integer in its Hexadecimal form?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浪菊怪哟 2024-10-13 08:36:31

使用系统调用 34。
MARS 系统调用

如果您使用的模拟器没有该系统调用,或者您只想查看必要的字节,则需要手动执行此操作。最简单的方法是迭代。获取 10 个字节的字符串(8 个十六进制值和前导 0x)。

1) 按位与常量 15 的 $a0 相加。

2) 将结果转换为等效的 ASCII 十六进制值。查找表会干净且高效。

3) 在字符串空间中存储等效的十六进制值。请记住小端顺序问题。

4) 将 $a0 逻辑右移 4。

5) 转到 1。

执行此操作,直到 $a0 为 0,并且您应该在字符串中获得十六进制值,然后可以打印该值。

Use syscall 34.
MARS syscalls

If you are using a simulator which does not have that syscall, or you want to see only the necessary bytes, you will need to do it manually. The easiest approach would be iterative. Get a string of 10 bytes (8 hex values and leading 0x).

1) Bitwise and $a0 with constant 15.

2) Convert result to equivalent hex value in ASCII. A lookup table would be clean and efficient.

3) Store equivalent hex value in space for string. Keep in mind little endian issues.

4) Logical right shift $a0 by 4.

5) Goto 1.

Do that until $a0 is 0 and you should have the hex value in a string, which you can then print.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文