【问题标题】:reading and printing an integer in Qtspim在 Qtspim 中读取和打印整数
【发布时间】:2020-04-30 17:37:08
【问题描述】:

在我解释发生了什么之前,我正在使用 Qtspim。程序很简单:它所做的只是(从用户)读取一个整数并输出输入的数字。这是代码:

###################################################
# text segment                  #
###################################################
 .text
 .globl __start

__start:

    li $v0,4
    la $a0,message
    syscall

    li $v0, 5      #read_int#
    syscall
    move $a0,$v0

    li $v0, 1      #print_int#
    syscall

    li $v0,10
    syscall
###################################################
# data segment                  #
###################################################
.data
message: .asciiz "please enter in a single number:"
###################################################
#                    #
# End of File                   #
#                    #

这是输出:

please enter in a single number:0

注意:当你输入输入时,它不会打印你输入的内容。所以0是程序的输出

【问题讨论】:

  • 注意:我知道有数百个关于如何读取/打印整数的教程,但我相信我的程序是正确的。我认为错误可以在 mips 设置的某个地方找到。我有一个朋友执行它,它对他们有用
  • 您是否在 QtSPIM 的调试器中单步执行了您的代码?我也没有看到问题,courses.missouristate.edu/KenVollmar/MARS/Help/SyscallHelp.html 显示这些是那些 MARS/SPIM 系统调用的正确数字和寄存器。所以我想知道您是否可能在将文件重新加载到 SPIM 或类似的东西之前忘记保存文件......在调试器中单步执行应该可以排除这种情况。特别是如果它的复制/粘贴对尝试过它的朋友有用。
  • @PeterCordes 希望这就是问题所在:// 我总是保存我的文件(作为 .s)并且总是重新初始化和加载文件。还可以使用 F10(单步)并且不会弹出错误:(
  • 我还下载了 '19 版本的所有版本(新的或旧的),重新初始化并加载了文件,每个版本都输出这个......
  • 检查您的 QtSPim 选项:模拟器->设置->MIPS->内存映射 I/O。如果选中,请取消选中它,如果未选中已经告诉我们。

标签: assembly mips qtspim


【解决方案1】:

是的,原来我在输入后没有按 Enter .....yeeahhhh........

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 2020-05-31
    相关资源
    最近更新 更多