os-elephant icon indicating copy to clipboard operation
os-elephant copied to clipboard

`c04/a/boot /loader.S` qemu-system-i386 cpu会概率性重置

Open meilihao opened this issue 1 year ago • 3 comments

times 60 dq 0+lgdt [gdt_ptr]会导致qemu-system-i386 cpu概率性重置, 怀疑gdt只允许第一个选择子为0, 其他不能为0.

meilihao avatar May 28 '23 18:05 meilihao

也可能c04/a/boot/mbr.S有问题,因为连续读取多个扇区时,需要检查下一扇区的数据是否已就位, 否则会读到0.

meilihao avatar May 31 '23 09:05 meilihao

请问这个问题解决了吗 @meilihao

Hurray0 avatar Apr 30 '24 09:04 Hurray0

请问这个问题解决了吗 @meilihao

参考楼主的实现解决了。问题原因是mbr.S和loader.S中的读硬盘的实现有问题。此外需要在加载GDT前关闭中断(cli指令)。修改之后就可以在qemu/virtualbox运行了。

Hurray0 avatar May 01 '24 02:05 Hurray0

我印象中修正了读取硬盘的实现后就解决了.

meilihao avatar May 06 '24 02:05 meilihao