физический адрес недоступен при смене режима с защищенного режима на x86-64 - PullRequest
0 голосов
/ 03 мая 2020

Буквально, я просто застрял в инструкции, которая изменяет регистр cr0.

Вот мой код, который выполняет переход с i386 на x86-64.


global switch64BitKernel

SECTION .text

switch64BitKernel:
    mov eax, cr4
    or eax, 0x20
    mov cr4, eax

    mov eax, 0x100000
    mov cr3, eax

    mov ecx, 0xC0000080
    rdmsr

    or eax, 0x0100
    wrmsr

    mov eax, cr0
    or eax, 0xE0000000
    xor eax, 0x60000000
    mov cr0, eax

    jmp 0x08:0x200000

    jmp $

0x100000: PML4 Entry, 0x200000: код x86-64

Весь код: os.zip

А это сообщение об ошибке отладчика bochs:

...