global switch_cs,check_mode,_sgdt
_sgdt: enter 16,0
sgdt [rbp-16] ; legt Limit und Basisasdresse ab
mov rax,[rbp-14]
leave
ret
switch_cs:
enter 8,0
lea eax,[rel L1]
mov [rbp-8],eax ;32-Bit-Offset (hoffentlich)
mov [rbp-4],ecx ;Code-Selektor (0x23?)
call far dword[rbp-8]
leave
ret
bits 32
L1: call edx
retf
bits 64
; returns false for 32-bit mode; true for 64-bit mode
check_mode:
xor eax, eax
; In 32-bit mode, this instruction is executed as
; inc eax; test eax, eax
test rax, rax
setz al
ret
Vorgefundene Kodierung: UTF-8 | 0
|