cstrncpy.s

来自「AVR下的ICC所有函数库代码」· S 代码 · 共 32 行

S
32
字号
; rfm, based on strncpy
.area text
;
; char *cstrncpy(char *dst, const char *src, size_t bytes)
;
_cstrncpy::
	ldd	R24,Y+0	; load length
	ldd	R25,Y+1
	cpi	R24,0
	cpc	R25,R24
	 breq	cstrncpyx	; length == 0
	mov	R27,R17	; move pointers
	mov	R26,R16
	mov	R31,R19
	mov	R30,R18
cstrncpy1:			; copy
	lpm
	adiw	R30,1
	st	X+,R0
	sbiw	R24,1
	 breq	cstrncpyx	; no more bytes ...
	tst	R0
	 brne	cstrncpy1	; src has more ...
cstrncpy2:			; clear rest of dst
	st	X+,R0
	sbiw	R24,1
	 brne	cstrncpy2
cstrncpyx:
	ret
;
;<eof; 2003-07-31 ja>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?