我试图从用户那里得到一个输入并将其与(+, - ,*,/,=)进行比较,然后进行相应的算术运算。但是Mips无法弄清楚每个符号。它永远继续循环。我给出了一部分代码......任何想法有什么问题? (寄存器都是正确的)
.data
op1: .asciiz "+"
op2: .asciiz "-"
op3: .asciiz "*"
op4: .asciiz "/"
op5: .asciiz "%"
op6: .asciiz "="
.text
loop2 :
li $v0, 4
la $a0, operator #Εμφάνισε μήνυμα "Τελεστής:"
syscall
addi $v0, $zero, 5 #Διάβασε τον τελεστή
syscall
move $s2 , $v0 #Βάλε τον τελεστή στον καταχωρητή $s2
#---------------------------------
sw $t1 ,op1 #Αν ο τελεστής είναι '+'
beq $s2, $t1, ADDITION
ADDITION:
li $v0, 4 #Εμφάνισε μήνυμα "Αριθμός:"
la $a0, number
syscall
addi $v0, $zero, 5 #Διάβασε τον αριθμό
syscall
move $s3 , $v0 #βάλε τον αριθμό στον καταχωρητή $s3
add $s4 , $s1 , $s3 # Πράξη πρόσθεσης των αριθμών.Το αποτέλεσμα αποθηκεύεται στον $s4
j loop2 #Εφόσον δεν ήταν "=" ο τελεστής, ζήτα τον επόμενο τελεστή