[r30]: trunk / multiboot.asm History

Download this file

multiboot.asm    60 lines (48 with data), 1.1 kB

 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
52
53
54
55
56
57
58
59
60
.686p
_TEXT segment para public alias(".atext") ".text"
extrn _kernel_init:PROC
public _kentry
public _ntentry
MULTIBOOT_HEADER_MAGIC equ 01BADB002h
MULTIBOOT_HEADER_FLAGS equ 000010003h
MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
_ntentry:
ret
align 4
MultibootHeader:
_Magic DD MULTIBOOT_HEADER_MAGIC
_Flags DD MULTIBOOT_HEADER_FLAGS
_Checksum DD MULTIBOOT_CHECKSUM
_Header_Addr DD MultibootHeader
_load_addr DD MultibootHeader
_Load_End_Addr DD _DataEnd
_Bss_End_Addr DD _BssEnd
_Entry_Addr DD _kentry
_mode_type DD 0
_width DD 0
_height DD 0
_depth DD 0
_kentry:
cli
cld
mov esp, 09000h
push ebx
push eax
call _kernel_init
cli
hlt
jmp $
_TEXT ends
_Zdata segment para public alias(".zdata$z") ".data"
public _DataEnd
_DataEnd dd ?
_Zdata ends
_Abss segment alias(".abss$a") ".bss"
public _BssBegin
_BssBegin dd ?
_Abss ends
_zbss segment alias(".zbss$z") ".bss"
public _BssEnd
_BssEnd dd $
_zbss ends
end