Loops |
Now we want to print the numbers from 1 to 100. This would be a way to do it: push_i 1, L0; print_s "1"; print_n L0; print_s "2"; print_n L0; print_s "3"; print_n L0; ...We would need a lot time to type this. We need something to repeat the print part, a "loop". Here's the example: loop.na 1| push_i 1, L0; 2| push_i 0, L1; 3| push_i 99, L2; 4| 5| lab loop; 6| inc_l L1; 7| 8| print_l L1; 9| print_n L0; 10| 11| lseq_l L1, L2, L3; 12| jmp_l L3, loop; 13| 14| push_i 0, L4; 15| exit L4;Line 5 is named as "loop". Line 6 increases "L1" by one. Line 8 and 9 do the printing. Line 11 and 12: the "lseq_l" opcode compares "L1" with "L2". If "L1" is less or equal "L2", then "L3" is set to true (1). If not, "L3" is set to false (0). The "jmp_l" opcode jumps to the label "loop", if "L3" is true. The program stays in the loop, until the counter register "L1" reaches "100". Prev: Console Output | Next: Jumps |