Qemu中自定义引导加载器重复输出消息并挂起的问题求助
Qemu中自定义引导加载器重复输出消息并挂起的问题求助
大家好,我正在为一个操作系统编写引导加载器,经过一番调试后找到了它挂起的位置。这个OS基于16位实模式开发(不过如果必须切换到保护模式才能解决问题的话,我也可以尝试这么做)。
下面是加载第二阶段的代码片段:
; Load the second stage mov ah, 0x02 ; BIOS read function mov al, 2 ; Number of sectors to read mov ch, 0 ; Cylinder 0 mov cl, 2 ; Sector 2 (1-indexed) mov dh, 0 ; Head 0 mov dl, [0x7C1E] ; Drive number mov bx, SECOND_STAGE_ADDRESS ; Where to load the second stage int 0x13 ; BIOS interrupt to read sectors jc error ; If carry flag was set, there was an error
目前我遇到的主要问题有两个:
- 它会反复将CR0寄存器更新为
0x00000010,然后又改成0x00000011 - 运行一段时间后,就开始不断输出
check_exception old: 0xffffffff new 0x6的信息,直到系统完全挂起
调试日志里也能看到这些异常信息在持续重复出现。
备注:内容来源于stack exchange,提问作者Luka Talevski
相关产品推荐
相关产品推荐

