


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用BIOS的int 0x13中断读取一个扇区当我们使用0x13中断读取一个扇区的时候,实际上我们会用到这个中断的两个功能。首先,是功能号0x02,其作用是读取扇区内容到指定内存区域。因为这是一个低级功能,在一个操作中读取的全部扇区必须在同一条磁道上(磁头号和磁道号相同)。参数寄存器涵义AH功能号=0x02,指明要使用读取扇区的功能AL需要读取的扇区的数量CH磁道号的低8位CL0-5位表示从哪个扇区开始读取。6-7位是磁道号的高2位DH磁头号DL驱动器号ES:BX数据缓冲区。就是把扇区的内容读到ES:BX这个位置返回值如果出错,标志寄存器CF置位,AH中存放出错码现在给出一个例子。假如我们想读取软盘上的第二扇区,该怎么办呢?我们得回答几个问题,以确定上面那个表格里提到的各个参数的具体赋值。参数寄存器涵义AH使用功能号0x02,所以AH=0x02AL我们就读一个扇区,所以AL=0x01CH我们就读第一个磁道上的扇区,第一个磁道是磁道0。0x0=0b00 0000 0000, 所以CH=0x00CL我们读取第2扇区,再根据上面磁道是0,CL=0b00 00010=0x02DH第2个扇区,磁头0,所以DH=0x00DL我们只有一个软盘驱动器,也就是驱动器0,DL=0x00ES:BX读到哪里去呢?假如我们把数据放到0x90000开始,偏移0x0200的地方。那么在16位环境下,ES=0x900004 =0x9000, BX=起始偏移=0x0200返回值不归我们管参数准备好了,我们还要考虑什么呢?假如读取失败了,我们怎么办?按照最开始的描述,如果读取失败了,CF会置位,出错码会放到AH中。我们不搞高深的开发,那个AH出错码我们看不懂也懒得看!但是我们可以利用CF来判断是否出错。如何判断CF标志位呢?Intel汇编里有两个跳转命令,jc 和 jnc.JC:Jump if Carry 即CF=1,则跳转JNC:Jump if Not Carry即CF=1,则跳转我们可以在程序中利用这两个指令来帮助我们进行判断和程序流程的转移.如果真的出错了,咋办呢?我用到这个功能的时候是在学习Linux引导代码的时候。目的当然是实验成功了,因此,如果出错,那就无脑重试,直到成功啊!这里我们用到另外一个0x13中端的功能,功能号0x00 ,其作用是复位驱动器。参数寄存器涵义AH功能号. 复位驱动器时=0DL需要复位的驱动器的编号这个看上去很简单啊,我们显然使用如下参数参数寄存器涵义AHAH=0x00,顺带把AL =0x00DLDL =0x00,顺带把DH=0x00于是,我们的代码如下:load_setup:mov ax, #0x9000mov es, axmov dx, #0x0000!DH = 0x00, DL = 0x00mov cx, #0x0002!CH = 0x00, CL = 0x02,综合起来磁道=0,起始扇区=2mov bx, #0x0200!es:bx = 0x9000:0x0200,也就是放到 0x90000+0x0200 = 0x90200mov ah, #0x02mov al, #0x01int 0x13jnc ok_load_setup !如果成功,离开这个循环mov dx, #0x0000!如果失败,复位驱动器,重新再来mov ax, #0x0000int 0x13j load_setup!又跳回到上面继续ok_load_setup:.!后续的代码磁盘错误状态AH=00H 未出错01H 非法功能调用命令区。02H 地址标记损坏,扇区标识(ID)无效或未找到。03H 企图对有写保护的软盘执行写操作。04H 所寻找的扇区没找到。05H 复位操作失败。06H 无介质。07H 初始化错误,数据未存在DMA的64K缓冲区内。08H DMA故障09H DMA边界错误,数据未存在DMA的64K缓冲区内。0AH 检测出错误码率的扇区标志。0BH 所寻找的磁道没找到。0CH 介质类型没发现。0DH 扇区号有问题。0EH 发现控制数据地址标记。0FH 超出DMA边界10H 读磁盘时奇偶校验错,且纠错码(EDC)不能纠正。11H 读磁盘时奇偶校验错,但纠错码(EDC)已纠正错误。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借用对方资质的协议合同
- 期房购房协议补充协议书
- 美团短期2个月合同协议
- 非标门窗安装合同协议书
- 投标类合同转让协议范本
- 电缆分支箱购买合同协议
- 亚马逊代运营易合同范本
- 人教版七年级地理下册教学目标计划
- 打包机合同协议样板模板
- 疫情期间认购协议书模板
- 孟良崮战役课件
- 幼儿园物资采购应急预案(3篇)
- 党群服务面试题目及答案
- 卫生院医疗质量管理方案
- 2025-2026秋季学年第一学期【英语】教研组工作计划:一路求索不停歇研思共进踏新程
- 2025年山东省济南中考数学试卷及标准答案
- 叉车考试模拟试题及答案完整版
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 2025-2026学年冀教版(2024)小学数学三年级上册教学计划及进度表
- 第1课 鸦片战争 课件 历史统编版2024八年级上册
- 物业管理师职业技能竞赛理论知识试题题库(1000题)
评论
0/150
提交评论