Schleifen

Jetzt wollen wir die Zahlen von 1 bis 100 ausgeben. Das könnte man so machen:

    push_i   1, L0;

    print_s  "1";
    print_n  L0;

    print_s  "2";
    print_n  L0;

    print_s  "3";
    print_n  L0;

    ...
    
Wir würden viel Zeit brauchen, um das zu schreiben.
Wir benötigen etwas um den Teil zu wiederholen, eine "Schleife"
Hier ist das Beispiel:

        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;
    
Zeile 5 wird "loop" genannt.

Zeile 6 erhöht "L1" um eins.

Zeile 8 und 9 machen die Ausgabe.

Zeile 11 und 12: der "lseq_l" Befehl vergleicht "L1" mit "L2".
Wenn "L1" weniger oder gleich "L2" ist, dann wird "L3" zu wahr (1) gesetzt.
Wenn nicht, dann wird "L3" auf falsch (0) gesetzt.
Der "jmp_l" Befehl springt zur Sprungmarke "loop", wenn "L3" wahr ist.

Das Programm bleibt in der Schleife, bis das Zählregister "L1" 100 erreicht.


Prev: Konsole Ausgabe | Next: Sprünge