[prev] 9 [next]

1-d Arrays in MIPS (cont)

Scanning across an array of N elements using cursor

# int vec[10] = {...};
# int *cur, *end = &vec[10];
# for (cur = vec; cur < end; cur++)
#    printf("%d\n", *cur);

   la   $s0, vec             # cur = &vec[0]
   la   $s1, vec+40          # end = &vec[10]
loop:
   bge  $s0, $s1, end_loop   # if (cur >= end) break
   lw   $a0, ($s0)           # a0 = *cur
   jal  print                # print a0
   addi $s0, $s0, 4          # cur++
   j    loop
end_loop:

Assumes the existence of a print() function to do printf("%d\n",x)