Pretty new to assembly language and I need help with this problem. I'm trying to traverse through a string and see if each character is either a number or a operand (+, -, *, /). Everytime I run the program, it doesn't work properly. I'm pretty sure the error is in the 'lb' line after my loop label but I can't figure out what is wrong. Any help would be greatly appreciated. Thank you.
.data string1: .asciiz "Please enter a string. Make sure the string only contains RPN characters: " string2: .asciiz "Invalid input: " string3: .asciiz "Input is valid.\n" string4: .asciiz "The first operator is " string5: .asciiz "No operator found.\n" string6: .asciiz "Please enter a single interger: \n" string7: .asciiz "Please enter a single operator (+,-,*,/): \n" string8: .asciiz "The result is " input: .space 50 output: .space 3 .text .globl Olu Olu: la $a0, string1 li $v0, 4 syscall la $a0, input li $v0, 8 syscall move $s0, $a0 #address of input loop: lb $t0, ($s0) # gets a character beq $t0, $zero, next # runs loop till 0 is received blt $t0, 48, charCheck # checks if char is less than 0 bgt $t0, 57, notValid # checks if char is greater than 9 add $s0, $s0, 1 # moves along string j loop notValid: la $a0, string2 li $v0, 4 syscall move $a0, $t0 li $v0, 11 syscall j next charCheck: bne $t0, 42, notValid #checks if char is equal to op bne $t0, 43, notValid bne $t0, 45, notValid bne $t0, 47, notValid add $s0, $s0, 1 j loop next: li $v0, 10 syscall
Also, if anyone knows of a decent MIPS simulator/debugger, please let me know. Thanks again!