在引导加载程序上指定文件系统

问题描述 投票:0回答:0

我有一个简单的引导加载程序代码来显示一条 hello world 消息,当从 USB 驱动器闪存到引导扇区时它可以正常工作,但是当访问文件时,磁盘变成 RAW,当格式化为 NTFS 自定义 MBR 时消失 这是我写的代码:

BITS    16
ORG     0x7c00
jmp start

start:
        call clear_screen
        mov ax,cs
        mov ds,ax
        mov si,msg

        call print

print:
        push ax
        cld
next:
        mov al,[si]
        cmp al,0
        je done
        call printchar
        inc si
        jmp next
done:
        jmp $

printchar:
        mov ah,0x0e
        int 0x10
        ret

clear_screen:
        mov ah, 0x07
        mov al, 0x00
        mov bh, 0x02 ; here goes the foreground color
        mov cx, 0x0000 
        mov dx, 0x184f
        int 0x10
        ret

msg:            db        "Hello World"
times 510 - ($-$$) db 0
dw        0xAA55

在 HXD 上,我查看了 MBR 结构并发现了以下内容:

EB 52 90 4E 54 46 53 20 20 20 20
这转化为
???NTFS????
我尝试将其粘贴到引导加载程序的第一个字节中,但它没有启动,我还尝试将代码向右移动并将此标头粘贴到空白处,但什么也没有 我是 OSDev 的新手,所以这看起来像是一个愚蠢的问题

assembly bootloader boot bios
© www.soinside.com 2019 - 2024. All rights reserved.