You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
# 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
|
|
|