Skip to content

PM_Opc_TST

Jose I Romero edited this page Dec 6, 2019 · 1 revision

== 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

Execute

#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

Description

"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.

Conditions

Zero: Set when result is 0

Sign: Set when bit 7 of the result is 1

Carry and Overflow remain unchanged

Examples

; 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

« Back to Instruction set

Clone this wiki locally