# 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 #