home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / intel8051 / i51scat.asm < prev    next >
Assembly Source File  |  2020-01-01  |  570b  |  29 lines

  1. ; concantenate string pointed by stack to string pointed by dptr
  2. strcat:    pop    7        ; hi ret
  3.     pop    6        ; lo ret
  4. sc4:    movx    a,@dptr        ; find end of string
  5.     jz    sc3        ; got it
  6.     inc    dptr        ; next char
  7.     sjmp    sc4
  8. sc3:    mov    r0,dpl        ; r0  = lo destination
  9.     mov    dpl,r6        ; dpl = lo source
  10.     mov    r6,dph        ; r6  = hi destination
  11.     mov    dph,r7        ; dph = hi source
  12. sc1:    mov    p2,r6
  13.     movx    a,@dptr
  14.     inc    dptr
  15.     jz    sc2        ; all done
  16.     movx    @r0,a
  17.     inc    r0
  18.     mov    a,r0
  19.     jnz    sc1
  20.     inc    r6        ; next page
  21.     sjmp    sc1
  22. sc2:    movx    @r0,a        ; terminate string
  23.     push    dpl        ; lo ret
  24.     push    dph        ; hi ret
  25.     mov    dpl,r0
  26.     mov    dph,r6
  27.     ret
  28.  
  29.