
.text
.globl main
main:
# Save registers.
subu $sp, $sp, 4 # Make room on the stack.
sw $ra, 0($sp) # Save the return address.
# Request a string.
# Issume a prompt and read a string.
li $v0, 4 # Print prompt string.
la $a0, pr1
syscall
li $v0, 8 # Read string.
la $a0, buf # Buffer
li $a1, 200 # Length of buffer
syscall
# Print the messages and the string
li $v0, 4
la $a0, pr2
syscall
li $v0, 4
la $a0, buf
syscall
li $v0, 4
la $a0, msg
syscall
# Return
lw $ra, 0($sp) # Restore the return address.
addu $sp, $sp, 4 # Pop the stack
jr $ra
.data
# String constants for messages.
pr1: .asciiz "Please enter a string: "
pr2: .asciiz "You entered: "
msg: .asciiz "Congratulations, SPIMmer!\n"
# Space for the input string.
buf: .space 200