2

标题几乎概括了这一点。我正在为一个学校项目使用 32 位 MIPS 汇编语言(使用 MARS 仿真器)编写一个程序,并且我的 int 值 > 2,147,483,647 的阅读运气为零。

我花了相当多的时间在互联网上和我的书中寻找,但无济于事。这不是任务的核心(如果你碰巧知道这是不可能的,你可能已经意识到了),但好奇心正在杀死这只猫。现在我已经撞到了这堵砖墙,我必须确定。

笔记:

  1. 我专门寻找一种方法来获取无符号整数,而不是采用浮点数或双精度数。
  2. 使用系统调用获取 int 的标准代码:

    li $v0, 5
    syscall
    move $t0, $v0
    
  3. 在提示输入整数时传递 2 500 000 000 时发生的错误:

    Error in C:\DEV\....... line 57: Runtime exception at 
    0x004000034: invalid integer input (syscall 5)
    

帮帮我欧比旺,你是我唯一的希望!

4

1 回答 1

0

您需要使用不同的系统调用——MARS 抛出异常,而不是 MIPS CPU“内部”的任何东西。例如,尝试系统调用 8 或 12(读取字符串和读取字符)。请注意,因此,您必须自己实现更多的解析才能使这些工作。

或者,您可以尝试读取双精度(系统调用 7)并将其转换为整数......

在线 MARS 系统调用的完整列表位于:

http://courses.missouristate.edu/KenVollmar/MARS/Help/SyscallHelp.html

于 2011-10-07T04:47:26.380 回答