42-archive/kernel-rs/src/arch/x86/boot.asm
2018-02-12 17:08:06 +01:00

35 lines
841 B
NASM

global start
extern kmain
section .text
bits 32
start:
; print `OK` to screen
; mov dword [0xb8000], 0x2f4b2f4f
; mov word [0xb8000], 0x0248 ; H
; mov word [0xb8002], 0x0265 ; e
; mov word [0xb8004], 0x026c ; l
; mov word [0xb8006], 0x026c ; l
; mov word [0xb8008], 0x026f ; o
; mov word [0xb800a], 0x022c ; ,
; mov word [0xb800c], 0x0220 ;
; mov word [0xb800e], 0x0277 ; w
; mov word [0xb8010], 0x026f ; o
; mov word [0xb8012], 0x0272 ; r
; mov word [0xb8014], 0x026c ; l
; mov word [0xb8016], 0x0264 ; d
; mov word [0xb8018], 0x0221 ; !
lgdt [gdt_info]
call kmain
hlt
; WARNING: Do not insert random label/lines between gdt_xxx label
gdt_start:
;TODO GDT entries, like null, kernel code, kernel data, user code, user data, TSS...
gdt_info:
dw gdt_info - gdt_start - 1
dq gdt_start
section .bss
resb 64
head_stack: