在MIPS中执行此程序时,我总是会遇到问号,有什么原因吗?

在MIPS中执行此程序时,我总是会遇到问号,有什么原因吗?,mips,mips32,sql-server-mars,Mips,Mips32,Sql Server Mars,在这个程序中,我试图读入一个整数值,并检查它是偶数还是奇数。如果它是偶数,我就把它除以2,如果它是奇数,我就把它乘以2,然后再加上一。以下是我到目前为止的情况: .data value1: .word 4 value2: .word 2 value3: .word 3 msg1: .asciiz " divide by 2 = " msg2: .asciiz " * 3 + 1 = " prompt: .asciiz "Please enter a number:" .text main:

在这个程序中,我试图读入一个整数值,并检查它是偶数还是奇数。如果它是偶数,我就把它除以2,如果它是奇数,我就把它乘以2,然后再加上一。以下是我到目前为止的情况:

.data
value1: .word 4
value2: .word 2
value3: .word 3
msg1: .asciiz " divide by 2 = "
msg2: .asciiz " * 3 + 1 = "
prompt: .asciiz "Please enter a number:"

.text
main:
    li $v0, 5
    syscall
    move $t0, $v0

    li $v0, 1
    move $a0, $t0
    syscall

    andi $t0, $a0, 1
    beq $t0, $zero, EVEN
    move $t1, $a0

    la $a0, msg2
    li $v0, 4
    syscall
    move $a0, $t1
    j EXIT

EVEN:
    la $a0, msg1
    li $v0, 4
    syscall

    move $a0, $t1
    lw $t2, value2
    div $a0, $a0, $t2
    li $v0, 4
    syscall

EXIT:
    li $v0, 10
    syscall


现在,当我运行程序时,一切正常,我可以正确地读取输入和输出相应的消息。它只是在进行计算时,而不是输出结果,它会输出两个小框,当复制到文本文件时会显示为问号。非常感谢您的帮助。

这段代码有很多奇怪的地方,其中大部分都源于您决定使用
读取字符串
系统调用读取整数,而不考虑其影响。为什么不直接使用
readinteger
系统调用呢?@Michael,这是我在做早期项目时使用的方法,该项目要求我接受用户输入,然后输出用户输入的内容。它在那里对我有效,并且假设它在这种情况下也能工作。好吧,我看不出为什么你会希望在这个程序中输入字符串。只需读取整数即可。@Michael,我已将代码更新为输入整数而不是字符串,并且在运行程序时不再收到问号。在我完成计算后,我仍然不知道如何打印出整数。只需使用。