ZealOS/zealbooter/trampoline.S

38 lines
494 B
ArmAsm
Raw Normal View History

2022-08-20 15:13:06 +01:00
.section .text
2022-08-21 16:42:32 +01:00
.global trampoline
trampoline:
lgdt (%rcx)
pushq $0x30
2022-08-21 16:42:32 +01:00
addq $(1f - trampoline), %rax
2022-08-20 15:13:06 +01:00
pushq %rax
lretq
.code32
1:
mov $0x10, %eax
2022-08-20 15:13:06 +01:00
mov %eax, %ds
mov %eax, %es
mov %eax, %fs
mov %eax, %gs
mov %eax, %ss
mov %cr0, %eax
btr $31, %eax
mov %eax, %cr0
mov $0xc0000080, %ecx
xor %eax, %eax
xor %edx, %edx
wrmsr
mov %ebx, %eax
mov $2, %ebx
jmp *%eax
2022-08-21 16:42:32 +01:00
.global trampoline_end
trampoline_end: