汇编语言int 13中断02h功能Demo - 使用emu8086
INT 13H,直接磁盘服务,Direct Disk Service;
00H —磁盘系统复位
01H —读取磁盘系统状态
02H —读扇区
读扇区;以3.5英寸软盘为例;
常用的3.5软盘分为上下两面,每面有80个磁道,每个磁道分为
18个扇区,每扇区大小为512B。
则:2面*80磁道*18扇区*512B=1440KB≈1.44MB
磁盘的实际访问由磁盘控制器进行,以扇区为单位对磁盘进行读写
在读写扇区的时候要给出面号,磁道号和扇区号,面号和磁道号从0开始,而扇区号从1开始。
BIOS提供的访问磁盘的中断例程为int13h。
入口参数:
ah=int 13h的功能号
al=读取的扇区数
ch=磁道号
cl=扇区号
dh=磁头号(对于软盘即面号,因为一个面用一个磁头来读写)
dl=驱动器号 软驱从0开始,0:软驱A,1:软驱B;硬盘从80h开始,
80h:硬盘C,81h:硬盘D。
es:bx指向接收从扇区读入数据的内存区
返回参数:
操作成功:ah=0,al=读入的扇区数
操作失败:ah=出错代码
dl里面放驱动器号,为0,操作第一个软驱;
操作成功,返回,ah=0;出错,ah=错误代码;
那么看来当前用的计算机,底层各种硬件返回的错误代码是放在EAX,再由Windows翻译为一个系统错误代码返回给应用程序;
读取0面0道1扇区的内容到0:200
200=c8h;
DB 200 DUP(10)mov ax,0
mov es,ax
mov bx,c8h
mov al,1
mov ch,0
mov cl,1
mov dl,0
mov dh,0
mov ah,2
int 13h
装入emu8086,执行;看一下啥情况;emu8086带有虚拟软驱;从virtual drive菜单可查看;
第一句是在数据区存入10(十六进制A),重复200个;
装入,启动以后看一下,从0100:0000开始,一直放的都是十六进制的A;
es:bx指向接收从扇区读入数据的内存区; es放入0,bx放入200;
执行完后看一下;是否0100:0000以后的A会被覆盖;
执行完程序看一下;
0100:0000以后的内容还全部是A;
看AH寄存器的值为0,表示操作成功;
也许emu8086的虚拟软驱不支持太多的仿真;总之磁盘的读写在BIOS层都是用int 13h进行的;
汇编语言int 13中断02h功能Demo - 使用emu8086相关推荐
- 安装一个新的int 9中断例程【在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理】...
;任务: ; 安装一个新的int 9中断例程 ;功能: ; 在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理 1 assume cs:code 2 3 stack segment 4 d ...
- 汇编语言随笔(15)- 对键盘输入进行处理(int 9 和 int 16h 中断例程)
键盘输入 1,前面讲过, int 9 中断例程负责对键盘输入进行处理,具体为:从 60h 端口读出扫描码,并将其转化为相应的ASCII码或状态信息,一起存储到内存的指定空间(键盘缓冲区或状态字节)中. ...
- Int 10 中断功能 详解
INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中断服务程序时,先指定 AH ...
- BIOS INT 10中断功能
INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中断服务程序时,先指定 AH ...
- BIOS INT 10中断功能详解
NT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后提供了许多服务程序,这些服务程序也加挂在 INT 10H 内. 使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其 ...
- 汇编语言随笔(16)- 对磁盘进行读写(int 13h 中断例程)和实验 17
磁盘读写 3.5 英寸软盘分为上下两面,每面有 80 个磁道,每个磁道又分为 18 个扇区,每个扇区的大小为 512 个字节.下面的磁盘读写均以 3.5 英寸软盘为例. 在读写扇区的时候,要给出面号. ...
- BIOS int 13H中断介绍
BIOS int 13H中断也叫直接磁盘服务(Direct Disk Service),该中断的各个功能号及对应的功能描述如下: 1.功能 00H 功能描述:磁盘系统复位 入口参数:AH=00H DL ...
- 汇编语言-int指令
int 指令 int 指令的格式为:int n,n为中断类型码,它的功能是引发终端过程. CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下. 取中断类型码n: 标志寄存器入栈, ...
- 安卓java录屏_安卓实现截屏以及录屏功能Demo
[实例简介]安卓实现截屏以及录屏功能Demo 安卓实现截屏以及录屏功能Demo [实例截图] [核心代码] package com.dzjin.screen.screenshotandrecordde ...
最新文章
- python笔记基础
- LeetCode Find the Difference
- pandas明明数据有,但是通过该标签进行筛选的时候就得到空或者是错误的结果
- 修改windows远程登录端口
- [007] 详解 .NET 程序集
- ubuntu 14.04 修改PS1提示符
- 通信原理眼图画法_通信原理课程总结(二)
- 亚马逊平板刷机Linux系统,亚马逊平板刷机步骤盘点【图解】
- 视频截取图片帧工具(可免费使用)
- 斯坦福大学java视频_iPhone应用开发视频教程-斯坦福大学公开课
- android 系统重新安装,一招学会安卓手机系统重装教程
- 求(2Y-4)²-4(Y-2)(3Y+7)≥0得解题过程和思路
- 【金钱开道】直捣黄龙!
- 利用office2010 word2010生成目录
- vue3项目打包优化三步走
- 耳机四根线的图解_type c数据线拆解及接线图文详解
- 项目的战前、战中与战后
- 云原生CICD:Tekton之TaskTaskRun概念篇
- 第一次在我的P200上自己用rviz展现激光雷达数据
- 北航计算机学院博士开题,北航博士开题报告格式
热门文章
- qlineedit文本改变时_行文本编辑框QLineEdit及自动补全
- 微信小程序使用高德地图API获取准确定位地址描述
- 机器人视觉——图像加法、图像融合、图像类型转换
- HTML5 Canvas 旋转
- windows、linux下命令行登录oracle数据库方法,查询sga参数值sql语句
- 电磁场第二章公式总结
- 单链表的建立,插入和释放
- mysql connector安装教程_通过安装MySQL Connector/Net实现VS2017 C#编程连接MySQL数据库-网络教程与技术
-亦是美网络...
- pyqt5入门教程(四)
- [简单题]自定义取余(三种解法)C++实现