bootsect.S首先将自身移动到0x90000地址处,接着LOAD了setup.S到0x90200,system模块加载到了0x10000,然后又移动到0x0000,为什么?
bootsect为什么不直接把system模块直接加载到0x0000处,而是在setup程序中移动呢?
因为setup前一部分要用到BIOS提供的中断,而中断向量表是保存在0x0000的,因此要等不再使用它的时候再覆盖掉。
bootsect.S首先将自身移动到0x90000地址处,接着LOAD了setup.S到0x90200,system模块加载到了0x10000,然后又移动到0x0000,为什么?
bootsect为什么不直接把system模块直接加载到0x0000处,而是在setup程序中移动呢?
因为setup前一部分要用到BIOS提供的中断,而中断向量表是保存在0x0000的,因此要等不再使用它的时候再覆盖掉。