Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [org 0x7E00]
- [bits 16]
- jmp stage2
- gdt_start:
- CODE_SEG equ code - gdt_start
- DATA_SEG equ data - gdt_start
- null: dq 0x0000000000000000 ;null
- code: dq 0x00CF9A000000FFFF ;code
- data: dq 0x00CF92000000FFFF ;data
- gdtr:
- dw gdtr - gdt_start - 1
- dd gdt_start
- stage2:
- ;gdt & protected mode
- cli
- lgdt [gdtr]
- mov eax, cr0
- or eax, 0x01
- mov cr0, eax
- jmp CODE_SEG:_start
- jmp $
- [bits 32]
- _start:
- ;Segment reload
- mov ax, DATA_SEG
- mov ds, ax
- mov es, ax
- mov fs, ax
- mov gs, ax
- mov ss, ax
- a20:
- ;a20 line
- in al, 0x92
- or al, 0x02
- out 0x92, al
- mov ebp, 0x90000
- mov esp, ebp
- mov eax, [0xC0000]
- mov ebx, $
- mov [eax], ebx
- jmp CODE_SEG:kernel
- label:
- mov ecx, 0xB8000
- mov byte [ecx], 'E'
- jmp $
- build:
- times 256-($-$$) db 0
- kernel:
Advertisement
Add Comment
Please, Sign In to add comment