# Demo 3 - for loop

    .text
main:
    lw  $s0, upper
    lw  $s1, lower
    li  $s3, 0
    # for ($s2=$s1; $s2<$s0; $s2++ {
    #    $s3++
    # }


    add  $s2,$s1,$zero    # loop variable initialization
loop1:
    bge  $s2, $s0, after  # note the test is negated from what you see in the for
    addi $s3, $s3, 1  # loop body
    addi $s2, $s2, 1  # loop increment at end
    b    loop1

# another way
    lw  $s0, upper
    lw  $s1, lower
    li   $s3, 0

    add $s2, $s1, $zero  # loop initialization
    b   loop2test

loop2:
    addi $s3, $s3, 1 # loop body
    addi $s2, $s2, 1 # loop increment just before test

loop2test:
    blt $s2, $s0, loop2 # loop test at very end
    


after:
    jr   $ra

    .data
upper:
    .word 10  # also could be a comma-separated list to init an array
lower:
    .word 5   #