From 12b8ab0bbc4873bad42d3a346824ecd895cb9b6e Mon Sep 17 00:00:00 2001 From: lohhiiccc Date: Fri, 12 Jun 2026 17:31:10 +0200 Subject: [PATCH] feat: ft_bzero --- Makefile | 3 ++- src/ft_bzero.asm | 16 ++++++++++++++++ src/libasm.h | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 src/ft_bzero.asm diff --git a/Makefile b/Makefile index 6907a9d..2f72edd 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,8 @@ SRCS=$(SRC_DIR)/ft_strlen.asm \ $(SRC_DIR)/ft_write.asm \ $(SRC_DIR)/ft_read.asm \ $(SRC_DIR)/ft_strdup.asm \ - $(SRC_DIR)/ft_memcpy.asm + $(SRC_DIR)/ft_memcpy.asm \ + $(SRC_DIR)/ft_bzero.asm OBJS=$(patsubst $(SRC_DIR)/%.asm,$(OBJ_DIR)/%.o,$(SRCS)) DEPS=$(OBJS:.o=.d) diff --git a/src/ft_bzero.asm b/src/ft_bzero.asm new file mode 100644 index 0000000..ac5d3f3 --- /dev/null +++ b/src/ft_bzero.asm @@ -0,0 +1,16 @@ +global ft_bzero +section .text + +; rdi: dest +; rsi: len +ft_bzero: + test rsi, rsi + je .done + + xor eax, eax + mov rcx, rsi + cld + rep stosb + +.done: + ret diff --git a/src/libasm.h b/src/libasm.h index 2df3ccd..4922b74 100644 --- a/src/libasm.h +++ b/src/libasm.h @@ -13,7 +13,7 @@ ssize_t ft_write(int fildes, const void *buf, size_t nbyte); char *strdup(const char *s); ssize_t ft_read(int fd, void *buf, size_t count); void *ft_memcpy(void *dest, const void *src, size_t n); - +void ft_bzero(void *s, size_t n); #ifdef __cplusplus } #endif