在实模式转换到保护模式时碰到一个关于 lgdt 指令的问题
str.rar
(1.3 KB)
附件里包含了源代码文件 str.asm和已经编译好的str.exe
在使用debug 调试 str.exe 到 lgdt 指令后直接退出调试
如题,代码如下:
pdesc struc
limit dw 0
base dd 0
pdesc ends
.386p
dseg segment
gdt label byte
<其他代码>
gdtlen =$-gdt
vgdtr pdesc <gdtlen-1,>
dseg ends
cseg segment use16
assume cs:cseg,ds:dseg
<其他代码>
lgdt qword ptr vgdtr //这里出现问题,反汇编得到的是 db 0f 为什么会调试到这里就直接跳出debug了呢?
cli
call ea20
mov eax,cr0
or eax,1
mov cr0,eax
cseg ends
end start
[ 本帖最后由 yan031 于 2012-2-13 15:08 编辑 ]