Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/18/05 09:16
Read: times


 
#99634 - gurus don't subtract constants
Responding to: ???'s previous message
When you get a little bit more familiar with the instruction set, you can try some minor optimisation:
To avoid the need for clearing carry before subb, when subtracting constants, you can add the negative of it instead - just remember, that the meaning of carry will be the opposite:
; A - original code
   ADD   A,#-20h
   JNC   PRN_CHAR_END     ; code is below 0x20 so non-printable

(Btw. AVRs by design don't have add a constant instruction - so one has to use subtract instead... (or a "helper" register).)

You can also completely avoid manipulation with the "pointer" simply by offsetting the table address when loading into dptr; but if you are not absolutely sure that the input value will be above 20h, there is little gained from this as you need to check it anyway.

Jan Waclawek


List of 14 messages in thread
TopicAuthorDate
Code optimization suggestion?            01/01/70 00:00      
   Table            01/01/70 00:00      
      Table?            01/01/70 00:00      
         Another table ...            01/01/70 00:00      
   CJNE            01/01/70 00:00      
      Everybody is saying to use a table            01/01/70 00:00      
         My confsion            01/01/70 00:00      
   two tables            01/01/70 00:00      
      Tables            01/01/70 00:00      
         sure            01/01/70 00:00      
            gurus don't subtract constants            01/01/70 00:00      
   16 bit table            01/01/70 00:00      
      bit table            01/01/70 00:00      
   Table indexing            01/01/70 00:00      

Back to Subject List