MIPS计算器,输出所有答案

MIPS计算器,输出所有答案,mips,Mips,我的MIPS计算器有一个问题,当我输入两个整数并选择一个运算符时,例如+它会输出所有运算符,而不仅仅是我选择的运算符。我使用十六进制表作为它选择的数字,以获得用户为操作员输入的内容 谢谢你的帮助 .data number1: .asciiz number2: .asciiz calculator: .asciiz "E to exit, + to add, - to subtract, * to multiply, / to divide" op: .asciiz " " .t

我的MIPS计算器有一个问题,当我输入两个整数并选择一个运算符时,例如+它会输出所有运算符,而不仅仅是我选择的运算符。我使用十六进制表作为它选择的数字,以获得用户为操作员输入的内容

谢谢你的帮助

.data
number1: .asciiz
number2: .asciiz
calculator: .asciiz         "E to exit, + to add, - to subtract, * to multiply, / to divide"
op: .asciiz " " 
.text
li $v0, 4           
la $a0, number1         
syscall             
li $v0, 5           
syscall             
move $t0, $v0           

li $v0, 4           
la $a1, number2     
syscall             
li $v0, 5           
syscall             
move $t1, $v0           

li $v0, 8           
la $a1, op          
li $a1, 2           
syscall             
lb $t2, op          

beq $t2, 43, addd       
beq $t2, 45, subtract       
beq $t2, 42, multiply       
beq $t2, 47, divide         
beq $t2, 101, exit      

addd: add $a0, $t0, $t1     
li $v0, 1           
syscall             

subtract: sub $a0, $t0, $t1     
li $v0, 1           
syscall             

multiply: mul $a0, $t0, $t1     
li $v0, 1           
syscall             

divide: div $a0, $t0, $t1   
li $v0, 1           
syscall             

exit: li $v0, 10        
syscall 

当然是这样;打印结果后,没有分支可以更改代码流。此时,您需要显式跳转到您想去的任何地方。如果ascii表条目相等,Iv'e会将分支添加到操作的分支。很好,但是在执行了预期的代码之后,您不会跳转到其他任何地方。CPU将继续执行接下来的所有操作,直到您明确告诉它不要这样做。当我在每个操作之后跳转到退出操作时。它将跳过所有其他操作。假设我想使用-运算,它将使用+运算。我不理解你最后的评论。在您向我们展示的代码中,您不会“在每次操作后跳转到退出操作”。