metalsvm/arch/x86/kernel/string64.asm

46 lines
656 B
NASM
Raw Permalink Normal View History

;
; Written by the Chair for Operating Systems, RWTH Aachen University
;
; NO Copyright (C) 2010-2012, Stefan Lankes
; consider these trivial functions to be public domain.
;
; These functions are distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;
[BITS 64]
2011-03-31 12:38:04 -07:00
SECTION .text
global strcpy
strcpy:
push rdi
L1:
lodsb
stosb
test al, al
jne L1
pop rax
ret
global strncpy
strncpy:
push rdi
mov rcx, rdx
L2:
dec rcx
js L3
lodsb
stosb
test al, al
jne L1
rep
stosb
L3:
pop rax
ret
SECTION .note.GNU-stack noalloc noexec nowrite progbits