# 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 sll $t1, $s3, 2 # sll BEQ $t1, $t2, loop add $s0,$a1, $t7 loop: 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