From b8fe2bd8a382baff234041d1c32f8a8fe679da3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Fri, 23 Feb 2018 17:56:05 +0100 Subject: [PATCH] kernel entry assembly code to avoid compiler anomalies. --- Makefile | 5 +++-- kernel_entry.asm | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 kernel_entry.asm diff --git a/Makefile b/Makefile index 71806a0..3f9e2aa 100644 --- a/Makefile +++ b/Makefile @@ -9,12 +9,13 @@ LDFLAGS=-melf_i386 -Ttext 0x1000 --oformat binary basicos: mkdir -p $(BIN) $(ASM) boot_sect.asm $(AFLAGS) -o boot_sect.bin + $(ASM) kernel_entry.asm -f elf -o kernel_entry.o $(CC) $(CFLAGS) -c kernel.c -o kernel.o - $(LD) $(LDFLAGS) -o kernel.bin kernel.o + $(LD) $(LDFLAGS) -o kernel.bin kernel_entry.o kernel.o cat boot_sect.bin kernel.bin > $(BIN)/os-image .PHONY: clean clean: - rm *.bin *.o + rm -f *.bin *.o diff --git a/kernel_entry.asm b/kernel_entry.asm new file mode 100644 index 0000000..aa73e23 --- /dev/null +++ b/kernel_entry.asm @@ -0,0 +1,4 @@ +[bits 32] +[extern main] ; reference an external label + call main ; call the main function of our kernel + jmp $ ; hang