; -- strcpy(dst,src) copy null terminated string src to dst STRCPY: ; expects R3 = dst, a pointer to a destination string ; expects R4 = src, a pointer to a source string ; returns R3 unchanged ; use R5 = dst' ; R6 = ch ; R7 temp MOVE R5,R3 ; dst' = dst STRCLP: ; loop { LOADS R6,R4 EXTB R6,R6,R4 ; ch = *src BZS STRCQT ; if (ch == NUL) break LOADS R7,R5 STUFFB R7,R6,R5 STORES R7,R5 ; *dst' = ch ADDSI R4,1 ; src++ ADDSI R5,1 ; dst++ BR STRCLP STRCQT: ; } LOADS R7,R5 ; -- need to store final nul, ch = NULL STUFFB R7,R6,R5 STORES R7,R5 ; *dst' = ch JUMPS R1,R1 ; return dst -- was always in R3