我已经制作了一个简单的启动程序,我已经编译了它,并且在我的usb的第一个扇区写了boot.bin。
但是当我在我的电脑或虚拟机中启动时,驱动器还没有找到......
引导部门代码:
;=======================================================================
; a simpliest 1.44 bootable image by shoorick ;)
;=======================================================================
_bs equ 512
_st equ 18
_hd equ 2
_tr equ 80
;=======================================================================
org 7C00h
jmp start
nop
;=====================================================
db "HE-HE OS"; ; 8
dw _bs ; b/s
db 1 ; s/c
dw 1 ; rs
db 2 ; fats
dw 224 ; rde
dw 2880 ; as
db 0F0h ; media
dw 9 ; s/fat
dw _st ; s/t
dw _hd ; h
dd 0 ; hs
dd 0 ; --
db 0 ; drv
db 0 ; --
db 29h ; ebr
dd 0 ; sn
db "NO NAME "; ; 11
db "FAT12 "; ; 8
;=====================================================
start:
mov ax,cs
mov ds,ax
mov cx,count
mov si,hello
mov bx,7
mov ah,0Eh
@@:
lodsb
int 10h
loop @B
xor ah,ah
int 16h
int 19h
hello db "Hi! This is disk-invalid!"
count = $ - hello
;=======================================================================
rb 7E00h-2-$
db 055h,0AAh
;=======================================================================
此代码由fasm的网站提供。
答案 0 :(得分:0)
引导加载程序无法工作的原因有两个:
在您的示例中,我假设您的引导加载程序大小错误(不是512字节)
尝试替换
rb 7E00h-2-$
db 055h,0AAh
与
TIMES 510-($-$$) DB 0
DW 0xAA55
这可以确保您的文件正好是512字节长,并且具有所需的引导加载程序签名