- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1
 
PM_Opc_TST
== TST = Test Bits ==
| Hex | Mnemonic | Cycles | 
|---|---|---|
| 94 | TST A, B | 8 | 
| 95 nn | TST [HL], #nn | 12 | 
| 96 nn | TST A, #nn | 8 | 
| 97 nn | TST B, #nn | 8 | 
| DC nn nn | TST [N+#nn], #nn | 16 | 
#nn     = Immediate unsigned 8-Bits
A       = Register A
B       = Register B
[N+#nn] = Memory: (I shl 16) or (N shl 8) or #nn
[HL]    = Memory: (I shl 16) or HL
; TST Sc2, Sc
;
; Sc2 = Source 2
; Sc  = Source
(discarded) = Sc2 AND Sc
"8-Bits Source 2" Logic AND with "8-Bits Source", result is discarded.
Source is usually a mask, Flag Z (Zero) return true if the result masked bits are all 0.
Common usage:
Check Bit 0 - Mask $01
Check Bit 1 - Mask $02
Check Bit 2 - Mask $04
Check Bit 3 - Mask $08
Check Bit 4 - Mask $10
Check Bit 5 - Mask $20
Check Bit 6 - Mask $40
Check Bit 7 - Mask $80
Zero result if Bit is 0.
Non-zero result if Bit is 1.
Zero: Set when result is 0
Sign: Set when bit 7 of the result is 1
Carry and Overflow remain unchanged
; A = 0x85
TST`` ``A,`` ``$80
; F = (Zero=0):(Sign=1)
; B = 0xF0
TST`` ``B,`` ``$04
; F = (Zero=1):(Sign=0)
; A = 0x05
TST`` ``A,`` ``$01
; F = (Zero=0):(Sign=0)
JNZ OddAccu  ; Called when first bit is 1.
JZ EvenAccu