.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