我理解MIPS的基本功能,但是我不明白如何声明变量,特别是不明白如何在MIPS中编写等效的scanf()/ printf()(当在线时找不到任何关于它们的信息)我搜索)。这是我现在要翻译的代码:
#include <stdio>
int main(int argc, char* argv[])
{
unsigned long int n;
scanf("%d", &n);
printf("%lu",fact(n));
}
任何指导?
答案 0 :(得分:0)
您可能不想要在程序集中重新实现scanf。使用C语言或其他高级语言实现效率更高。更好的方法是获取开源实现,比如glibc。
以下是glibc:http://fossies.org/dox/glibc-2.19/scanf_8c_source.html
中scanf()的源代码以下是类似GPL的实现:http://mirror.fsf.org/pmon2000/3.x/src/lib/libc/scanf.c
答案 1 :(得分:0)
您可能正在寻找MIPS模拟器系统调用(系统调用)。以下是SPIM syscalls和MARS syscalls。
系统调用7被读取为double,大致相当于scanf("%d", &n)
系统调用1是打印整数,相当于printf("%u",n)
li $v0, 1 # service 1 is print integer
move $a0, $t0 # move register to be printed into argument register $a0
syscall