_strncat.s
来自「操作系统源代码」· S 代码 · 共 38 行
S
38 行
! _strncat() Author: Kees J. Bot! 27 Jan 1994.sect .text; .sect .rom; .sect .data; .sect .bss! char *_strncat(char *s1, const char *s2, size_t dx)! Append string s2 to s1.!.sect .text.define __strncat__strncat: push bp mov bp, sp push si push di mov di, 4(bp) ! String s1 mov cx, #-1 xorb al, al ! Null byte cld repne scasb ! Look for the zero byte in s1 dec di ! Back one up (and clear 'Z' flag) push di ! Save end of s1 mov di, 6(bp) ! di = string s2 mov cx, dx ! Maximum count repne scasb ! Look for the end of s2 jne no0 inc cx ! Exclude null byteno0: sub dx, cx ! Number of bytes in s2 mov cx, dx mov si, 6(bp) ! si = string s2 pop di ! di = end of string s1 rep movsb ! Copy bytes stosb ! Add a terminating null mov ax, 4(bp) ! Return s1 pop di pop si pop bp ret
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?