Ahmet Kerem Final
libasm ft_strdup.s
ft_strdup.s 402 B
global ft_strdup
extern ft_strlen
extern malloc
section .text
ft_strdup:
push rbx
mov rbx, rdi
call ft_strlen
lea rdi, [rax + 1]
call malloc wrt ..plt
cmp rax, 0
je .error
mov rcx, 0
.loop:
mov dl, BYTE [rbx + rcx]
mov BYTE [rax + rcx], dl
inc rcx
cmp dl, 0
jne .loop
pop rbx
ret
.error:
mov rax, 0
pop rbx
ret