# # simple example demonstrating loop and array use # (shorter but less straightforward version) # # Author: B. Massingill # .text .text .globl main main: # # opening linkage (save return address) # addi $sp,$sp,-4 sw $ra,0($sp) # # C version: # # static int A[10]; # for (int i = 0; i < 10; ++i) # A[i] = i; # # register usage: # i $s0 # 10 $s1 # &A[i] $s2 # add $s0, $zero, $zero addi $s1, $zero, 10 la $s2, A loop: slt $t0, $s0, $s1 beq $t0, $zero, end sw $s0, 0($s2) addi $s2, $s2, 4 addi $s0, $s0, 1 j loop end: # # closing linkage (get return address and restore stack pointer) # lw $ra,0($sp) addi $sp,$sp,4 jr $ra .end main .data A: .word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0