feat: ft_memcpy

This commit is contained in:
lohhiiccc 2026-06-12 16:23:17 +02:00
parent 0650802fe0
commit 13628b49b8
3 changed files with 22 additions and 3 deletions

View file

@ -15,7 +15,8 @@ SRCS=$(SRC_DIR)/ft_strlen.asm \
$(SRC_DIR)/ft_strcmp.asm \ $(SRC_DIR)/ft_strcmp.asm \
$(SRC_DIR)/ft_write.asm \ $(SRC_DIR)/ft_write.asm \
$(SRC_DIR)/ft_read.asm \ $(SRC_DIR)/ft_read.asm \
$(SRC_DIR)/ft_strdup.asm $(SRC_DIR)/ft_strdup.asm \
$(SRC_DIR)/ft_memcpy.asm
OBJS=$(patsubst $(SRC_DIR)/%.asm,$(OBJ_DIR)/%.o,$(SRCS)) OBJS=$(patsubst $(SRC_DIR)/%.asm,$(OBJ_DIR)/%.o,$(SRCS))
DEPS=$(OBJS:.o=.d) DEPS=$(OBJS:.o=.d)

17
src/ft_memcpy.asm Normal file
View file

@ -0,0 +1,17 @@
global ft_memcpy
section .text
; rdi: dest
; rsi: src
; rdx: len
ft_memcpy:
mov rax, rdi
test rdx, rdx
je .done
cld
mov rcx, rdx
rep movsb
.done:
ret

View file

@ -6,12 +6,13 @@
extern "C" { extern "C" {
#endif #endif
size_t ft_strlen(char *str); size_t ft_strlen(const char *str);
char *ft_strcpy(char *dest, const char *src); char *ft_strcpy(char *dest, const char *src);
int ft_strcmp (const char *p1, const char *p2); int ft_strcmp (const char *p1, const char *p2);
ssize_t ft_write(int fildes, const void *buf, size_t nbyte); ssize_t ft_write(int fildes, const void *buf, size_t nbyte);
char *strdup(const char *s); char *strdup(const char *s);
ssize_t read(int fd, void *buf, size_t count); ssize_t ft_read(int fd, void *buf, size_t count);
void *ft_memcpy(void *dest, const void *src, size_t n);
#ifdef __cplusplus #ifdef __cplusplus
} }