base:16-bit_comparison
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Last revisionBoth sides next revision | ||
base:16-bit_comparison [2020-10-24 14:05] – [TWW Method] verz | base:16-bit_comparison [2020-10-27 00:34] – tww_ctr | ||
---|---|---|---|
Line 4: | Line 4: | ||
- | TWW method: | + | 16 bit equivalent of the CMP OPC: |
< | < | ||
/*! «»«»«»«»{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 A - M) and sets the flags as follows: |
- | | + | |
- | | + | If A > M : Carry = SET Zero = CLEAR Negative = CLEAR |
- | If val1 > val2 : Carry = SET Zero = CLEAR Negative = CLEAR | + | If A < M : 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 | + | |
- | cmp val2 | + | lda A |
- | php | + | cmp M |
- | lda val1+1 | + | !: |
- | | + | |
- | php | + | |
- | pla | + | |
- | sta temp | + | |
- | pla | + | |
- | ;and # | + | |
- | ora # | + | |
- | and temp | + | |
- | pha | + | |
- | plp | + | |
- | + | ||
- | + | ||
- | Somewhere on ZP: | + | |
- | temp: | + | |
- | .byte $00 | + | |
- | + | ||
</ | </ | ||
base/16-bit_comparison.txt · Last modified: 2021-09-13 17:23 by tww