SPIM is a MIPS processor simulator, designed to run assembly language code for RISC architecture.
"Hello World" in SPIM
This is a simple program to print Hello World.
A comment starts with a # till the end of the line.
.data # start putting stuff in the data segment
greet: .asciiz "Hello world\n" # declare greet to be the string
.text #start putting stuff in the text segment
main: # main is a label here. Names a function
li $v0, 4 # system call code for print_str(sect1.5)
la $a0, greet # address of string to print
syscall # print the string
jr $ra # return from main
li is load immediate into an integer register
la is load computed address into an integer register
jr is standard return from function call - $ra contains return address
# this program adds the numbers 1 to 10
.text
main:
move $t0, $zero # initialize sum (t0) to 0
move $t1, $zero # initialize counter (t1) to 0
loop:
addi $t1, $t1, 1 # increment counter by 1
add $t0, $t0, $t1 # add counter to sum
blt $t1, 10, loop # if counter < 10, goto loop
# this is outside the loop
# code to print the sum
li $v0, 1 # system call for print_int
move $a0, $t0 # the sum to print
syscall # print the sum
SPIM Quick Reference