zum Directory-modus

PIC-Programmierung

Befehl DECFSZ

Dekrementiere und springe bei Null
Tab. 1
DECFSZ: dekrementiere f und springe bei 0
Syntax: DECFSZ f,d
Operanden:0 ≤ f ≤ 127 d = [0,1]
Operation: (f) - 1 → d springe, wenn Ergbnis = 0
Zyklen:1(2)
Wörter:1
Beeinflusste Flags:keine
Code:00 1011 dfff ffff

Das angesprochene Register wird dekrementiert und das Ergebnis anschließend im gleichen Register (d=1) oder im W-Register (d=0) abgelegt. Entstand beim Dekrementieren Null, so wird, und das ist die Besonderheit dieses Befehls, der nächste Befehl übersprungen.

Wichtig bei der Anwendung dieses Befehls ist, dass der Parameter "d" immer gleich 1 gesetzt wird, da sonst das Ergebnis nicht wieder im Register erscheint. Folglich bleibt dieses gleich und kann niemals den Wert Null erreichen. Mit Hilfe dieses Befehls kann recht komfortabel eine Schleife, ähnlich einer FOR-Schleife, aufgebaut werden, wie im folgenden Beispiel gezeigt wird.

Beispiel

   LOOP  
   DECFSZ OPERAND,1 ; das Register OPERAND wird dekrementiert 
   GOTO LOOP ;        Sprung zum Schleifenbeginn, falls Operand gleich Null 
   
   ; falls OPERAND = 0 wird hier fortgefahren
   
Seite 15 von 36