Assembly 获取用户输入并存储它的简单MIPS汇编程序
我试图编写一个函数,要求用户输入两个数字,一次一个。第一个很好,但是第二个有问题(我复制了行,“ask”是一个字符串,要求用户添加输入)。怎么了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
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