Cucumber/Kernel/src/Tier0_32/_start.asm.bak

85 lines
1.7 KiB
NASM
Raw Normal View History

2011-02-20 22:38:15 +00:00
global _start
extern kmain
; Multiboot-related constants
MODULEALIGN equ 1 << 0
MEMINFO equ 1 << 1
FLAGS equ MODULEALIGN | MEMINFO
MAGIC equ 0x1BADB002
CHECKSUM equ -(MAGIC + FLAGS)
; Other constants
2011-04-01 19:51:14 +00:00
STACKSIZE equ 0x1000
2011-02-20 22:38:15 +00:00
2011-02-21 11:23:58 +00:00
; #############################################################################
; ############################## text segment #################################
; #############################################################################
2011-02-20 22:38:15 +00:00
2011-02-21 16:29:53 +00:00
section .setup
2011-02-20 22:38:15 +00:00
align 4
2011-02-21 16:29:53 +00:00
global g_before_gdt
2011-02-20 22:38:15 +00:00
; Multiboot header
MultiBootHeader:
dd MAGIC
dd FLAGS
dd CHECKSUM
; Actual entry point
_start:
2011-02-21 11:23:58 +00:00
lgdt [falsegdt]
2011-02-21 16:29:53 +00:00
mov cx, 0x10
mov ds, cx
mov es, cx
mov fs, cx
mov gs, cx
mov ss, cx
g_before_gdt:
2011-02-21 11:23:58 +00:00
jmp 0x08:higherhalf
2011-02-21 16:29:53 +00:00
section .text
align 4
2011-02-21 11:23:58 +00:00
higherhalf:
2011-04-01 19:51:14 +00:00
mov esp, g_stack_start + STACKSIZE
2011-02-21 11:23:58 +00:00
2011-02-20 22:38:15 +00:00
push eax
2011-02-23 03:12:36 +00:00
push ebx
2011-02-20 22:38:15 +00:00
call kmain
cli
; If we are here, just loop - we're dead anyway
ohshit:
hlt
jmp ohshit
2011-02-21 11:23:58 +00:00
; #############################################################################
; ############################## setup segment ################################
; #############################################################################
section .setup
falsegdt:
dw gdt_end - gdt - 1
dd gdt
gdt:
dd 0, 0
db 0xFF, 0xFF, 0, 0, 0, 10011010b, 11001111b, 0x40
db 0xFF, 0xFF, 0, 0, 0, 10010010b, 11001111b, 0x40
gdt_end:
2011-02-20 22:38:15 +00:00
2011-02-21 11:23:58 +00:00
; #############################################################################
; ############################### bss segment #################################
; #############################################################################
2011-02-20 22:38:15 +00:00
section .bss
align 4
2011-04-01 19:51:14 +00:00
; here be 4k stack
g_stack_start:
2011-02-20 22:38:15 +00:00
resb STACKSIZE