// Add from 1 to 50
// R1 stores the result
// R2 is a counter
// By default, R1, R2 is 0
// If R2 is 50, the program ends
// If R2 is not 50, the program adds R2 to R1 and increments R2 by 1

lu12i.w  $r1, 0x00000       // r1 = 0x00000000 (result)
lu12i.w  $r2, 0x00000       // r2 = 0x00000000 (counter)
lu12i.w  $r3, 0x00000       
addi.w   $r3, $r3, 0x032    // r3 = 0x00000032 (50 in decimal)
addi.w   $r2, $r2, 1        // r2 = r2 + 1 (increment counter)
add.w    $r1, $r1, $r2      // r1 = r1 + r2 (add counter to result)
beq      $r3, $r2, 12       // If r2 = 50, branch to 'end' label
b        -12                // Jump back to the beginning of the loop
// 'end:' label is here
b        -4                 // Infinite loop: jump to itself