|
Sprungbefehle, Verzweigungen und Unterprogramme |
|
|
|
Seite 1 von 2 Hier einige Programmbeispiele: Mit SWAP Bits tauschen 
Bedingte Verzweigungen [CJNE und DJNZ] Wir schreiben ein Programm, welches 0F in ein Register laden und anschließend mit 01 auf Gleichheit prüfen soll. Bei Ungleichheit, soll vom Register 1 abgezogen werden usw. Bei Gleichheit soll 55 in den Akku geladen werden. Beispiel:
Wir vergleichen mit dem Befehl DJNZ (Decrement Jump Not Zero) - [ziehe 1 ab und springe wenn nicht 0] Ist der zu vergleichende Inhalt ungleich 0, wird zur Sprungmarke gesprungen und der zu vergleichende Inhalt wird um 1 decrementiert. Beispiel: 
Unbedingte Sprungbefehle
LJMP
(Long Jump) - Dieser Sprungbefehl kann einen Sprung über den gesamten 64Kbyte Programmspeicher ausführen SJMP (Short Jump) - bietet einen möglichen Sprung im Bereich -128 bis + 127 Bit AJMP (Along Jump) - kann Sprünge innerhalb eines 2Kbyte Bereiches ausführen
Bedingte Sprungbefehle JZ (Jump Zero) - Springe, wenn Akku = 0 Die relative Reichweite des Sprungbefehls liegt im Bereich -128 bis + 127 Bit JNZ (Jump Not Zero) - Springe, wenn Akku <> 0 Die relative Reichweite des Sprungbefehls liegt im Bereich -128 bis + 127 Bit
|