strncpy.s

来自「avr的icc编译器的源代码」· S 代码 · 共 31 行

S
31
字号
.area text
;
; char *strncpy(char *dst, char *src, size_t bytes)
;
_strncpy::
	ldd	R24,Y+0	; load length
	ldd	R25,Y+1
	cpi	R24,0
	cpc	R25,R24
	 breq	strncpyx	; length == 0
	mov	R27,R17	; move pointers
	mov	R26,R16
	mov	R31,R19
	mov	R30,R18
strncpy1:			; copy
	ld	R18,Z+
	st	X+,R18
	sbiw	R24,1
	 breq	strncpyx	; no more bytes ...
	tst	R18
	 brne	strncpy1	; src has more ...
;	ldi	R18,0		; else
strncpy2:			; clear rest of dst
	st	X+,R18
	sbiw	R24,1
	 brne	strncpy2
strncpyx:
	ret
;
;<eof; 2003-07-31 ja>

⌨️ 快捷键说明

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