KS57C2308/P2308/C2316/P2316 SAM47 INSTRUCTION SET
5-41
BTSTZ — Bit Test and Skip on True; Clear Bit
BTSTZ dst.b
Operation: Operand Operation Summary Bytes Cycles
mema.b Test specified bit; skip and clear if memory bit is set 22 + S
memb.@L 22 + S
@H+DA.b 22 + S
Description: The specified bit within the destination operand is tested. If it is a "1", the instruction immediately
following the BTSTZ instruction is skipped; otherwise the instruction following the BTSTZ is
executed. The destination bit value is cleared.
Operand Binary Code Operation Notation
mema.b *11111101Skip if mema.b = 1 and clear
memb.@L 11111101Skip if [memb.7–2 + L.3–2].
[L.1–0] = 1 and clear
0 1 0 0 a5 a4 a3 a2
@H+DA.b 11111101Skip if [H + DA.3–0].b =1 and clear
0 0 b1 b0 a3 a2 a1 a0
Second Byte Bit Addresses
* mema.b 1 0 b1 b0 a3 a2 a1 a0 FB0H–FBFH
1 1 b1 b0 a3 a2 a1 a0 FF0H–FFFH
Examples: 1. Port pin P2.0 is toggled by checking the P2.0 value (level):
BTSTZ P2.0 ;If P2.0 = "1", then P2.0 "0" and skip
BITS P2.0 ;If P2.0 = "0", then P2.0 "1"
JP LABEL3
2. For toggling port pins P2.2, P2.3 and P3.0–P3.3:
LD L,#0AH
BP2 BTSTZ P1.@L ;First, P1.@0AH = P2.2
;(111100B) + 10B.10B = 0F2H.2
BITS P1,@L
INCS L
JR BP2