📄 cstrncpy.s
字号:
; 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -