【发布时间】:2010-12-06 05:10:07
【问题描述】:
假设我取一个分配给 $a0 的整数,我该如何处理并以十六进制形式打印该整数?
【问题讨论】:
-
Why is my MIPS base converter printing out the values from a previous loop after the current values? 有 SPIM 的工作代码,如果你不能使用 MARS 的系统调用 34
假设我取一个分配给 $a0 的整数,我该如何处理并以十六进制形式打印该整数?
【问题讨论】:
使用系统调用 34。 MARS syscalls
如果您使用的模拟器没有该系统调用,或者您只想查看必要的字节,则需要手动进行。最简单的方法是迭代。获取一个 10 字节的字符串(8 个十六进制值和前导 0x)。
1) 位和 $a0,常数为 15。
2) 将结果转换为等效的 ASCII 十六进制值。查找表会干净高效。
3) 将等效的十六进制值存储在字符串的空间中。请记住小端序问题。
4) $a0 逻辑右移 4 位。
5) 转到 1。
这样做直到 $a0 为 0 并且您应该在字符串中包含十六进制值,然后您可以打印它。
【讨论】: