我必须在组装时为班级编写两个程序,我只是想知道你们是否可以帮助我理解对我的要求/有关该问题的一般提示。
第一个问题为:
编写您自己的例程,以将整数转换为十六进制的ascii字符串,并将结果放入缓冲区中的八个字符的序列中。调用例程时,$ a0将包含要格式化的数字, $ a1将包含指向内存中要放置ASCII表示的位置的指针,因为十六进制数字对应于四个一组二进制数字,您可以从左到右生成数字。不用担心负值。 通过将ASCII零字符(0x30或'0)的值添加到整数,可以将各个十进制数字转换为相应的ASCII字符。
我加粗了我困惑的部分。谁能向我解释一个点如何精确工作以及在这种情况下我将如何利用它?第二个粗体部分是不是真的告诉我如何将小数转换为十六进制?意味着要转换,我的代码应类似于:
add $a1,$a0, '0
编写一个通用例程,以整数形式将整数格式化为字符串缓冲区中的2到36之间的任何数字。$ a0应该包含要格式化的数字,$ a1指向字符串缓冲区的指针,$ a2介于2到36之间的基本用于此转换,$ a3用于包括终端nul的缓冲区的大小。 您将需要从右到左生成数字,使用除以基数的余数给出下一个数字,而商保留数字的余数。当商返回零时,它将向循环结束发出信号。空间将填充缓冲区中的所有剩余位置。负数应通过在最高有效数字的左侧放置减号来处理。 要处理负数,您需要获取余数的绝对值,同时保留原始数字的副本以保存符号。如果该数字不适合所提供的缓冲区,请在缓冲区中填充#个字符。
老实说,我对整个问题以及对我的要求感到困惑。同样,这里的粗体部分强调了我特别喜欢的部分。
在此先感谢您提供的任何帮助!如果需要的信息,我正在使用MIPSym btw。