SBIC / SBIS - Skip if Bit in I/O Register is Cleared / Set

SBIC Adresse, Bit
SBIS Adresse, Bit
Adresse: 0 - 31
Bit: 0 - 7

Dieser Befehl prüft, ob ein Bit in einem I/O Register gelöscht (cleared) / gesetzt (set) ist, und überspringt im Wahrheitsfall den nächsten Befehl.
Damit kann z.B. ein JMP oder CALL Befehl in Abhängigkeit eines Port-Inputs übersprungen werden. Es können beliebige Befehle überprungen werden.


Beispiel:

... ;PinB soll 0b00001000 sein, weil z.B. ein externer Taster gedrückt wurde
sbic PinB, 3 ;Bit 3 (das vierte Bit von rechts) wird auf "Cleared" getestet
jmp Tastendruck ;Das Bit ist nicht clear, also wird dieser Befehl ausgeführt und der Tastendruck behandelt
jmp Keinetaste ;Es wurde keine Taste gedrückt

Normalerweise wären zwei JMP-Befehle hintereinander sinnlos. Durch den Skip-Befehl, kann aber einer unter den Testbedingungen überprungen werden und somit wird nur der eine oder der andere JMP-Befehl ausgeführt.

Statusregister: Keine Beeinflussung
Speicherplatz: 2 Byte
Taktzyklen: 1-3 je nach Ergebnis