Search code examples
mipspcspim

MIPS: how can I apply the integer which users input into arithmetic function?


This is my first time coding PCSPIM. I find that there is a little trouble with my code.

.data   

user_input: .asciiz "\n\nEnter an Integer for the value of n: " 
result_display: .asciiz "\nThe sum from 0 to n is "             
Greeting:   .asciiz "\n\nThank you!"    

.text
main:

#user input
li $v0, 4
la $a0, user_input
syscall

#allow user input
li $v0, 5
syscall

#store the input value into t8
move $t8, $v0

#calculation
addi $s0, $zero, $t8 

I wish to use the integer value ($t8) that users input into the #calculation section, but it ends up with error.

addi $t0, $zero, 0

loop1:

add $t0, $t0, $s0
addi $s0, $s0, -1
bne $s0, $zero, loop1
nop
nop

# Display the result
li $v0, 4
la $a0, result_display
syscall

# Print out the result
li $v0, 1
move $a0, $t0
syscall

# Greets the user
li $v0, 4
la $a0, Greeting
syscall

# Exit the program
li $v0, 10
syscall 

Sorry for my broken English.


Solution

  • The error is in the way you are using the "addi" instruction. The instruction requires an immediate (number) value to be passed as the third operand and not an architectural register. If you update the "addi" instruction to "addu" the code should work.