【问题标题】:Qemu Booting from floppy hang, BootloaderQemu 从软盘挂起引导,引导加载程序
【发布时间】:2014-07-16 04:55:17
【问题描述】:

我有一个非常简单的引导加载程序,我正在尝试在 linux 中通过 qemu 运行。

但是 qemu 空闲并显示“从软盘启动”

我不知道如何让它工作! 我已经包含了引导加载程序代码和 makefile 脚本。

这是引导加载程序的代码

org 0
bits 16
jmp boot1

bootmsg db "Preparing to Load Operating System", 0x0a,0x0d,0x0
print:
or al,al
jz .printdone
lodsb
mov ah,0x0e
int 0x10
jmp print


.printdone:
ret



boot1:
cli
mov ax,0x07c0

mov ds,ax
mov es,ax
mov ax,0x0000
mov ss,ax
mov sp,0x07c0
sti

mov si,bootmsg
call print
hlt



times 510-($-$$) db 0
dw 0xAA55

这是我的 Makefile 脚本

boot.bin: boot.asm
    nasm -f bin boot.asm -o boot.bin

boot.img: boot.bin
    dd if=/dev/null of=boot.img count=1 bs=512
    dd if=boot.bin of=boot.img conv=notrunc

qemu: boot.img
    qemu -fda boot.img
clean: 
    rm *.bin *.img

【问题讨论】:

    标签: operating-system kernel qemu bootloader


    【解决方案1】:

    检查之前的 lodsb

    bootmsg db "Preparing to Load Operating System", 0x0a,0x0d,0x0
    print:
    lodsb
    or al,al
    jz .printdone
    
    mov ah,0x0e
    int 0x10
    jmp print
    
    
    .printdone:
     ret
    

    【讨论】:

      猜你喜欢
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 2023-02-21
      • 2018-09-09
      • 2020-10-21
      • 1970-01-01
      • 2016-01-16
      相关资源
      最近更新 更多