-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbitsOper.asm
More file actions
74 lines (60 loc) · 923 Bytes
/
bitsOper.asm
File metadata and controls
74 lines (60 loc) · 923 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
[BITS 32]
[ORG 0x1000]
en64:
call stp64
lgdt[gdt64bLoc]
jmp 0x08:safeMode64
align 8
gdt64b:
dq 0x0000000000000000
dq 0x00AF9A000000FFFF
dq 0x00AF92000000FFFF
gdt64bEnd:
gdt64bLoc:
dw gdt64bEnd - gdt64b - 1
dd gdt64b
align 4096
pml4_table:
dq pdpt_table + 3
align 4096
pdpt_table:
dq pd_table + 3
align 4096
pd_table:
dq pt_table + 3
times 511 dq 0
align 4096
pt_table:
%assign i 0
%rep 512
dq (i * 0x1000) + 3
%assign i i+1
%endrep
stp64:
mov eax, cr4
or eax, 1 << 5
mov cr4, eax
mov eax, pml4_table
mov cr3, eax
mov ecx, 0xC0000080
rdmsr
or eax, 1 << 8
wrmsr
mov eax, cr0
or eax, 1 << 31
mov cr0, eax
ret
[BITS 64]
safeMode64:
mov ax, 0x10
mov ds, ax
mov es, ax
mov ss, ax
mov fs, ax
mov gs, ax
mov rsp, 0xA0000
mov rdi, 0xB8000
mov al, '6'
mov ah, 0x0F
stosw
jmp $;0x200000