os-elephant
os-elephant copied to clipboard
`c04/a/boot /loader.S` qemu-system-i386 cpu会概率性重置
times 60 dq 0
+lgdt [gdt_ptr]
会导致qemu-system-i386 cpu概率性重置, 怀疑gdt只允许第一个选择子为0, 其他不能为0.
也可能c04/a/boot/mbr.S有问题,因为连续读取多个扇区时,需要检查下一扇区的数据是否已就位, 否则会读到0.
请问这个问题解决了吗 @meilihao
请问这个问题解决了吗 @meilihao
参考楼主的实现解决了。问题原因是mbr.S和loader.S中的读硬盘的实现有问题。此外需要在加载GDT前关闭中断(cli指令)。修改之后就可以在qemu/virtualbox运行了。
我印象中修正了读取硬盘的实现后就解决了.