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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
12/08/04 01:36
Read: times


 
#82737 - Compact code
Responding to: ???'s previous message
The small code loop: as given by Erik was interesting. With a little thought assembly can be used to produce such tight codes. And as Craig pointed out it just needs a little bit of lateral thinking. While on this, I recently wrote a small code for rippling a LSB nibble through a 16 bit number by one place.
 ; LFTSHFT is for adjusting the TWS reading by one nibble to the left. Thus
        ; a value of "01 23" after this routine will be "12 30". This is to match
        ; FILLRAM routine handling the ADC value display. Call with R0 pointing to
        ; "01".

        LFTSHFT:        MOV     A, @R0                  ; 01
                        SWAP    A                       ; 10
                        MOV     @R0, A                  ; Save interim result of 10
                        DEC     R0                      ; Point to the Low byte
                        MOV     A, @R0                  ; 23
                        SWAP    A                       ; 32
                        ANL     A, #0FH                 ; 02
                        INC     R0                      ; Point to high byte again
                        ORL     A, @R0                  ; 12
                        MOV     @R0, A                  ; Save to high byte
                        DEC     R0                      ; Point to low byte
                        MOV     A, @R0                  ; 23
                        SWAP    A                       ; 32
                        ANL     A, #0F0H                ; 30
                        MOV     @R0, A
                        RET                             ; Hi byte = 12; Low Byte = 30



OK the above code is based on the obvious method - but will obviously more cumbersome for larger number of bits. Wonder if it can be made more "tighter".

Raghu

List of 8 messages in thread
TopicAuthorDate
24bit /8bit long division            01/01/70 00:00      
   24bit /8bit long division            01/01/70 00:00      
      How about rotate left?            01/01/70 00:00      
         multibyte rotate            01/01/70 00:00      
            Compact code            01/01/70 00:00      
               Rotate in hardware.            01/01/70 00:00      
         Yes, that's better            01/01/70 00:00      
            Some other suggestions            01/01/70 00:00      

Back to Subject List