【问题标题】:Converting MIPS syscalls to getchar(); or scanf(); in C将 MIPS 系统调用转换为 getchar();或scanf();在 C 中
【发布时间】:2017-03-10 10:57:35
【问题描述】:

我正在将一些 MIPS 代码转换为 C,我对以下语法是否等效感到困惑。

li $v0, 11 //print character
syscall


li $v0, 12 //Read character
syscall


putchar(); //print a character 

getchar(); //Read a character

scanf(); 在 MIPS 中的等效语法是什么?

编辑

我正在使用 MARS 模拟器。

【问题讨论】:

  • 取决于您所说的等价物。 SPIM 使用带有"%c" 格式字符串的vfprintf 实现系统调用11,使用read 实现系统调用12。但是使用putchargetchar 可能会更容易。

标签: c assembly mips


【解决方案1】:

不,这些当然不是“等价的”,因为它们也有你没有触及的参数和返回值。

此外,MIPS 上必须有一些您未指定的底层 ROM 或操作系统;处理器架构本身没有“系统调用”,这些是由“(操作系统)”来实现的。那么是哪一个呢?

【讨论】:

  • 我正在使用 MARS 模拟器
【解决方案2】:

getchar() 和 putchar() 会比 scanf() 和 printf() 更等价,因为后者接受其他参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多