feat: ft_memcpy
This commit is contained in:
parent
0650802fe0
commit
13628b49b8
3 changed files with 22 additions and 3 deletions
3
Makefile
3
Makefile
|
|
@ -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
17
src/ft_memcpy.asm
Normal 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
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue