Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use16
- org 0x7c00
- boot:
- jmp 0x0000:start
- start:
- mov ax,0x4F02
- mov bx,0x4118
- int 0x10
- cli
- xor ax,ax
- mov ds,ax
- lgdt fword [GDTRI]
- in al, 0x92
- or al, 2
- out 0x92, al
- mov al,0x8F
- out 0x70,al
- in al,0x71
- mov eax, cr0
- or al, 1
- mov cr0, eax
- jmp 0x8: protected_mode
- use32
- protected_mode:
- mov ax,16
- mov ds,ax
- mov es,ax
- mov ax,24
- mov ss,ax
- mov esp,0xB7FFF
- mov edi,0xA0000
- mov cx,65535
- loop1:
- mov byte [es:edi],255
- inc edi
- loop loop1
- mov cx,65535
- loop2:
- mov byte [es:edi],255
- inc edi
- loop loop2
- exit:
- hlt
- jmp exit
- ;-------------------------------------------------
- align 8
- GDT:
- GDT0:
- dq 0
- GDT1:
- dw 0xFFFF ;15...0 predel 15...0
- dw 0 ;31...16 adress 15...0
- db 0 ;39...32 adress 23...16
- db 10011000b ;47...40 P DPL S tip A
- db 11001111b ;55...48 G D X Y predel 19...16
- db 0 ;63...56 adress 31...24
- GDT2:
- dw 0xFFFF
- dw 0
- db 0
- db 10010100b
- db 11001111b
- db 0
- GDT3:
- dw 0x7FFF
- dw 0x77FF ; 0xB8000-2048-1
- db 0xB ;/
- db 10010110b
- db 11001010b
- db 0
- GDTRI:
- dw GDTRI-GDT0-1
- dd GDT
- ;-------------------------------------------------
- finish:
- times 0x1FE-finish+boot db 0
- db 0x55, 0xAA
- ;------------------------------------------------------------------------------
- ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ;------------------------------------------------------------------------------
- org 0x7E00
Advertisement
Add Comment
Please, Sign In to add comment