为什么进入保护模式后,不能调用BIOS例程
我没有搞明白:为什么进入保护模式后,不能调用BIOS例程吗? 请大家帮忙解惑。你说的BIOS例程是指Int X系列? 因为BIOS例程都是16位的实模式代码。在保护模式下,别的不说,光是加载段寄存器,就不一样。
mov ds, ax
在bios代码看来,是将ax的内容乘以16。但保护模式看来ax里是段选择子,要用它去描述符表里找对应的段描述符。 站长 发表于 2024-4-27 09:46
因为BIOS例程都是16位的实模式代码。在保护模式下,别的不说,光是加载段寄存器,就不一样。
mov ds, ax
在 ...
哦,明白了。谢谢老师 老师,我再问一下:即使把BIOS例程的中断调用读取出来,整理成保护模式下的中断描述符,并正确加载IDTR,也会因为BIOS例程是16位代码操作尺寸而无法运行。我这样理解对吗? 大江 发表于 2024-4-28 09:15
老师,我再问一下:即使把BIOS例程的中断调用读取出来,整理成保护模式下的中断描述符,并正确加载IDTR,也 ...
是的。这个事情与中断如何处理无关,只与中断处理过程的代码有关。 站长 发表于 2024-4-28 09:39
是的。这个事情与中断如何处理无关,只与中断处理过程的代码有关。
好的,谢谢
页:
[1]