diff options
| author | Carlos Maiolino <[email protected]> | 2025-07-17 19:20:28 +0200 |
|---|---|---|
| committer | Carlos Maiolino <[email protected]> | 2025-07-17 19:20:28 +0200 |
| commit | d8392002629bc97c05ca82961c7ab3439ed7248e (patch) | |
| tree | dfd3f7dafd4e9efe10fe87b383c78430379580b9 /src/kernel.asm | |
| parent | 7bcc28cb58e99927e14636fe199c5345f6c63a6f (diff) | |
Start writing the kernel and add a linker script
Move the code unders [BITS 32] label to its own file to be loaded as a
kernel by the boot loader.
Add a linker script to link the bootloader and the kernel in a single
binary file.
Add a build script to make it easier to use the cross compiler
Update the Makefile to build everything and pack it into the os.bin
Signed-off-by: Carlos Maiolino <[email protected]>
Diffstat (limited to 'src/kernel.asm')
| -rw-r--r-- | src/kernel.asm | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/kernel.asm b/src/kernel.asm new file mode 100644 index 0000000..93afff7 --- /dev/null +++ b/src/kernel.asm @@ -0,0 +1,27 @@ +[BITS 32] +global _start + +CODE_SEG equ 0x08 +DATA_SEG equ 0x10 + +; No access to BIOS from now on.... +_start: + ; Set all segments to the same as the DATA_SEG + mov ax, DATA_SEG + mov ds, ax + mov es, ax + mov fs, ax + mov gs, ax + mov ss, ax + + ; Set the stack pointer and base pointer further in mem + mov ebp, 0x00200000 + mov esp, ebp + + ; Enable A20 line + in al, 0x92 + or al, 2 + out 0x92, al + + jmp $ + |
