Advertisement
Guest User

Untitled

a guest
Jan 27th, 2024
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;;
  2. ; cpu_masm.asm
  3. ;;
  4. extern OsInitialize: proc
  5. extern kernel_stack_top: qword
  6.  
  7. .code
  8.  
  9. ; NO_RETURN void x64Entry(LoaderBlock*)
  10. ;
  11. ; rcx = Loader block
  12. x64Entry proc
  13.     cli
  14.     mov rsp, kernel_stack_top
  15.     jmp OsInitialize
  16. x64Entry endp
  17.  
  18. ; void ReloadSegments(u16 code_selector, u16 data_selector)
  19. ;
  20. ; dx = New data selector
  21. ; cx = New code selector
  22. ReloadSegments proc
  23.     mov ds, dx
  24.     mov es, dx
  25.     mov ss, dx
  26.     movzx rcx, cx
  27.     lea rdx, exit
  28.     push rcx
  29.     push rdx
  30.     retfq
  31. exit:
  32.     ret
  33. ReloadSegments endp
  34.  
  35. ; void LoadTr(u16 offset)
  36. ;
  37. ; cx = New task register offset
  38. LoadTr proc
  39.     ltr cx
  40.     ret
  41. LoadTr endp
  42.  
  43. end
  44.  
  45.  
  46.  
  47.  
  48. ;;
  49. ; cpu_nasm.asm
  50. ;;
  51. section .data
  52. extern kernel_stack_top
  53.  
  54. section .text
  55. extern OsInitialize
  56.  
  57. ; NO_RETURN void x64Entry(LoaderBlock*)
  58. ;
  59. ; rcx = Loader block
  60. global x64Entry
  61. x64Entry:
  62.     cli
  63.     mov rsp, kernel_stack_top
  64.     sub rsp, 32
  65.     jmp OsInitialize
  66.  
  67. ; void ReloadSegments(u16 code_selector, u16 data_selector)
  68. ;
  69. ; dx = New data selector
  70. ; cx = New code selector
  71. global ReloadSegments
  72. ReloadSegments:
  73.     mov ds, word dx
  74.     mov es, word dx
  75.     mov ss, word dx
  76.     movzx rcx, cx
  77.     lea rdx, [rel .exit]
  78.     push rcx
  79.     push rdx
  80.     retfq
  81. .exit:
  82.     ret
  83.  
  84. ; void LoadTr(u16 offset)
  85. ;
  86. ; cx = New task register offset
  87. global LoadTr
  88. LoadTr:
  89.     ltr cx
  90.     ret
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement