Guest User

Untitled

a guest
Dec 17th, 2023
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. [org 0x7E00]
  2. [bits 16]
  3.  
  4. jmp stage2
  5. gdt_start:
  6. CODE_SEG equ code - gdt_start
  7. DATA_SEG equ data - gdt_start
  8. null: dq 0x0000000000000000 ;null
  9. code: dq 0x00CF9A000000FFFF ;code
  10. data: dq 0x00CF92000000FFFF ;data
  11.  
  12. gdtr:
  13.     dw gdtr - gdt_start - 1
  14.     dd gdt_start
  15. stage2:
  16.     ;gdt & protected mode
  17.     cli
  18.     lgdt [gdtr]
  19.     mov eax, cr0
  20.     or eax, 0x01
  21.     mov cr0, eax
  22.     jmp CODE_SEG:_start
  23.     jmp $
  24. [bits 32]
  25. _start:
  26.     ;Segment reload
  27.     mov ax, DATA_SEG
  28.     mov ds, ax
  29.     mov es, ax
  30.     mov fs, ax
  31.     mov gs, ax
  32.     mov ss, ax
  33. a20:
  34.     ;a20 line
  35.     in al, 0x92
  36.     or al, 0x02
  37.     out 0x92, al
  38.  
  39.     mov ebp, 0x90000
  40.     mov esp, ebp
  41.  
  42.     mov eax, [0xC0000]
  43.     mov ebx, $
  44.     mov [eax], ebx
  45.     jmp CODE_SEG:kernel
  46. label:
  47.     mov ecx, 0xB8000
  48.     mov byte [ecx], 'E'
  49.     jmp $
  50. build:
  51.     times 256-($-$$) db 0
  52. kernel:
  53.  
Advertisement
Add Comment
Please, Sign In to add comment