CODE call main,0 exit PROCBEGIN main alloc 11 move 0, _1 move _1, _3 4: ; Top of the while loop move _3, _2 ; moving done move 0, _3 ceq _2, _3, _1 beq 0, _1, 5 ; Branch to the end of the while loop ; Start of the loop body inp _2 move _2, _4 ; moving i move 0, _5 ceq _4, _5, _1 beq 1, _1, 6 ; Fall through to the else part move _2, _7 ; moving i outp _7 ; Start of parameter 0 move _2, _8 ; moving i param @_8 call fib, 1 move _0, _9 move _9, _2 move _2, _10 ; moving i outp _10 newl goto 7 ; Jump over then part 6: ; Start of then part move 1, _6 move _6, _3 7: ; End of if statement goto 4 ; Jump to the top of the while loop 5: ; End of the while loop free 11 PROCEND PROCBEGIN fib alloc 17 move ^%0, %3 ; moving n move 1, %4 ceq %3, %4, _1 beq 1, _1, 0 ; Fall through to the else part move %0, %6 ; moving n move 2, %7 ceq %6, %7, _1 beq 1, _1, 1 ; Fall through to the else part ; Start of parameter 0 move ^%0, %9 ; moving n move 1, %10 sub %9, %10, %11 param %11 call fib, 1 move _0, %12 ; Start of parameter 0 move ^%0, %13 ; moving n move 2, %14 sub %13, %14, %15 param %15 call fib, 1 move _0, %16 add %12, %16, %17 move %17, _0 goto 2 ; Jump over then part 1: ; Start of then part move 1, %8 move %8, _0 2: ; End of if statement goto 3 ; Jump over then part 0: ; Start of then part move 1, %5 move %5, _0 3: ; End of if statement free 17 PROCEND