add: makefile

This commit is contained in:
starnakin 2024-08-28 15:47:11 +02:00
parent f4f9159a88
commit e4ee25979b
7 changed files with 62 additions and 36 deletions

5
.gitignore vendored
View File

@ -1,3 +1,2 @@
*.o
a.out
main.c
obj
build

View File

@ -0,0 +1,40 @@
SRCDIR = src
OBJDIR = obj
BUILDDIR = build
SRC := $(wildcard $(SRCDIR)/*.asm)
OBJ := $(patsubst $(SRCDIR)/%.asm,$(OBJDIR)/%.o,$(SRC))
CC = gcc
CFLAGS =
AS = nasm
ASFLAGS = -f elf64
AR = ar
ARFLAGS =
NAME = libasm.a
$(OBJDIR)/%.o: $(SRCDIR)/%.asm
mkdir -p $(OBJDIR)
$(AS) $(ASFLAGS) $< -o $@
all : $(NAME)
test : $(NAME)
$(CC) $(CFLAGS) test/test.c $(NAME) -o $(BUILDDIR)/test
$(BUILDDIR)/test
rm -rf $(BUILDDIR)/test
clean :
rm -rf $(OBJDIR)
fclean : clean
rm -rf $(BUILDDIR)
$(NAME) : $(OBJ)
mkdir -p $(BUILDDIR)
$(AR) -rc $(BUILDDIR)/$(NAME) $(OBJ)
.PHONY: clean fclean test all

View File

@ -1,19 +0,0 @@
section .text
global ft_strcmp
ft_strcmp:
mov rax, rdi
mov rbx, rsi
loop:
mov al, [rax]
mov bl, [rbx]
cmp al, bl
jne out
cmp al, 0
je out
inc rax
inc rbx
jmp loop
out:
sub rax, rbx
ret

View File

@ -1,14 +0,0 @@
section .text
global ft_strcpy
ft_strcpy:
mov rax, 0
loop:
mov bl, [rsi + rax]
mov [rdi + rax], bl
cmp BYTE [rsi + rax], 0
je out
inc rax
jmp loop
out:
ret

0
src/ft_strcmp.asm Normal file
View File

19
src/ft_strcpy.asm Normal file
View File

@ -0,0 +1,19 @@
section .text
global ft_strcpy
ft_strcpy:
mov rcx, 0
loop:
mov al, [rsi + rcx]
mov [rdi + rcx], al
cmp al, 0
je out
inc rcx
jmp loop
out:
mov rax, rcx
ret

View File

@ -1,3 +1,4 @@
section .note.GNU-stack noalloc noexec nowrite progbits
section .text
global ft_strlen