kernel_premier/loader.s
2023-09-12 23:35:30 +02:00

35 lines
844 B
ArmAsm

global loader ; symbole d'entrée pour le format ELF
; valeurs pour l'entête de multiboot (https://www.gnu.org/software/grub/manual/multiboot/html_node/Header-magic-fields.html#Header-magic-fields)
MAGIC_NUMBER equ 0x1BADB002 ; obligatoire
FLAGS equ 0x0 ; configuration de multiboot
CHECKSUM equ -MAGIC_NUMBER ; cf. documentation
KERNEL_STACK_SIZE equ 4096
section .bss
align 4
kernel_stack:
resb KERNEL_STACK_SIZE
section .text
align 4
dd MAGIC_NUMBER
dd FLAGS
dd CHECKSUM
loader:
; écrite la lettre A dans le framebuffer
; mov word [0xB8000], 0x0F41
; le registre esp contient le pointeur vers la stack
mov esp, kernel_stack + KERNEL_STACK_SIZE
extern kmain
call kmain
;extern fb_write_cell
;push dword 0x00
;push dword 0x0F
;push dword 0x41
;call fb_write_cell
mov eax, 0xCAFEBABE
.loop:
jmp .loop