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相关推荐

  1. 安装一个新的int 9中断例程【在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理】...

    ;任务: ; 安装一个新的int 9中断例程 ;功能: ; 在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理 1 assume cs:code 2 3 stack segment 4 d ...

  2. 汇编语言随笔(15)- 对键盘输入进行处理(int 9 和 int 16h 中断例程)

    键盘输入 1,前面讲过, int 9 中断例程负责对键盘输入进行处理,具体为:从 60h 端口读出扫描码,并将其转化为相应的ASCII码或状态信息,一起存储到内存的指定空间(键盘缓冲区或状态字节)中. ...

  3. Int 10 中断功能 详解

    INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中断服务程序时,先指定 AH ...

  4. BIOS INT 10中断功能

    INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中断服务程序时,先指定 AH ...

  5. BIOS INT 10中断功能详解

    NT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后提供了许多服务程序,这些服务程序也加挂在 INT 10H 内. 使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其 ...

  6. 汇编语言随笔(16)- 对磁盘进行读写(int 13h 中断例程)和实验 17

    磁盘读写 3.5 英寸软盘分为上下两面,每面有 80 个磁道,每个磁道又分为 18 个扇区,每个扇区的大小为 512 个字节.下面的磁盘读写均以 3.5 英寸软盘为例. 在读写扇区的时候,要给出面号. ...

  7. BIOS int 13H中断介绍

    BIOS int 13H中断也叫直接磁盘服务(Direct Disk Service),该中断的各个功能号及对应的功能描述如下: 1.功能 00H 功能描述:磁盘系统复位 入口参数:AH=00H DL ...

  8. 汇编语言-int指令

    int 指令 int 指令的格式为:int n,n为中断类型码,它的功能是引发终端过程. CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下. 取中断类型码n: 标志寄存器入栈, ...

  9. 安卓java录屏_安卓实现截屏以及录屏功能Demo

    [实例简介]安卓实现截屏以及录屏功能Demo 安卓实现截屏以及录屏功能Demo [实例截图] [核心代码] package com.dzjin.screen.screenshotandrecordde ...

最新文章

  1. python笔记基础
  2. LeetCode Find the Difference
  3. pandas明明数据有,但是通过该标签进行筛选的时候就得到空或者是错误的结果
  4. 修改windows远程登录端口
  5. [007] 详解 .NET 程序集
  6. ubuntu 14.04 修改PS1提示符
  7. 通信原理眼图画法_通信原理课程总结(二)
  8. 亚马逊平板刷机Linux系统,亚马逊平板刷机步骤盘点【图解】
  9. 视频截取图片帧工具(可免费使用)
  10. 斯坦福大学java视频_iPhone应用开发视频教程-斯坦福大学公开课
  11. android 系统重新安装,一招学会安卓手机系统重装教程
  12. 求(2Y-4)²-4(Y-2)(3Y+7)≥0得解题过程和思路
  13. 【金钱开道】直捣黄龙!
  14. 利用office2010 word2010生成目录
  15. vue3项目打包优化三步走
  16. 耳机四根线的图解_type c数据线拆解及接线图文详解
  17. 项目的战前、战中与战后
  18. 云原生CICD:Tekton之TaskTaskRun概念篇
  19. 第一次在我的P200上自己用rviz展现激光雷达数据
  20. 北航计算机学院博士开题,北航博士开题报告格式

热门文章

  1. qlineedit文本改变时_行文本编辑框QLineEdit及自动补全
  2. 微信小程序使用高德地图API获取准确定位地址描述
  3. 机器人视觉——图像加法、图像融合、图像类型转换
  4. HTML5 Canvas 旋转
  5. windows、linux下命令行登录oracle数据库方法,查询sga参数值sql语句
  6. 电磁场第二章公式总结
  7. 单链表的建立,插入和释放
  8. mysql connector安装教程_通过安装MySQL Connector/Net实现VS2017 C#编程连接MySQL数据库-网络教程与技术 -亦是美网络...
  9. pyqt5入门教程(四)
  10. [简单题]自定义取余(三种解法)C++实现