Chinaunix首页 | 论坛 | 博客
  • 博客访问: 294150
  • 博文数量: 71
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 672
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 18:50
个人简介

为了生活努力奋斗

文章分类

全部博文(71)

文章存档

2013年(2)

2010年(1)

2009年(9)

2008年(2)

2007年(57)

我的朋友

分类: LINUX

2007-04-06 23:04:43

BIOS中断INT 0x13中,
ah=0x02,即为读磁盘扇区到内存,利用这二号服务即可读入setup模块。
说明:

al=需要读出的扇区数;   

ch=磁道号的低八位;

cl=开始扇区(位0—5),磁道号高二位(位6—7)

dh=磁头号

dl=驱动器号(若是硬盘则要置位7)

es:dx—>指向数据缓冲区

若出错则CF示志置位

 

程序:

……

load_setup:

mov dx,#0x0000       !驱动器0,磁头0;

mov cx,#0x0002       !扇区2,磁道0;

mov bx,#0x0200       !此时es已置为0x9000,则指向地址0x9200;

mov ax,#0x0200+SETUPLEN  !置为服务二,读入SETUPLEN=4个扇区;

int 0x13               !中断13;

jnc ok_load_setup      !判断是否成功;

mov dx,#0x0000         !未成功,复位磁盘;

mov ax,#0x0000         

int 0x13

j load_setup           !继续读;

ok_load_setup:

……

阅读(1527) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~