Copy-Discovery 2000 Homepage

Anmelden:Zur Registrierung

Schleifen in ProtectionScript

verwendete ProtectionScript-Befehle: SAVENUMBER, ADD, CMPNUMBER, JUMPTRUE

In ProtectionScript werden Schleifen mit Sprüngen realisiert. Es gibt keine eigene Kontrollstruktur wie das bei Hochsprachen übliche For. Im angegebenen Beispiel wird zur Zahl 3F 20-mal (hexadezimal: 14-mal) die Zahl A54 addiert.

Beispielcode

ProtectionScript Code

000
001
002
003
004
005
006
007
008
009
00A
00B
00C
00D
00E
00F
010
PUSHNUMBER 3F SAVENUMBER #R1 PUSHNUMBER 0 SAVENUMBER #R5 PUSHNUMBER #R1
PUSHNUMBER2 A54 ADD #R1 PUSHNUMBER #R5 PUSHNUMBER2 1 ADD #R5 PUSHBYTE 2 PUSHNUMBER #R5
PUSHNUMBER2 14 CMPNUMBER #R2 PUSHNUMBER 4 PUSHBOOL #R2 JUMPTRUE

Erklärung

Der eigentliche Schleifeninhalt sind nur die Zeilen 4-6, in denen A54 addiert wird. Der Rest gehört zur Schleife selbst. In den Zeilen 2 und 3 wird der Startwert der Schleife festgelegt. Dieser Wert wird pro Durchgang in Zeilen 7-9 um 1 erhöht. Und abschließend wird in den Zeilen A-10 geprüft, ob diese Schleifenvaribale noch kleiner als 14 ist. Wenn ja, wird wieder an den Schleifenanfang gesprungen.
Zeilen 000/001: Der Anfangswert 3F wird ins 1. Benutzerregister geschrieben (#R1).
Zeilen 002/003: Der Startwert der Schleife (0) wird ins 5. Benutzerregister geschrieben (#R5). #R5 ist also die sogenannte Schleifenvariable, die nach jedem Durchgang um 1 erhöht wird.
Zeilen 004/005/006: Zum Wert im 1. Benutzerregister wird der Wert A54 addiert und die Summe wieder in #R1 gespeichert.
Zeilen 007/008/009: Der Wert in #R5 wird um eins erhöht und wieder in #R5 gespeichert.
Zeilen 00A/00B/00C/00D: Es wird geprüft, ob der Wert in #R5 kleiner als 14 ist. Das boolesche Ergebnis dieser Prüfung wird in #R2 gespeichert.
Zeilen 00E/00F/010: Wenn der boolesche Wert in #R2 True ergibt, wird in die 4. Zeile gesprungen und die Schleife nocheinmal ausgeführt.

Tutorial bewerten: