| 
 BTST 
 | 
 
Testing a bit 
 | 
 
BTST 
 | 
| 
 
Bit TeST 
 | 
[Syntax]	
BTST    src, src2 
 
[Operation]
(1)When src2 is a memory location:
unsigned char src2;
Z = ~(( src2 >> ( src & 7 )) & 1 );
C = (( src2 >> ( src & 7 )) & 1 );
 
(2)When src2 is a register:
register unsigned long src2;
Z = ~(( src2 >> ( src & 31 )) & 1 );
C = (( src2 >> ( src & 31 )) & 1 );
 
[Function]
-  | This instruction moves the inverse of the value of the bit of scr2, which is specified by src, to the Z flag and the value of the bit of scr2, which is specified by src, to the C flag.  | 
 
-  | The immediate value given as src is the number (position) of the bit.  | 
 
-  | The range for IMM:3 operands is 0 ≤ IMM:3 ≤ 7. The range for IMM:5 is 0 ≤ IMM:5 ≤ 31.  | 
 
 
[Instruction Format]
| 
 | 
 | 
 | 
 | 
| 
 | 
 | 
| 
 
(1)BTST src, src2 
 | 
 | 
 
#IMM:3 
 | 
 
[Rs2].B 
 | 
 | 
| 
 | 
 
#IMM:3 
 | 
 
dsp:8[Rs2].B 
 | 
 | 
| 
 | 
 
#IMM:3 
 | 
 
dsp:16[Rs2].B 
 | 
 | 
| 
 | 
 
Rs 
 | 
 
[Rs2].B 
 | 
 | 
| 
 | 
 
Rs 
 | 
 
dsp:8[Rs2].B 
 | 
 | 
| 
 | 
 
Rs 
 | 
 
dsp16:[Rs2].B 
 | 
 | 
| 
 
(2)BTST src, src2 
 | 
 | 
 
#IMM:5 
 | 
 
Rs2 
 | 
 | 
| 
 | 
 
Rs 
 | 
 
Rs2 
 | 
 | 
 
[Flag Change]
Conditions
C	: The flag is set if the specified bit is 1; otherwise it is cleared.
Z	: The flag is set if the specified bit is 0; otherwise it is cleared.
 
[Description Example]
BTST    #7, [R2]
BTST    R1, [R2]
BTST    #31, R2
BTST    R1, R2