我想知道为什么我得到一个十进制数作为答案。例如,如果我输入2和2,则答案应为4,但输出为0.04
.data
msg1: .asciiz "Please enter a number i "
msg2:.asciiz "Please enter a number j "
.text
.globl main
main:
la $a0,msg1 #print message
li $v0,4
syscall
li $v0,5
syscall
move $a1,$v0 #i
la $a0,msg2 #print message
li $v0,5
syscall
move $a2,$v0 #j
jal cal
addi $a0,$a0,0
li $v0,1 #print integer in reg a0
syscall
li $v0,10
syscall
cal:
mult $a1,$a2
mfhi $a0
syscall
jr $ra
答案 0 :(得分:0)
在倒数第二行上有一个Animal
,没有指定操作代码 - 它基本上可以做任何事情,具体取决于那时在$ v0中发生的事情。测试输入为2和2时,$ v0中有2个,这是“打印浮动”操作。所以,你的程序打印了一个任意的,毫无意义的浮点值(恰好是syscall
),然后是0.0
的正确结果。