欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

小弟我写了一个引导扇区,用floppy writer写到虚拟软盘里面,虚拟软盘竟然废了

更新时间: 2014-01-05 03:16:36 责任编辑: Author_N1

 

我写了一个引导扇区,用floppy writer写到虚拟软盘里面,虚拟软盘竟然废了
也不是很长的一段代码,是用来读取软盘里面的一个loader.bin文件的,然后调用它来运行
写好以后,先别说运行效果了,把这个boot.bin用floppy writer写入到刚刚建的img文件里面,然后再用win image打开,想往里面放loader文件,没想到打开就提示软盘已经损坏

【软件是没有问题的,我后来用floppy writer往这个img里面写别的boot sector  就可以打开,是我代码的问题吗】

org  07c00h

baseldr equ 09000h
ofstldr equ 0100h

mov ax, cs
mov ds, ax
mov es, ax

mov ax,ds
mov ds,ax
mov dx,File
mov ax,003dh
int 21h

mov ax,baseldr
mov ds,ax
mov ax,003fh
mov dx,ofstldr
mov bx,1
mov cx,15
int 21h

mov ax,03eh
mov bx,1
int 21h

jmp baseldr:ofstldr

BootMessage: db "Hello, OS world!"
File db "LOADER  BIN", 0

times  510-($-$$) db 0 ; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw  0xaa55 ; 结束标志

--参考方法--
你这个是放到软盘引导扇区的?那问题就大了。那个引导扇区有一定的结构要求的,先是个跳转指令到后面的主要的引导代码部分;然后是版本字符串,这个倒不算关键;再后面是磁盘参数块,这个是文件方式访问磁盘的关键;然后是主要的引导代码;最后是引导标记。你这个,关键是没有磁盘参数块部分,所以写入后磁盘文件无法正常访问,就被告知损坏了。还有个要么的问题,你在引导代码里竟然使用 int21h 功能调用?这时还没有 dos 呢,怎么能用 dos 的功能调用呢?只能用 int10h/16h 这样的 bios 功能调用。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:16:36
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20292/
本文WWW.DOC100.NET DOC100.NET版权所有。