我使用以下代码获取2个用户输入。但是,当输入整数时,用户输入
会给出一个意外的十进制值.text
main:
la $a0, input_1
li $v0, 4
syscall
li $v0, 5
syscall
move $t1, $v0
syscall
la $a0, input_2
li $v0, 4
syscall
li $v0, 5
syscall
move $t2, $v0
syscall
li $v0, 10
syscall
.data
input_1 : .asciiz "Enter integer 1\n\n"
input_2 : .asciiz "Enter integer 2\n\n"
控制台上的输出为
*输入整数1
1
268501062输入整数2
2
0.00000000 *
这里1和2是用户输入
答案 0 :(得分:2)
在寄存器之间移动值后无需调用syscall,只需在两个移动指令之后立即删除两个syscall。这是编辑后的代码。
.text
main:
la $a0, input_1
li $v0, 4
syscall
li $v0, 5
syscall
move $t1, $v0
la $a0, input_2
li $v0, 4
syscall
li $v0, 5
syscall
move $t2, $v0
li $v0, 10
syscall
.data
input_1 : .asciiz "Enter integer 1\n\n"
input_2 : .asciiz "Enter integer 2\n\n"