《Linux内核设计的艺术》学习笔记(二)INT 0x13中断
参考资料:
1. 《IBM-PC汇编语言程序设计》
2. http://blog.sina.com.cn/s/blog_5028978101008wk2.html
3. http://www.ctyme.com/intr/int-13.htm
◆ 磁盘复位:
功能号:AH = 00H
调用参数:DL = 驱动器号 (00H~7FH为软盘;80H~0FFH为硬盘)
返回参数:读成功 ⇒ AH = 00H, CF = 0
读失败 ⇒ AH = 错误码
◆ 读磁盘状态:
功能号:AH = 01H
返回参数:AH = 状态字节
◆ 读磁盘扇区:
功能号:AH = 02H
调用参数:AL = 扇区数
CX中的0~5位代表扇区号,CX中的6~15位代表柱面号(其中,CL的6~7为柱面数的高两位,CH存低8位)
DH/DL = 磁头号/驱动器号
ES:BX = 数据缓冲区地址
返回参数:读成功 ⇒ AH = 00H, AL = 读取的扇区数,CF = 0
读失败 ⇒ AH = 错误码
◆ 写磁盘扇区:
功能号:AH = 03H
调用参数:AL = 扇区数
CX中的0~5位代表扇区号,CX中的6~15位代表柱面号
DH/DL = 磁头号/驱动器号
ES:BX = 数据缓冲区地址
返回参数:写成功 ⇒ AH = 00H, AL = 写入的扇区数,CF = 0
写失败 ⇒ AH = 错误码
◆ 检查磁盘扇区:
功能号:AH = 04H
调用参数:AL = 扇区数
CX中的0~5位代表扇区号,CX中的6~15位代表柱面号
DH/DL = 磁头号/驱动器号
返回参数:成功 ⇒ AH = 00H, AL = 被检查的扇区数,CF = 0
失败 ⇒ AH = 错误码
◆ 格式化磁盘扇区:
功能号:AH = 05H
调用参数:AL = 扇区数
CX中的0~5位代表扇区号,CX中的6~15位代表柱面号
DH/DL = 磁头号/驱动器号
ES:BX = 格式化参数表指针
返回参数:成功 ⇒ AH = 00H,CF = 0
失败 ⇒ AH = 错误码
◆ 读取驱动器参数:
功能号:AH = 08H
调用参数:DL = 驱动器号
ES:BX = 格式化参数表指针
返回参数:成功 ⇒ BL = 磁盘大小,CX中的0~5位存扇区数,CX中的6~15位存柱面号,DH/DL = 磁头数/驱动器数,ES:DI = 磁盘驱动器参数列表地址
失败 ⇒ AH = 错误码,CF = 1
◆ 读取磁盘类型:
功能号:AH = 15H
调用参数:DL = 驱动器号
ES:BX = 格式化参数表指针
返回参数:成功 ⇒ AH = 类型码,01H 无变线支持的软驱,02H 带线支持的软驱,03H 硬盘驱动器;CX:DX = 512字节扇区的个数。
失败 ⇒ AH = 错误码,CF = 1
《Linux内核设计的艺术》学习笔记(二)INT 0x13中断的更多相关文章
- linux内核设计与实现学习笔记-模块
模块 1.概念: 如果让LINUX Kernel单独运行在一个保护区域,那么LINUX Kernel就成为了“单内核”. LINUX Kernel是组件模式的,所谓组件模式是指:LINUX K ...
- 《Linux内核设计与实现》 第一二章学习笔记
<Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...
- Linux内核设计与实现 读书笔记 转
Linux内核设计与实现 读书笔记: http://www.cnblogs.com/wang_yb/tag/linux-kernel/ <深入理解LINUX内存管理> http://bl ...
- linux内核设计的艺术--系统启动第一步
计算机究竟是如何执行起来的呢,在我学习计算机的时候一直不是非常明确,可是近期借了本<linux内核设计的艺术>算是知道了计算机从按开机到启动操作系统之间究竟做了些什么. 这本书刚開始介绍的 ...
- linux内核分析第四周学习笔记
linux内核分析第四周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
- Linux内核分析第二周学习笔记
linux内核分析第二周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
- linux内核分析第一周学习笔记
linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
- 《Linux内核设计与实现》第一二章笔记
第一章 linux内核简介 每个处理器在任何时间点上的活动必然概括为下列三者: 运行于用户空间,执行用户进程 运行于内核空间,处于进程上下文,代表某个特定的进程执行 运行于内核空间,处于中断上下文,与 ...
- 初探内核之《Linux内核设计与实现》笔记上
内核简介 本篇简单介绍内核相关的基本概念. 主要内容: 单内核和微内核 内核版本号 1. 单内核和微内核 原理 优势 劣势 单内核 整个内核都在一个大内核地址空间上运行. 1. 简单.2. 高效 ...
- 《Linux内核设计的艺术》学习笔记(一)从开机加电到加载三个汇编源码
实验内核版本:0.11 ◆ 从开机到main函数的三步: ① 启动BIOS,准备实模式下的中断向量表和中断服务程序: ② 从启动盘加载OS程序到内存中,加载OS程序的工作就是利用第一步中的中断服务 ...
随机推荐
- 161103、Spring Boot 入门
Spring Boot 入门 spring Boot是Spring社区较新的一个项目.该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验 ...
- laravel运行url404错误
url输入正确的根目录时老是提示404错误,竟然不知道为什么,稀里糊涂的,最后发现输入url时后面默认会加上一个\,一定记得把\去掉!!!!
- sharepint 数据视图 添加超链接
1. 数值域清除数值,输入文本 详细进度 2. 添加连接 到 哪个页面 3. 将inteid拖过来 4. 连接到项目显示表单 5. 直接改下面的连接地址 <a href="http:/ ...
- python7 静态方法、类方法、属性方法 ;反射;异常处理
#-*- coding:utf8 -*- # 静态方法@staticmethod # 静态方法(当eat变成静态方法后,再通过实例调用时就不会自动把实例本身当作一个参数传给self了.) clas ...
- ACM题目————又见拦截导弹
描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:它的第一发炮弹能够到达任意的高度,但是以后每一发炮 ...
- 将ASCII码位于32~126的95个字符输出到屏幕上,为了美观
//将ASCII码位于32~126的95个字符输出到屏幕上,为了美观.要求小于100的码,前面加一个0,每八个转行class shijixing{ public static void main(St ...
- c# UDP广播
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- java poi Excel导入 整数浮点数转换问题解决
/** * 获取单元格数据 */ protected static String getCellValue(Cell cell) { String cellValu ...
- LA 3907 Puzzle
问题描述:先给你s个禁止串,求不包含禁止串的最长串,如果存在,打印字典序最大. 数据范围:s <= 1000, 禁止串长度不超过50. 分析:不匹配问题实际上等同于匹配问题.假设我们已经有满足条 ...
- Unix网络编程--卷一:套接字联网API
UNIX网络编程--卷一:套接字联网API 本书面对的读者是那些希望自己编写的程序能够使用成为套接字(socket)的API进行彼此通信的人. 目录: 0.准备环境 1.简介 2.传输层:TCP.UD ...