add: strdup
This commit is contained in:
parent
3632b34e40
commit
b3a4690a85
@ -6,4 +6,5 @@
|
|||||||
char *ft_strcpy(char *dest, const char *src);
|
char *ft_strcpy(char *dest, const char *src);
|
||||||
size_t ft_strlen(const char *str);
|
size_t ft_strlen(const char *str);
|
||||||
int ft_strcmp( const char *first, const char *second);
|
int ft_strcmp( const char *first, const char *second);
|
||||||
ssize_t ft_write(int fd, const void *buf, size_t count);
|
ssize_t ft_write(int fd, const void *buf, size_t count);
|
||||||
|
char *ft_strdup(const char *s);
|
27
src/ft_strdup.asm
Normal file
27
src/ft_strdup.asm
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
extern ft_strlen
|
||||||
|
extern malloc
|
||||||
|
extern ft_strcpy
|
||||||
|
|
||||||
|
section .text
|
||||||
|
global ft_strdup
|
||||||
|
ft_strdup:
|
||||||
|
call ft_strlen
|
||||||
|
|
||||||
|
mov rbx, rdi
|
||||||
|
mov rdi, rax
|
||||||
|
|
||||||
|
call malloc
|
||||||
|
|
||||||
|
cmp rax, 0
|
||||||
|
je error
|
||||||
|
|
||||||
|
mov rdi, rax
|
||||||
|
mov rsi, rbx
|
||||||
|
|
||||||
|
call ft_strcpy
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
|
error:
|
||||||
|
xor rax, rax
|
||||||
|
ret
|
Loading…
Reference in New Issue
Block a user