Advertisement
atm959

Ayy

Jun 29th, 2019
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. BITS 16
  2. ORG 7C00h
  3.  
  4. start:
  5.     cli
  6.    
  7.     mov ah, 02h
  8.     mov al, 1
  9.     mov ch, 0
  10.     mov dh, 0
  11.     mov cl, 2
  12.     mov bx, loadLocation
  13.     int 13h
  14.    
  15.     xor ax, ax
  16.     push ax
  17.     popf
  18.     mov ds, ax
  19.     lgdt [gdt_desc]
  20.     mov eax, cr0
  21.     or eax, 1
  22.     mov cr0, eax
  23.     jmp 08h:protectedModeBegin
  24.  
  25. BITS 32
  26.  
  27. protectedModeBegin:
  28.     mov ax, 10h
  29.     mov ds, ax
  30.     mov ss, ax
  31.     mov esp, 90000h
  32.  
  33.     mov [0B8000h], BYTE 'P'
  34.     mov [0B8001h], BYTE 1Bh
  35.    
  36.     jmp loadLocation
  37.  
  38. gdt:
  39. gdt_null:
  40.     dq 0
  41. gdt_code:
  42.     dw 0FFFFh
  43.     dw 0
  44.     db 0
  45.     db 10011010b
  46.     db 11001111b
  47.     db 0
  48. gdt_data:
  49.     dw 0FFFFh
  50.     dw 0
  51.     db 0
  52.     db 10010010b
  53.     db 11001111b
  54.     db 0
  55. gdt_end:
  56.  
  57. gdt_desc:
  58.     dw gdt_end - gdt
  59.     dd gdt
  60.  
  61.     times 510-($-$$) db 0
  62.     dw 0AA55h
  63.    
  64. loadLocation:
  65.     mov [0B8002h], BYTE 'L'
  66.     mov [0B8003h], BYTE 1Bh
  67.  
  68. .loop:
  69.     jmp .loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement