11th
Ноя

Переход из реального режима в защищённый

Posted by Chas under Пост-обзор

rpy3uH:
я делал что-то в этом духе (FASM)

       xor eax,eax
       mov ax, cs
       shl eax,4
       add eax, PROTECTED_MODE_ENTRY_POINT
       mov [ENTRY_OFF],eax

       xor eax,eax
       mov ax,cs
       shl eax,4
       add ax, GDT

       mov dword [GDTR+2],eax
       lgdt fword [GDTR]

       cli
       in al,70h
       or al,80h
       out 70h,al

       mov eax,cr0
       or al,1
       mov cr0,eax

       db 66h
       db 0EAh
ENTRY_OFF dd PROTECTED_MODE_ENTRY_POINT
       dw CODE_SELEKTOR

align 8
GDT:
;дескрипторы…………….

label GDTR fword
       dw GDT_size-1
       dd ?

use32

USER_PM_CODE_BASE_ADDRESS EQU 0100000h

PROTECTED_MODE_ENTRY_POINT:
       ;загрузка регистров DS, SS, ES

       call delta
     delta:
       pop ebx
       add ebx, USER_PM_CODE_START-delta

       mov esi, ebx
       mov edi, USER_PM_CODE_BASE_ADDRESS
       mov ecx, USER_PM_CODE_SIZE
       rep movsb

       mov eax,USER_PM_CODE_BASE_ADDRESS
       jmp eax

USER_PM_CODE_START:
ORG USER_PM_CODE_BASE_ADDRESS

       include ‘PM_CODE.ASM’;

USER_PM_CODE_END:

тема на форуме

Похожие статьи