Bedingter negierter Sprung (Jump Conditional NOT)
Die Programmausführung wird, falls das letzte Verknüpfungsergebnis FALSE war, an der im Operandenbereich angegebenen Marke fortgesetzt.
Jedes im Programm vorkommende Label ist gültig. Der im Akkumulator stehende Wert muss vom Typ BOOL sein.
var_1 und var_2 können von jedem Datentyp sein, da ein Vergleich für jeden Datentyp möglich ist. var_3, var_4 und var_5 müssen entsprechend den mit ihnen ausgeführten Operationen numerische Datentypen sein. LABEL1 und LABEL2 müssen gültige Marken im Programm sein. Der Sprung wird nur ausgeführt, wenn der Akkumulator den Wert FALSE hält. Andernfalls, wird die Programmausführung mit dem Befehl fortgeführt, der auf den JMPCN-Befehl folgt.
Nach der Marke muss ein Doppelpunkt folgen. Im JMPCN-Befehl muss der Doppelpunkt nach dem Markennamen jedoch weggelassen werden.
Marken lassen sich nur am Anfang eines Netzwerks einfügen. Eine Sprungmarke kann nur am Anfang eines Netzwerks eingefügt werden, auch wenn kein Sprung darauf erfolgt. (z.B. LABEL0 in diesem Code-Fragment).
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung der Funktion verwendet werden.
(* Start Netzwerk 0 *) |
|||
LABEL0: |
LD |
var_1 |
(* Lade var_1 in den Akkumulator*) |
EQ |
var_2 |
(* vergleichen mit var_2; Ergebnis ist vom Datentyp BOOL*) |
|
JMPC |
LABEL1 |
(* falls Ergebnis FALSE, setze Programm ab Position LABEL1 fort *) |
|
(* Start Netzwerk 1 *) |
|||
LABEL1: |
MUL |
var_3 |
(* multipliziere Akku mit var_3 *) |
SUB |
var_4 |
(* subtrahiere var_4 *) |
|
ST |
var_5 |
(* speichern in var_5 *) |