User Tools

Site Tools


base:advanced_optimizing

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
base:advanced_optimizing [2018-09-13 14:26] – [Counting bits] bitbreakerbase:advanced_optimizing [2021-03-05 16:57] – [Forming terms] bitbreaker
Line 1430: Line 1430:
           sbc num           sbc num
           sta neg           sta neg
 +          
 +          ;num in a, carry set
 +          lda num
 +          sbc #$01
 +          eor #$ff
 </code> </code>
  
-There are of course also other expressions possible, just ponder a while about the term.+There are of course also other expressions possible, just ponder a while about the term. Also the carry flag after the negation can be influenced, depending on using sbc or adc for most cases ($00/$ff will cause an overflow). 
 + 
 +How's about forming terms with logical operations? We notice, that for e.g. (a + b) xor $ff is the same as (a xor $ff) - b: 
 + 
 +<code> 
 +          lda num1 
 +          clc 
 +          adc num2 
 +          eor #$ff 
 + 
 +          ;can also be written as 
 +          lda num1 
 +          eor #$ff 
 +          sec 
 +          sbc num2 
 +</code>
 ====== Running out of registers ====== ====== Running out of registers ======
  
base/advanced_optimizing.txt · Last modified: 2024-03-03 11:06 by bitbreaker