blob: 063ac744bc095b56310de1d6dd6f6fac7df02612 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
; MIT License, Copyright (c) 2021 Marvin Borner
bits 32
MAGIC equ 0xe85250d6
ARCHITECHTURE equ 0
HEADER_LENGTH equ multiboot_header_end - multiboot_header_start
CHECKSUM equ 0x100000000 - (MAGIC + ARCHITECHTURE + HEADER_LENGTH)
multiboot_header_start:
dd MAGIC
dd ARCHITECHTURE
dd HEADER_LENGTH
dd CHECKSUM
entry_address_tag_start:
dw 3
dw 0
dd entry_address_tag_end - entry_address_tag_start
dd 0 ; low
dd boot_entry ; high
entry_address_tag_end:
framebuffer_tag_start:
dw 5
dw 0
dd framebuffer_tag_end - framebuffer_tag_start
dd 1920
dd 1200
dd 32
framebuffer_tag_end:
dw 0
dw 0
dd 8
multiboot_header_end:
global boot_entry
extern kernel_main
boot_entry:
mov esp, stack_top
push esp
push ebx
push eax
cli
call kernel_main
hlt
jmp $
section .bss
align 32
stack_bottom:
resb 0x4000
stack_top:
|