现在的位置: 首页 > 综合 > 正文

可以引导的IMG文件制作!

2014年02月22日 ⁄ 综合 ⁄ 共 1341字 ⁄ 字号 评论关闭

最近在研究《自己动手写操作系统》有了点进步想记录并分享一下!

根据《自己动手写操作系统》一书自己完成可以引导的IMG软盘映像!

工具:NASM汇编编译器,virtual PC 2007,FloppyWriter;

需要知识: NASM汇编

编写boot.asm:

///////////////////////////////////////////////////////////////////////////////////////////

org 07c00h                                          ;程序加载到7C00h处
mov ax ,  cs                                         
mov ds ,  ax
mov es ,  ax                                             ;将代码段地址付给 ds es
call DispStr                                            ;调用显示字符串例程
jmp $
DispStr:
 mov ax , BootMessage
 mov bp , ax                                             ;es:bp指向字符串地址
 mov ax , 01301h                                    ; ah=13 , al = 01h  ah表示调用13号功能 al表示光标
 mov bx , 000ch                                       ;bh表示0页 bl表示字体颜色
 mov dl , 0                                                ;dh dl 表示行列
 int 10h
 ret
BootMessage:  db "HELLO,OS WORLD!"
times 510 - ($-$$) db 0  
dw 0xaa55

//////////////////////////////////////////////

编译方式: nasm boot.asm -o boot.bin

生成boot.bin文件,再用FloppyWriter生成IMG镜像文件

再用EsayBoot将boot.img大小改为1440kb(virtual PC 2007 要求软盘映像为720KB活着1.44MB)

 关于BIOS的10号中断:

INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内。使用 INT 10H 中断服务程序时,先指定 AH 寄存器为调用功能号,在本例中用到了13号功能具体入口参数:

ES:BP = 串地址

CX = 串长度

DH , DL 为其实行,列

BH = 页号

       AL = 0,BL = 属性
  串:Char,char,……,char
  AL = 1,BL = 属性
  串:Char,char,……,char
  AL = 2
  串:Char,attr,……,char,attr
  AL = 3
  串:Char,attr,……,char,attr

第一次写文章不知道从哪入手! 大家多指教!

抱歉!评论已关闭.