35 lines
1.0 KiB
Plaintext
35 lines
1.0 KiB
Plaintext
# A demonstration of some simple MIPS instructions
|
|
# used to test QtSPIM
|
|
|
|
# Declare main as a global function
|
|
.globl main
|
|
|
|
# All program code is placed after the
|
|
# .text assembler directive
|
|
.text
|
|
|
|
# The label 'main' represents the starting point
|
|
main:
|
|
li $t2, 25 # Load immediate value (25)
|
|
lw $t3, value # Load the word stored in value (see bottom)
|
|
add $t4, $t2, $t3 # Add
|
|
sub $t5, $t2, $t3 # Subtract
|
|
sw $t5, Z #Store the answer in Z (declared at the bottom)
|
|
|
|
# Exit the program by means of a syscall.
|
|
# There are many syscalls - pick the desired one
|
|
# by placing its code in $v0. The code for exit is "10"
|
|
li $v0, 10 # Sets $v0 to "10" to select exit syscall
|
|
syscall # Exit
|
|
|
|
# All memory structures are placed after the
|
|
# .data assembler directive
|
|
.data
|
|
|
|
# The .word assembler directive reserves space
|
|
# in memory for a single 4-byte word (or multiple 4-byte words)
|
|
# and assigns that memory location an initial value
|
|
# (or a comma separated list of initial values)
|
|
value: .word 12
|
|
Z: .word 0
|