# # "starter" program -- might be useful in testing code fragments in (x)spim # .text .globl main main: # # opening linkage (save return address) # addi $sp, $sp, -4 sw $ra, 0($sp) # # assign initial values # addi $s0, $zero, 10 # $s0 <- 10 la $s1, A # $s1 <- address of A addi $s2, $zero, 2 # $s2 <- 2 # # some code to test # add $s3, $s0, $s2 # $s3 <- $s0 + $s2 sw $s0, 0($s1) # A[0] <- $s0 # how to store $s3 in A[i]? # show how that would work for i in $s4 addi $s4, $zero, 2 # $s4 (i) <- 2 add $t0, $s4, $s4 # i*2 add $t0, $t0, $t0 # i*4 add $t0, $t0, $s1 # addr of A[i] sw $s3, 0($t0) # A[i] <- $s3 # # closing linkage (get return address and restore stack pointer) # lw $ra, 0($sp) addi $sp, $sp, 4 jr $ra .end main # # area for variables and constants # .data A: .word 0, 0, 0, 0 # equivalent of "int A[4] = {0}"