软盘

  • 80个柱面,2个磁头,18个扇区
  • 每个扇区 512 字节,共 1440 KB

读磁盘汇编

读取 10 个柱面到 0x0820 内存位置

	;读取磁盘
MOV AX,0x0820
MOV ES,AX
MOV CH,0 ;柱面 0
MOV DH,0 ;磁头 0
MOV CL,2 ;扇区 2 readloop:
MOV SI,0 ;记录失败次数
retry:
MOV AH,0x02 ;读盘指令号
MOV AL,1 ;1 个扇区
MOV BX,0 ;ES:BX 为缓冲地址,即 0x8200
MOV DL,0x00 ;A 驱动器
INT 0x13 ;调用磁盘 BIOS
JNC next ;jump if not carry 没错跳到 fin
ADD SI,1
CMP SI,5
JAE error ;jump if above or equal >5 跳转
MOV AH,0x00
MOV DL,0x00
INT 0x13 ;重置驱动器(系统复位)
JMP retry
next:
MOV AX,ES
ADD AX,0x0020
MOV ES,AX
ADD CL,1
CMP CL,18 ;读 18 个扇区
JBE readloop
MOV CL,1
ADD DH,1
CMP DH,2 ;读 2 个磁头
JB readloop
MOV DH,0
ADD CH,1
CMP CH,CYLS ;读 10 个柱面
JB readloop MOV [0x0ff0],CH ;将读取到的柱面数量写入内存地址 0x0ff0
JMP 0xc200 error:
MOV SI,msg

  

最新文章

  1. MapReduce工作原理讲解
  2. jquery中取消和绑定hover事件的正确方式
  3. Oracle数据库编程:使用PL/SQL编写触发器
  4. 【风马一族_Android】Android 前端内容
  5. ios开发--网页中调用JS与JS注入
  6. Proguard 保留native methods的问题
  7. C#中隐式操作CMD命令行窗口
  8. perl lwp get uft-8和gbk
  9. T-SQL函数及用法--转
  10. 真机iOS SDK升级后xcode不能进行真机调试 怎么办
  11. ajax传值修改数据
  12. Hadoop记录-Linux Service
  13. SVN基础操作
  14. Flex 自定义 Zlert 组件!
  15. 04:获取zabbix监控信息
  16. 事件委托,js中的一种优化方法
  17. PID算法(C语言)
  18. 微信小程序登录方案
  19. ubuntu14.04 忘记了登录密码和root密码
  20. .net core 实践笔记(二)--EF连接Azure Sql

热门文章

  1. 一个null,差点把系统给弄崩溃了
  2. 计算机通过远程连接登录windows虚拟机具体配置流程
  3. element table 先显示暂无数据 之后再加载数据 问题
  4. CSS与JavaScript小结
  5. Sql like模糊查询 区分大小写
  6. STM32F4 阿波罗 库函数与C语言知识
  7. nginx反向代理、负载均衡
  8. 学习go语言第二天-变量、常量
  9. NCPC 2016 Fleecing the Raffle
  10. 将项目部署到github的方法