软盘相关知识和通过BIOS中断访问软盘
一、 软盘基础知识介绍
(1) 3.5英寸软盘
3.5英寸软盘分为上下两面,每面有80个磁道,每个磁道又分为18个扇区,每个扇区大小为512个字节。
软盘大小计算: 2面 * 80磁道 * 18扇区 * 512 字节 = 1440KB ≈ 1.44MB
(2) 5.25英寸软盘
- 5.25英寸软盘每个磁道只有15个扇区,其它的与3.5英寸软盘一样。因此,5.25英寸软盘大小为 1.2MB
磁盘的实际访问由磁盘控制器进行。我们可以通过控制磁盘控制器来访问磁盘。只能以扇区为单位对磁盘进行读写。在读写扇区的时候,要给出面号、磁道号和扇区号。面号和磁道号从0开始,而扇区号从1开始。
二、 使用BIOS的 int 13h 中断访问磁盘
如果通过直接控制磁盘控制器来访问磁盘,则需要涉及许多硬件细节。BIOS提供了对扇区进行读写的中断例程,这些中断例程完成了许多复杂的和硬件相关的工作,我们可以通过调用BIOS中断例程来访问磁盘。
(一) 读软盘
ah = int 13h 的功能号(2表示读扇区)
al = 读取的扇区数
ch = 磁道号
cl = 扇区号
dh = 磁头号(对于软盘即面号,因为一个面用一个磁头来读写)
dl = 驱动器号(软驱从零开始, 0: 软驱A, 1: 软驱B;硬盘需要把第七位置位,从80h开始, 80h:硬盘c,81h:硬盘D)
返回参数:操作成功,ah = 0,al = 读入的扇区数;操作失败,ah = 出错代码
读取0面0道1扇区内容到0:200的程序如下所示
mov ax,0
mov es,ax
mov bx,200h
mov al,1 ;读取1个扇区
mov ch,0 ;磁道号0
mov cl,1 ;扇区号0
mov dl,0 ;软驱A
mov dh,0 ;软盘0面
mov ah,2 ;int 13h 2号功能
int 13h
(二) 写软盘
ah = int 13h 的功能号(3表示写扇区)
al = 写入的扇区数
ch = 磁道号
cl = 扇区号
dh = 磁头号(对于软盘即面号,因为一个面用一个磁头来读写)
dl = 驱动器号(软驱从零开始, 0: 软驱A, 1: 软驱B;硬盘需要把第七位置位,从80h开始, 80h:硬盘c,81h:硬盘D)
返回参数:操作成功,ah = 0,al = 写入的扇区数;操作失败,ah = 出错代码
将0:200的内容写入0面0道1扇区的程序如下所示
mov ax,0
mov es,ax
mov bx,200h
mov al,1 ;读取1个扇区
mov ch,0 ;磁道号0
mov cl,1 ;扇区号0
mov dl,0 ;软驱A
mov dh,0 ;软盘0面
mov ah,3 ;int 13h 2号功能
int 13h
软盘相关知识和通过BIOS中断访问软盘的更多相关文章
- WEB相关知识和Tomcat服务器
WEB相关知识 1.Internet上供外界访问的Web资源分为: 静态web资源:指web页面中供人们浏览的数据始终是不变的. 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间 ...
- 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸
类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...
- BIOS中断大全
BIOS中断大全 BIOS中断:1.显示服务(Video Service——INT 10H) 00H —设置显示器模式0CH —写图形象素01H —设置光标形状0DH —读图形象素02H —设置光标 ...
- BIOS 中断大全
BIOS中断: 1.显示服务(Video Service--INT 10H) 00H -设置显示器模式0CH -写图形象素 01H -设置光标形状0DH -读图形象素 02H -设置光标位置0EH ...
- listener监听器的相关知识
从别人的博客上我学习了listener的相关知识现在分享给大家 1.概念: 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上 ...
- 【转】java NIO 相关知识
原文地址:http://www.iteye.com/magazines/132-Java-NIO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的 ...
- 地址标记,SpringMVC转发与调用相关知识存档
1.mytest_mavenprj1中,index的 <a href="login/login.html">点击登录</a> 与 <a href=&q ...
- AJAX跨域调用相关知识-CORS和JSONP(引)
AJAX跨域调用相关知识-CORS和JSONP 1.什么是跨域 跨域问题产生的原因,是由于浏览器的安全机制,JS只能访问与所在页面同一个域(相同协议.域名.端口)的内容. 但是我们项目开发过程中,经常 ...
- Centos的Inode及Block相关知识
Centos的Inode及Block相关知识 时间:2016-06-04 01:54来源:blog.51cto.com 作者:"tao" 博客 举报 点击:173次 本经验均在Ce ...
随机推荐
- 关于DP和背包
听说过动态规划(DP)的同学应该都知道有背包问题的存在. 首先我们来了解一下动态规划 基本思想: 动态规划算法通常用于求解具有某种最优性质的问题. 在这类问题中, 可能会有很多可行解.每一个解都对应于 ...
- JavaScript流程控制及函数
1 流程控制 1.1 条件语句 分支结构 单向分支 if (条件表达式) { code...} 双向分支 if (条件表达式){ } else { } <!DOCTYPE html& ...
- 【ORACLE】ORACLE RAC设置控制文件多路
[oracle@rac01 ~]$ srvctl stop database -d proc -o immediate [oracle@rac01 ~]$ sqlplus / as sysdba SQ ...
- 布线问题 (NYOJ38)
布线问题 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件:1.把所有 ...
- iOS分类Category探索
什么是Category? Category是Objective-C 2.0之后添加的语言特性,Category的主要作用是为已经存在的类添加方法,一般称为分类,文件名格式是"NSObject ...
- 快速获取APP对应的appPackage和appActivity
appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的. 介绍两种方法可快速获取APP的这两个参数: 方法一 1 ...
- (1) Python 数据类型功能
1.int 将字符串转化为数字 a="123" print(type(a),a) b=int(a) print(type(b),b) num="0011" ...
- 如何快速搭建yum源
yum命令能够从指定的服务器自动下载rpm包并安装,它最强大的地方就是可以自动处理软件包的依赖关系,能够一次安装所有依赖的关系包.下面将通过虚拟机平台介绍两种快速搭建yum源的方法: 一.有网络的情况 ...
- 笨办法学Python - 习题3: Numbers and Math
目录 习题 3: 数字和数学计算 算术运算符 加分习题: 我的答案: 总结: 扩展: Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算 ...
- which命令详解
基础命令学习目录首页 原文链接:https://www.cnblogs.com/jkin/p/10289085.html Linux which命令用于查找文件. which指令会在环境变量$PATH ...