Assembly 获取用户输入并存储它的简单MIPS汇编程序

Assembly 获取用户输入并存储它的简单MIPS汇编程序,assembly,Assembly,我试图编写一个函数,要求用户输入两个数字,一次一个。第一个很好,但是第二个有问题(我复制了行,“ask”是一个字符串,要求用户添加输入)。怎么了 main: addi $sp, $29, -8 sw $31, 0($29) # save register 31 (ra) (since there is a nested / recursive procedure) sw $0, 4($29) # Space for parameter n1 on stac

我试图编写一个函数,要求用户输入两个数字,一次一个。第一个很好,但是第二个有问题(我复制了行,“ask”是一个字符串,要求用户添加输入)。怎么了

main:
    addi    $sp, $29, -8
    sw  $31, 0($29) # save register 31 (ra)  (since there is a nested / recursive procedure)

    sw  $0, 4($29)  # Space for parameter n1 on stack
    li  $v0, 4      # Ask for number
    la  $a0, ask    
    syscall
    li  $v0, 5      # read int
    syscall         # $v0 holds the integer - n1
    sw  $v0, 4($29) # save n1 on stack
    move    $a0, $v0    # prepare argument for func




    sw  $0, 4($29)  # Space for parameter n2 on stack
    li  $v1, 4      # Ask for number
    la  $a1, ask    
    syscall
    li  $v1, 5      # read int
    syscall         # $v1 holds the integer - n2
    sw  $v1, 4($29) # save n2 on stack
    move    $a1, $v1    # prepare argument for func
谢谢

这里:

sw  $0, 4($29)  # Space for parameter n2 on stack
覆盖堆栈中的n1

您只为堆栈中的一个参数和返回地址保留了空间

此外,系统调用对某些数据使用某些寄存器。你不能决定:

li  $v1, 4      # Ask for number
la  $a1, ask    
syscall