1 TEXT strcat(SB),$0 2 3 MOVL $0, AX 4 MOVL $-1, CX 5 CLD 6 7/* 8 * find length of second string 9 */ 10 11 MOVL p2+4(FP), DI 12 REPN; SCASB 13 14 MOVL DI, BX 15 SUBL p2+4(FP), BX 16 17/* 18 * find end of first string 19 */ 20 21 MOVL p1+0(FP), DI 22 REPN; SCASB 23 24/* 25 * copy the memory 26 */ 27 SUBL $1, DI 28 MOVL p2+4(FP), SI 29/* 30 * copy whole longs 31 */ 32 MOVL BX, CX 33 SHRL $2, CX 34 REP; MOVSL 35/* 36 * copy the rest, by bytes 37 */ 38 ANDL $3, BX 39 MOVL BX, CX 40 REP; MOVSB 41 42 MOVL p1+0(FP), AX 43 RET 44