не понял так чего делать,
и под каким режимом?
Цитата:
ADD. По коду: первой же командой после переключения в защищённый режим должен быть дальний (межсегментный) переход, без которого не вступит в действие новый сегмент кода. А далее надо перезагружать сегментные регистры данных и стека -- по той же причине.
как то результат такой же
Код:
CLI
LGDT [GDTR]
in al, 0x92
or al, 2
out 0x92, al
in al,70h
and al,07FH
out 70h,al
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
wait
MOV EAX, CR0
OR AL, 1
MOV CR0, EAX
JMP FAR 08h:PModeMain
PModeMain:
mov ax,8
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ecx, 0FFh
mov edi, 110000h
mov AL, '<'
mov [0x01000000],eax
mov [0x01000000+1],eax
mov [0x01000000+2],eax
mov [0x01000000+3],eax
rep stosb
STI
LIDT [IDTR]
hlt
IRET
вот так записть идёт в адрес 0000h
Цитата:
CLI
LGDT [GDTR]
a20_on
MOV EAX, CR0
OR AL, 1
MOV CR0, EAX
mov ax, 8
mov fs, ax
mov gs, ax
mov ax, 10h
mov ds, ax
mov es, ax
JMP FAR 08h:PModeMain
PModeMain:
mov ecx, 0FFh
mov edi, 110000h
mov AL, '<'
mov [100050h],eax
mov [100050h+4],eax
mov [100050h+8],eax
mov [100050h+12],eax
rep stosb
STI
hlt
IRET
a20 заменил макросом.