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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
12/05/05 10:29
Read: times


 
#104692 - another approach
Responding to: ???'s previous message
instead separate collecting digits and conversion, many code space can be saved, if every digit was converted immediately as it arrived.

Then you need only a small routine, which multiply the old value by 10 and add the new digit:


;********************** Multiplication * 10 for decimal input **********
;
;Input: R0 point to X (LSB)
;       ACC = new digit
;Output: X = X * 10 + ACC

amula10:
        mov     r2, #4          ;4 byte value
_amu1:
        mov     r3, a           ;digit to add
        mov     a, @r0
        mov     b, #10
        mul     ab              ;* 10
        add     a, r3           ;add digit or carry
        mov     @r0, a
        clr     a
        addc    a, b            ;add carry
        inc     r0              ;next byte
        djnz    r2, _amu1
        ret



Furthermore the same routine can handle smaller or bigger values, simple by changing the loop counter R2 accordingly.


Peter


List of 30 messages in thread
TopicAuthorDate
week puzzle V            01/01/70 00:00      
   that would be intersating only to codebr            01/01/70 00:00      
      codebreakers            01/01/70 00:00      
         busted            01/01/70 00:00      
   having a guess            01/01/70 00:00      
   Hmm,isn't it demotivating to reengineer?            01/01/70 00:00      
      Cool algorithm            01/01/70 00:00      
      maybe            01/01/70 00:00      
   Looks like BCD to binary routine            01/01/70 00:00      
   My assumption            01/01/70 00:00      
   The source with comments !            01/01/70 00:00      
      thanks            01/01/70 00:00      
         Seems more elegant ...            01/01/70 00:00      
            optimized=ugly            01/01/70 00:00      
         why "xrl a,#0F0h" ?            01/01/70 00:00      
            Wow!            01/01/70 00:00      
         A bit shorter ...            01/01/70 00:00      
            za Slobodana Mandarica            01/01/70 00:00      
      another approach            01/01/70 00:00      
         optimizing further            01/01/70 00:00      
            packed bcd            01/01/70 00:00      
               packed bcd... by specification :-)            01/01/70 00:00      
      that is not comments, that is "explanati            01/01/70 00:00      
         true if            01/01/70 00:00      
         Yes they are Comments            01/01/70 00:00      
            Exactly !            01/01/70 00:00      
            I have seen such called "comments" way t            01/01/70 00:00      
               more on comments            01/01/70 00:00      
                  the point            01/01/70 00:00      
                     "anyone" and the point            01/01/70 00:00      

Back to Subject List