Files
Astral/src/arch/x86_64/ustring.asm
T
2022-12-15 09:22:32 -03:00

53 lines
614 B
NASM

section .text:
global arch_u_strlen
global arch_u_strlen_cont
arch_u_strlen:
xor rcx, rcx
.loop:
cmp byte [rdi],0
je .done
inc rcx
inc rdi
jmp .loop
.done:
mov [rsi], rcx
xor rax, rax
ret
arch_u_strlen_cont:
mov rax, 1
ret
global arch_u_memcpy
global arch_u_memcpy_cont
arch_u_memcpy:
mov rcx, rdx
rep movsb
xor rax, rax
ret
arch_u_memcpy_cont:
mov rax, 1
ret
global arch_u_strcpy
global arch_u_strcpy_cont
arch_u_strcpy:
.loop:
mov al, [rsi]
mov [rdi], al
inc rsi
inc rdi
test al,al
jz .done
jmp .loop
.done:
xor rax,rax
ret
arch_u_strcpy_cont:
mov rax, 1
ret