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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/24/05 20:10
Read: times


 
#100028 - problems
Responding to: ???'s previous message
Solution 1:
move:   inc     r6              ;For avoiding 255 loop if is 0 the value
        inc     r7
and after that:
        mov     a,dpl           ;Origin is lower than destination
        add     a,r7            ;We add the number of bytes to the origin
        mov     sum_l,a         ;And we check if overlaps with destination
        mov     a,dph
        addc    a,r6
        mov     sum_h,a

But r6:r7 are no longer the number of bytes!

And also:
up:     djnz    r7,up1
        djnz    r6,up1
        ret
up1:    movx    a,@dptr          ;We move the data in up direction
        inc     dptr
        mov     store,r4         ;Swap r4,dph
        mov     r4,dph
        mov     dph,store
        mov     store,r5         ;Meant to swap r5,dpl I guess
        mov     r4,dpl
        mov     dpl,r5
        movx    @dptr,a
        inc     dptr
        sjmp    up

This moves one byte from destination to source end the next from source to destination (if the swapping was done correctly)!

Solution 2:
   mov   a,r4        ;now determine copy direction 
   cjne  a,dph,BlkMovX2
   mov   a,r5 
   cjne  a,dpl,BlkMovX2
BlkMovX2:
   jnc   BlkMovDwn
BlkMovUp:           ;----------- LDIR -------------
   mov   P2,r4       ;prepare destination address for movx @r0,a
;   mov   r0,ar5
   mov   r0,a         ;!trick - a already contains r5

If dph != r4 then a == r4, not r5!

Solution 3:
normalmove:
      mov a,r7
      orl a,r6
      jz  done
      dec r7
      jnz mv10
      dec r6

Decrementing r7 does not affect the "zero flag"!

Now you may guess where my vote went.

List of 11 messages in thread
TopicAuthorDate
Second challenge done            01/01/70 00:00      
   Vote rules:            01/01/70 00:00      
      Sounds like karma            01/01/70 00:00      
         problems            01/01/70 00:00      
            nowhere?            01/01/70 00:00      
               Nope            01/01/70 00:00      
                  Simulator            01/01/70 00:00      
                  Problems            01/01/70 00:00      
      a better idea?            01/01/70 00:00      
   Jan            01/01/70 00:00      
      error            01/01/70 00:00      

Back to Subject List