Difference between revisions of "PM Opc TST"

From SublabWiki
Jump to: navigation, search
(TST Instruction added)
 
m (Examples)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== TST = Test Bits ==
 
== TST = Test Bits ==
  
{| border="1" style="text-align:left"
+
{| border="1" style="text-align:left" class="sortable"
 
!Hex
 
!Hex
 
!Mnemonic
 
!Mnemonic
Line 40: Line 40:
 
  ; Sc  = Source
 
  ; Sc  = Source
 
   
 
   
  (discarded) = Sc2 & Sc
+
  (discarded) = Sc2 AND Sc
  
 
=== Description ===
 
=== Description ===
  
"8-Bits Source 2" Logic AND with "8-Bits Source" but result get discarded.
+
"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.
 
Source is usually a mask, Flag Z (Zero) return true if the result masked bits are all 0.
Line 66: Line 66:
 
Zero: Set when result is 0
 
Zero: Set when result is 0
  
Sign: Set when 7th bit of the result is 1
+
Sign: Set when bit 7 of the result is 1
 +
 
 +
Carry and Overflow remain unchanged
  
 
=== Examples ===
 
=== Examples ===
  
 
  ; A = 0x85
 
  ; A = 0x85
  TST A, $80
+
  '''TST A, $80'''
 
  ; F = (Zero=0):(Sign=1)
 
  ; F = (Zero=0):(Sign=1)
  
 
  ; B = 0xF0
 
  ; B = 0xF0
  TST B, $04
+
  '''TST B, $04'''
  ; F = (Zero=1):(Sign=1)
+
  ; F = (Zero=1):(Sign=0)
  
 
  ; A = 0x05
 
  ; A = 0x05
  TST A, $01
+
  '''TST A, $01'''
 
  ; F = (Zero=0):(Sign=0)
 
  ; F = (Zero=0):(Sign=0)
 
  JNZ OddAccu  ; Called when first bit is 1.
 
  JNZ OddAccu  ; Called when first bit is 1.

Latest revision as of 00:25, 21 April 2009

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