资源描述
中断号
名xxxx称
表项地址
类xxxx别
控x制x权
00h
被零除
000--003h
内部硬件
DOS
01h
单步
004--007h
内部硬件
DEBUG
02h
不可屏中断(NMI)
008--00Bh
外部硬件
ROM-BIOS,DOS接管
03h
断点
00C--00Fh
内部硬件
DEBUG
04h
溢出
010--013h
内部硬件
DOS保留
05h
屏幕打印
014--017h
软件中断
ROM-BIOS
06--07h
保留
018--01Fh
08h
日时钟中断
020--023h
外部硬件
ROM-BIOS,DOS接管
09h
键盘中断
024--027h
外部硬件
ROM-BIOS,DOS接管
0Ah
保留/8259A从片中断
028--02Bh
外部硬件
ROM-BIOS
0Bh
串行口2中断
02C--02Fh
外部硬件
ROM-BIOS
0Ch
串行口1中断
030--033h
外部硬件
ROM-BIOS
0Dh
硬盘(XT)/并行口2中断
034--037h
外部硬件
ROM-BIOS
0Eh
软盘中断
038--03Bh
外部硬件
ROM-BIOS,DOS接管
0Fh
打印机/并行口1中断
03C--03Fh
外部硬件
DOS保留
10h
视频显示I/O
040--043h
软件中断
ROM-BIOS
11h
设备配置检测
044--047h
软件中断
ROM-BIOS
12h
内存容量检测
048--04Bh
软件中断
ROM-BIOS
13h
磁盘I/O
04C--04Fh
软件中断
ROM-BIOS,DOS再扩展
14h
串行通信I/O
050--053h
软件中断
ROM-BIOS
15h
盒带(PC)/多功能
054--057h
软件中断
ROM-BIOS
16h
键盘I/O
058--05Bh
软件中断
ROM-BIOS
17h
打印机I/O
05C--05Fh
软件中断
ROM-BIOS
18h
ROM-BASIC
060--063h
软件中断
ROM-BIOS
19h
自举程序
064--067h
软件中断
ROM-BIOS,DOS再扩展
1Ah
时钟I/O
068--06Bh
软件中断
ROM-BIOS
1Bh
Ctrl-Break中止
06C--06Fh
软件中断
DOS
1Ch
时钟控制
070--073h
软件中断
ROM-BIOS
1Dh
视频初始化参数表
074--077h
非中断向量,表地址
ROM-BIOS
1Eh
软盘参数表
078--07Bh
非中断向量,表地址
DOS
1Fh
图形显示扩展字符表
07C--07Fh
非中断向量,表地址
使用者
20h
程序终止退出
080--083h
软件中断
DOS
21h
系统功能调用
084--087h
软件中断
DOS
22h
程序结束地址
088--08Bh
非中断向量,出口地址
DOS
23h
Ctrl-C处理
08C--08Fh
软件中断
DOS
24h
严重错误处理
090--093h
软件中断
DOS
25h
磁盘扇区读
094--097h
软件中断
DOS
26h
磁盘扇区写
098--09Bh
软件中断
DOS
27h
程序终止驻留
09C--09Fh
软件中断
DOS
28h
键盘空闲处理
0A0--0A3h
软件中断
DOS(后台打印)
29h
快速字符输出
0A4--0A7h
软件中断
DOS
2Ah
保留
0A8--0ABh
软件中断
Net BIOS
2B--2Dh
保留
0AC--0B7h
2Eh
命令执行处理
0B8--0BBh
软件中断
DOS
2Fh
多路中断,共享
0BC--0BFh
软件中断
DOS
30--31h
远转移至INT 21h入口
0C0--0C7h
非中断向量,指令(5字节)
使用者
32--3Fh
保留
0C8--0FFh
40h
软盘I/O
100--103h
软件中断
ROM-BIOS
41h
硬盘机1基数表
104--107h
非中断向量,表地址
ROM-BIOS
42--45h
保留
108--117h
46h
保留
118--11Bh
非中断向量,表地址
ROM-BIOS
47--5Bh
保留
11C--16Fh
5Ch
硬盘机2基数表
170--173h
软件中断
Net BIOS
5D--6Fh
保留
174--1BFh
(注)
70h
实时钟中断
1C0--1C3h
外部硬件
ROM-BIOS,DOS接管
71h
改向0Ah号中断
1C4--1C7h
外部硬件
ROM-BIOS
72h
保留给IRQA
1C8--1CBh
外部硬件
ROM-BIOS
73h
保留给IRQB
1CC--1CFh
外部硬件
ROM-BIOS
74h
保留给IRQC
1D0--1D3h
外部硬件
ROM-BIOS
75h
协处理器中断
1D4--1D7h
外部硬件
ROM-BIOS
76h
硬盘中断
1D8--1DBh
外部硬件
ROM-BIOS,DOS接管
77h
保留给IRQF
1DC--1DFh
外部硬件
ROM-BIOS
78--7Fh
保留
1E0--1FFh
80--F0h
BASIC使用区
200--3C3h
F1--FFh
保留
3C4--3FFh
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=00H │
;│设定屏幕影相模式 │
;│? (AL) <= 模式码 (正常为 03h) │
;│模式码: 分辨率 颜色数目 页数 地址 │
;│ 文 00H: 40*25 16 色 8 页 B8000H~B87CFH │
;│ 字 01H: 80*25 16 色 8 页 B8000H~B87CFH │
;│ 模 02H: 80*25 16 色 8 页 B8000H~B8F9FH │
;│ 式 03H: 80*25 16 色 8 页 B8000H~B8F9FH │
;│ 07H: 80*25 2 色 8 页 B8000H~B8F9FH │
;│ 分辨率 颜色数目 页数 地址 │
;│ 绘 04H: 320*200 4 色 1 页 B8000H~BBF3FH │
;│ 图 05H: 320*200 4 色 1 页 B8000H~BBF3FH │
;│ 模 06H: 640*200 2 色 1 页 B8000H~BBF3FH │
;│ 式 0DH: 320*200 16 色 8 页 A0000H~A1F3FH │
;│ 0EH: 640*200 16 色 4 页 A0000H~A3E7FH │
;│ 0FH: 640*350 2 色 2 页 A0000H~A6D5FH │
;│ 10H: 640*350 16 色 2 页 A0000H~A6D5FH │
;│ 11H: 640*480 2 色 1 页 A0000H~A95FFH │
;│ 12H: 640*480 16 色 1 页 A0000H~A95FFH │
;│ 13H: 320*200 256 色 1 页 A0000H~AF9FFH │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=01H │
;│设定光标形状 ┌──┐ │
;│? (CH) <= 游标的启始线 (0~15) │ │<---- 启始线 │
;│? (CL) <= 游标的终止线 (0~15) │ │ │
;│注:正常: CH=0DH,CL=0EH │ │<---- 终止线 │
;│ 消失: CH=0FFH,CL=0FFH └──┘ │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=02H │
;│设定光标位置 │
;│? (DH) <= 游标的 列 数 (0~24) │
;│? (DL) <= 游标的 行 数 (0~79) │
;│? (BH) <= 页码 │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=03H │
;│取得光标位置 │
;│? (BH) <= 页码 ┌──┐ │
;│游标的 列 数 => (DH) │ │<---- 启始线 │
;│游标的 行 数 => (DL) │ │ │
;│游标的启始线 => (CH) │ │<---- 终止线 │
;│游标的终止线 => (CL) └──┘ │
;│注:正常: CH=0DH,CL=0EH │
;│ 消失: CH=0FFH,CL=0FFH │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=05H │
;│画面页区的号择 │
;│? (AL) <= 页码 │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│INT 10h,AH=06H │
;│把指定的窗口范围上卷 │
;│? (AL) <= 卷动的列数,若为 0 则清除屏幕 │
;│? (BH) <= 卷动后空出位置放入的属性 │
;│? (CH) <= 卷动范围的左上坐标 列 │
;│? (CL) <= 卷动范围的左上坐标 行 │
;│? (DH) <= 卷动范围的右下坐标 列 │
;│? (DL) <= 卷动范围的右下坐标 行 │
;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
;│颜色属性: bh =│b7│b6│b5│b4│b3│b2│b1│b0│ │
;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
;│bit0~2 :字体颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit3 :字体亮度 (0:字体正常,1:字体高亮度) │
;│bit4~6 :背景颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit7 :字体闪烁 (0:不闪烁,1:字体闪烁) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│INT 10h,AH=07H │
;│把指定的窗口范围下卷 │
;│? (AL) <= 卷动的列数,若为 0 则清除屏幕 │
;│? (BH) <= 卷动后空出位置放入的属性 │
;│? (CH) <= 卷动范围的左上坐标 列 │
;│? (CL) <= 卷动范围的左上坐标 行 │
;│? (DH) <= 卷动范围的右下坐标 列 │
;│? (DL) <= 卷动范围的右下坐标 行 │
;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
;│颜色属性: bh =│b7│b6│b5│b4│b3│b2│b1│b0│ │
;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
;│bit0~2 :字体颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit3 :字体亮度 (0:字体正常,1:字体高亮度) │
;│bit4~6 :背景颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit7 :字体闪烁 (0:不闪烁,1:字体闪烁) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=08H │
;│读取光标所在位置的字符及属性 │
;│? (BH) <= 页码 │
;│字符 ascii => (AL) │
;│字符的属性 => (AH) │
;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
;│颜色属性: ah =│b7│b6│b5│b4│b3│b2│b1│b0│ │
;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
;│bit0~2 :字体颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit3 :字体亮度 (0:字体正常,1:字体高亮度) │
;│bit4~6 :背景颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit7 :字体闪烁 (0:不闪烁,1:字体闪烁) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=09H │
;│写入字符及属性在光标所在位置,光标不动 (绘图模式亦能使用) │
;│? (AL) <= 欲写入的字符 ascii │
;│? (BL) <= 欲写入之字符的属性 │
;│? (CX word) <= 欲显示的次数 │
;│? (BH) <= 页码 │
;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
;│颜色属性: bl =│b7│b6│b5│b4│b3│b2│b1│b0│ │
;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
;│bit0~2 :字体颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit3 :字体亮度 (0:字体正常,1:字体高亮度) │
;│bit4~6 :背景颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit7 :字体闪烁 (0:不闪烁,1:字体闪烁) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=0AH │
;│写入字符在光标所在位置,光标不动,属性不变 (绘图模式亦能使用) │
;│? (AL) <= 欲写入的字符 ascii │
;│? (CX word) <= 欲显示的次数 │
;│? (BH) <= 页码 │
;│? (BL) <= 前景颜色 (绘图模式时) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=0BH │
;│设定文本模式(0~3)的边框颜色 或 绘图模式(4、5)的背景颜色 │
;│? (BL) <= 颜色属性 │
;│ (1)文本模式(0~3):边框颜色,只用到 低4bit,共16色 │
;│ (2)绘图模式(4、5、6):背景颜色,只用到 低4bit,共16色 │
;│ bit0~2 :颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白)│
;│ bit3 :为亮度 (1:高亮度,0:正常) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=0BH │
;│设定绘图模式(4、5)的调色盘 │
;│? (BL) <= 调色盘 (以 0 bit 决定) │
;│bit0 = 0 (黑、绿、红、黄) │
;│ = 1 (黑、青、紫、白) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=0CH │
;│在绘图模式下画一点 │
;│? (AL) <= 像点的颜色值 │
;│? (CX word) <= 坐标 X 轴 │
;│? (DX word) <= 坐标 Y 轴 │
;│? (BH) <= 页码 │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=0DH │
;│在绘图模式下读点像值 │
;│? (CX word) <= 坐标 X 轴 │
;│? (DX word) <= 坐标 Y 轴 │
;│像点的颜色值 => (AL) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=0EH │
;│在文本模式 或 绘图模式下显示一字符,光标则右移一格 │
;│? (AL) <= 字符 ascii │
;│? (BH) <= 页码 │
;│? (BL) <= 前景颜色码 (绘图模式时) │
;│注:所谓 TTY 就是类似打字机输出方式,每显示一字符,光标则右移一格,│
;│ 当移到最后一行时,光标则至跳下一列的最左边开始,当移到最后一列 │
;│ 时,屏幕则上卷一列 │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=0FH │
;│取得屏幕影相模式 │
;│每行字数 => (AH) │
;│模式号码 => (AL) │
;│使用页码 => (BH) │
;│模式码: 分辨率 颜色数目 页数 地址 │
;│ 文 00H: 40*25 16 色 8 页 B8000H~B87CFH │
;│ 字 01H: 80*25 16 色 8 页 B8000H~B87CFH │
;│ 模 02H: 80*25 16 色 8 页 B8000H~B8F9FH │
;│ 式 03H: 80*25 16 色 8 页 B8000H~B8F9FH │
;│ 07H: 80*25 2 色 8 页 B8000H~B8F9FH │
;│ 分辨率 颜色数目 页数 地址 │
;│ 绘 04H: 320*200 4 色 1 页 B8000H~BBF3FH │
;│ 图 05H: 320*200 4 色 1 页 B8000H~BBF3FH │
;│ 模 06H: 640*200 2 色 1 页 B8000H~BBF3FH │
;│ 式 0DH: 320*200 16 色 8 页 A0000H~A1F3FH │
;│ 0EH: 640*200 16 色 4 页 A0000H~A3E7FH │
;│ 0FH: 640*350 2 色 2 页 A0000H~A6D5FH │
;│ 10H: 640*350 16 色 2 页 A0000H~A6D5FH │
;│ 11H: 640*480 2 色 1 页 A0000H~A95FFH │
;│ 12H: 640*480 16 色 1 页 A0000H~A95FFH │
;│ 13H: 320*200 256 色 1 页 A0000H~AF9FFH │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AX=1130H │
;│读取 VGA BIOS 中有关字形的信息 │
;│? (BH) <= 所要取的地址模式 │
;│取出的地址 => (ES:BP) │
;│目前字形的高度 => (CX) │
;│目前字形下屏幕列数-1 => (DL) │
;│地址模式:00H:中断 1FH 的地址 │
;│ 01H:中断 43H 的地址 │
;│ 02H:8*14 字形表的地址 │
;│ 03H:8*8 字形表的地址 │
;│ 04H:8*8 ascii 值大于 127 的字形表地址 │
;│ 05H:9*14 字形表的地址 │
;│ 06H:8*16 字形表的地址 │
;│ 07H:9*16 字形表的地址 │
;│注:中断向量 1fh 的值亦是指向 ascii 值大于 127 的字形表地址 │
;│ 中断向量 43h 的值则是指向目前屏幕模式所使用的字形表地址 │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=13H │
;│显示一列字符串 │
;│? (AL) <= 写入模式 │
;│? (BL) <= 字符之属性 │
;│? (CX word) <= 字符串的长度 │
;│? (DH) <= 游标的坐标 列 数 │
;│? (DL) <= 游标的坐标 行 数 │
;│? (ES:BP) <= 存字符串内容的内存变量 │
;│? (BH) <= 页码 │
;│写入 AL=00H:字符串的属性由 BL 决定,所以 CX 所指的长度以 byte 为单位│
;│模式 AL=01H:同 AL=00H,但光标会移到字符串尾端,未显示字符的位置 │
;│ AL=02H:字符串属性由每字符的后面一个byte指定,故 CX 单位为 word │
;│ AL=03H:同 AL=02H,但光标会移到字符串尾端,未显示字符的位置 │
;│ ┌─┬─┬─┬─┬─┬─┬─┬─┐ │
;│颜色属性: bl =│b7│b6│b5│b4│b3│b2│b1│b0│ │
;│ └─┴─┴─┴─┴─┴─┴─┴─┘ │
;│bit0~2 :字体颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit3 :字体亮度 (0:字体正常,1:字体高亮度) │
;│bit4~6 :背景颜色 (0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白) │
;│bit7 :字体闪烁 (0:不闪烁,1:字体闪烁) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=80H │
;│倚天中文的控制 │
;│? (AL) <= 句柄,限输入数值,如下 │
;│控 51H:释放中文 30H:内码输入法 74H:透通模式切换 │
;│制 71H:释放中文 31H:仓颉输入法 4CH:条列模式(L) │
;│码 41H:切换为英文模式 32H:简易输入法 6CH:条列模式切换 │
;│ 61H:中英文模式切换 33H:注音输入法 48H:显示内码(H) │
;│ 6EH:切换为中文模式 34H:三角输入法 68H:显示内码切换 │
;│ 43H:切换为中文输入 35H:简捷输入法 47H:图形卷动(G) │
;│ 63H:中英文输入切换 37H:行列输入法 67H:图形卷动切换 │
;│ 46H:全角输入 39H:电信输入法 4DH:隐藏状态栏 │
;│ 66H:全角、半角切换 54H:透通模式(T) 6DH:状态栏切换 │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 10H,AH=91H │
;│检查是否有加载倚天中文 │
;│加载状态 => (AH != 91H 表有载入,AH = 91H 表未载入) │
;│目前模式 => (DH),(bit7=0 表中文模式,bit7=1 表英文模式) │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 13H,AH=00H │
;│重设磁盘驱动器,准备下一次I/O │
;│? (DL) <= 驱动器号 (A:00H,B:01H,C:80H,D:81H) │
;│成功 => (C=0),(失败 C=1,示误码如下) │
;│ AH=00H:成功 AH=80H:floppy disk drive 未备妥 │
;│ AH=05H:硬盘重置错误 AH=AAH:hard disk drive 未备妥 │
;│ AH=20H:磁盘控制器失误 AH=BBH:所指定的磁盘驱动器找不到 │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 13H,AH=01H │
;│读取磁盘驱动器状态 │
;│? (DL) <= 驱动器号 (A:00H,B:01H,C:80H,D:81H) │
;│成功 => (C=0),(失败 C=1,示误码如下) │
;│ AH=00H:成功 AH=0AH:硬盘的扇区损坏 │
;│ AH=01H:不合法的磁盘驱动器命令 AH=0BH:硬盘的磁道损坏 │
;│ AH=02H:扇区损坏或地址栏有误 AH=0CH:存取不存在的磁道 │
;│ AH=03H:写保护贴纸未撕 AH=10H:CRC/ECC错误 │
;│ AH=04H:找不到指定的扇区 AH=11H:数据读取错误,使用ECC校正│
;│ AH=05H:硬盘重置错误 AH=20H:磁盘控制器失误 │
;│ AH=06H:不是原来的磁盘 AH=40H:寻找磁道错误 │
;│ AH=07H:硬盘参数错误 AH=80H:floppy disk drive 未备妥 │
;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未备妥 │
;│ AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到 │
;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误 │
;│ ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有 │
;│ 自动更正错误功能,而且只有硬盘才有ECC │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 13H,AH=02H │
;│读取扇区数据 │
;│? (DL) <= 驱动器号 (A:00H,B:01H,C:80H,D:81H) │
;│? (AL) <= 欲读取的扇区数 │
;│? (CH) <= 磁道号码,从 0 开始,高 2 bit 可存于 cl 的 b6、b7 │
;│? (CL) <= 起始扇区编号,从 1 开始 │
;│? (DH) <= 磁头号码,从 0 开始 │
;│? (ES:BX) <= 欲储存数据的缓冲区内存变量 │
;│成功 => (C=0),(AL=真正读到的扇区数) │
;│ AH=00H:成功 AH=0AH:硬盘的扇区损坏 │
;│ AH=01H:不合法的磁盘驱动器命令 AH=0BH:硬盘的磁道损坏 │
;│ AH=02H:扇区损坏或地址栏有误 AH=0CH:存取不存在的磁道 │
;│ AH=03H:写保护贴纸未撕 AH=10H:CRC/ECC错误 │
;│ AH=04H:找不到指定的扇区 AH=11H:数据读取错误,使用ECC校正│
;│ AH=05H:硬盘重置错误 AH=20H:磁盘控制器失误 │
;│ AH=06H:不是原来的磁盘 AH=40H:寻找磁道错误 │
;│ AH=07H:硬盘参数错误 AH=80H:floppy disk drive 未备妥 │
;│ AH=08H 忙碌中 AH=AAH:hard disk drive 未备妥 │
;│ AH=09H 搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到 │
;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误 │
;│ ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有 │
;│ 自动更正错误功能,而且只有硬盘才有ECC │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 13H,AH=03H │
;│写数据到扇区内 │
;│? (DL) <= 驱动器号 (A:00H,B:01H,C:80H,D:81H) │
;│? (AL) <= 欲写入的扇区数 │
;│? (CH) <= 磁道号码,从 0 开始,高 2 bit 可存于 cl 的 b6、b7 │
;│? (CL) <= 起始扇区编号,从 1 开始 │
;│? (DH) <= 磁头号码,从 0 开始 │
;│? (ES:BX) <= 已储存数据的缓冲区内存变量 │
;│成功 => (C=0),(AL=真正写入的扇区数) │
;│ AH=00H:成功 AH=0AH:硬盘的扇区损坏 │
;│ AH=01H:不合法的磁盘驱动器命令 AH=0BH:硬盘的磁道损坏 │
;│ AH=02H:扇区损坏或地址栏有误 AH=0CH:存取不存在的磁道 │
;│ AH=03H:写保护贴纸未撕 AH=10H:CRC/ECC错误 │
;│ AH=04H:找不到指定的扇区 AH=11H:数据读取错误,使用ECC校正│
;│ AH=05H:硬盘重置错误 AH=20H:磁盘控制器失误 │
;│ AH=06H:不是原来的磁盘 AH=40H:寻找磁道错误 │
;│ AH=07H:硬盘参数错误 AH=80H:floppy disk drive 未备妥 │
;│ AH=08H 忙碌中 AH=AAH:hard disk drive 未备妥 │
;│ AH=09H 搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到 │
;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误 │
;│ ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有 │
;│ 自动更正错误功能,而且只有硬盘才有ECC │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 13H,AH=04H │
;│检查扇区结构是否完好 │
;│? (DL) <= 驱动器号 (A:00H,B:01H,C:80H,D:81H) │
;│? (AL) <= 欲检查的扇区数 │
;│? (CH) <= 磁道号码,从 0 开始,高 2 bit 可存于 cl 的 b6、b7 │
;│? (CL) <= 起始扇区编号,从 1 开始 │
;│? (DH) <= 磁头号码,从 0 开始 │
;│成功 => (C=0),(失败 C=1,示误码如下) │
;│ AH=00H:成功 AH=0AH:硬盘的扇区损坏 │
;│ AH=01H:不合法的磁盘驱动器命令 AH=0BH:硬盘的磁道损坏 │
;│ AH=02H:扇区损坏或地址栏有误 AH=0CH:存取不存在的磁道 │
;│ AH=03H:写保护贴纸未撕 AH=10H:CRC/ECC错误 │
;│ AH=04H:找不到指定的扇区 AH=11H:数据读取错误,使用ECC校正│
;│ AH=05H:硬盘重置错误 AH=20H:磁盘控制器失误 │
;│ AH=06H:不是原来的磁盘 AH=40H:寻找磁道错误 │
;│ AH=07H:硬盘参数错误 AH=80H:floppy disk drive 未备妥 │
;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未备妥 │
;│ AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到 │
;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误 │
;│ ECC为错误校正码,是用来侦测并校正磁盘上的数据是否有误,ECC具有 │
;│ 自动更正错误功能,而且只有硬盘才有ECC │
;└─────────────────────────────────┘
;┌─────────────────────────────────┐
;│BIOS 呼叫 INT 13H,AH=05H │
;│将指定的扇区格式化,以轨为单位 │
;│? (DL) <= 驱动器号 (A:00H,B:01H,C:80H,D:81H) │
;│? (CH) <= 磁道号码,从 0 开始,高 2 bit 可存于 cl 的 b6、b7 │
;│? (DH) <= 磁头号码,从 0 开始 │
;│? (ES:BX) <= 指向扇区参数表的内存变量,共四 byte,即 CHRN │
;│扇区参数表:C:磁柱编号(cylinder) R:扇区编号(Record) │
;│ H:磁头编号(head) N:每扇区的byte数(0:128,1:256 │
;│ 2:512,3:1024) │
;│成功 => (C=0),(失败 C=1,示误码如下) │
;│ AH=00H:成功 AH=0AH:硬盘的扇区损坏 │
;│ AH=01H:不合法的磁盘驱动器命令 AH=0BH:硬盘的磁道损坏 │
;│ AH=02H:扇区损坏或地址栏有误 AH=0CH:存取不存在的磁道 │
;│ AH=03H:写保护贴纸未撕 AH=10H:CRC/ECC错误 │
;│ AH=04H:找不到指定的扇区 AH=11H:数据读取错误,使用ECC校正│
;│ AH=05H:硬盘重置错误 AH=20H:磁盘控制器失误 │
;│ AH=06H:不是原来的磁盘 AH=40H:寻找磁道错误 │
;│ AH=07H:硬盘参数错误 AH=80H:floppy disk drive 未备妥 │
;│ AH=08HMA 忙碌中 AH=AAH:hard disk drive 未备妥 │
;│ AH=09HMA搬动记忆区越过64K AH=BBH:所指定的磁盘驱动器找不到 │
;│注:CRC为循环重复检查检,用来侦测磁盘上数据是否有误 │
;│ ECC为错误校正码,是用来侦测并校正磁盘上的
展开阅读全文