User Tools

Site Tools


base:16-bit_comparison

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
base:16-bit_comparison [2020-10-22 20:30] – created twwbase:16-bit_comparison [2020-10-27 00:34] tww_ctr
Line 4: Line 4:
  
  
-TWW method:+16 bit equivalent of the CMP OPC:
  
 <code> <code>
 /*! «»«»«»«»{CMP16}«»«»«»«» /*! «»«»«»«»{CMP16}«»«»«»«»
-    Does exactly the same as CMP of two values (effectively its a val1-val2) and sets the flags as follows:+    Does exactly the same as CMP of two values (effectively its a M) and sets the flags as follows:
  
-                       (BCC/BCS)      (BEQ/BNE)      (BMI/BPL) +    If : Carry =  SET   Zero =  SET   Negative = CLEAR 
-    If val1 val2 : Carry =  SET   Zero =  SET   Negative = CLEAR +    If : Carry =  SET   Zero = CLEAR  Negative = CLEAR 
-    If val1 val2 : Carry =  SET   Zero = CLEAR  Negative = CLEAR +    If : Carry = CLEAR  Zero = CLEAR  Negative =  SET
-    If val1 val2 : Carry = CLEAR  Zero = CLEAR  Negative =  SET+
 */ */
  
-    lda val1 +    lda A+1 
-    sec +    cmp M+1 
-    sbc val2 +    bne !+ 
-    php +        lda A 
-    lda val1+1 +        cmp M 
-    sbc val2+1 +!: 
-    php +    // Status register sorted, from here you can branch as you like as you would after a CMP opc. 
-    pla +</code>
-    sta temp +
-    pla +
-    and #%00000010 +
-    ora #%11111101 +
-    and temp +
-    pha +
-    plp+
  
  
-Somewhere on ZP: 
-temp: 
-    .byte $00 
  
 +Different approach: instead of setting flags, goes to different destinations:
  
 +<code>
 +; Val1 ≥ Val2 ?
 +  LDA Val1 +1    ; high bytes
 +  CMP Val2+1
 +  BCC LsThan     ; hiVal1 < hiVal2 --> Val1 < Val2
 +  BNE GrtEqu     ; hiVal1 ≠ hiVal2 --> Val1 > Val2
 +  LDA Val1       ; low bytes
 +  CMP Val2
 +  ;BEQ Equal     ; Val1 = Val2
 +  BCS GrtEqu     ; loVal1 ≥ loVal2 --> Val1 ≥ Val2
 +LsThan
 +...
 +GrtEqu
 +...
 </code> </code>
- 
- 
- 
- 
  
  
base/16-bit_comparison.txt · Last modified: 2021-09-13 17:23 by tww