KS57C2308/P2308/C2316/P2316 SAM47 INSTRUCTION SET
5-37
BTSFBit Test and Skip on False
BTSF dst.b
Operation: Operand Operation Summary Bytes Cycles
DA.b Test specified memory bit and skip if bit equals "0" 22 + S
mema.b 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 "0", the BTSF instruction skips
the instruction which immediately follows it; otherwise the instruction following the BTSF is
executed. The destination bit value is not affected.
Operand Binary Code Operation Notation
DA.b 1 1 b1 b0 0 0 1 0 Skip if DA.b = 0
a7 a6 a5 a4 a3 a2 a1 a0
mema.b *11111000Skip if mema.b = 0
memb.@L 11111000Skip if [memb.7–2 + L.3-2].
[L.1–0] = 0
0 1 0 0 a5 a4 a3 a2
@H + DA.b 11111000Skip if [H + DA.3–0].b = 0
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. If RAM bit location 30H.2 is set to “0”, the following instruction sequence will cause the
program to continue execution from the instruction identified as LABEL2:
BTSF 30H.2 ;If 30H.2 = "0", then skip
RET ;If 30H.2 = "1", return
JP LABEL2
2. You can use BTSF in the same way to test a port pin address bit:
BTSF P2.0 ;If P2.0 = "0", then skip
RET ;If P2.0 = "1", then return
JP LABEL3