一 .8088 中断向量

一.8088中断向量

0-3



4-7



8-B



C-F



10-13



14-17



18-1F

0



1



2



3



4





6,7

除以零



( 用于 DEBUG)

(用于DEBUG)

非屏蔽中断



断点指令



溢出



打印屏幕



保留

.8259 中断向量

.8259中断向量

20-23



24-27



28-2B



2C-2F



30-33



34-37



38-3B



3C-3F

8



9



A



B



C



D



E



F

定时器



键盘



/ 图形

(secondary)


/图形


(secondary)

(secondary)

(primary)

(primary)

硬磁盘



软磁盘



并行打印机

.BIOS 中断

.BIOS中断

40-43



44-47



48-4B



4C-4F



50-53



54-57



58-5B 



5C-5F 



60-63 



64-67 





10



11



12



13



14



15



16



17 



18 



19 





屏幕显示



设备检验



测定存储器容量



I/O

I/O

I/O

I/O

I/O 键盘输入

I/O

键盘输入


入口代码

引导装入程序



日时钟



入口代码

引导装入程序



日时钟


入口代码


引导装入程序



日时钟

. 提供给用户的中断

.提供给用户的中断

6C-6F



70-73

1B



1C

控制的软中断

定时器控制的软中断


控制的软中断


定时器控制的软中断

. 数据表指针

.数据表指针

74-77



78-7B



7C-7F

1D



1E



1F

显示器参量表



软盘参数表



图形表

.DOS 中断

.DOS中断

80-83



84-87



88-8B



8C-8F 

20



21



22



23

系统功能调用   Ctrl-Break退出   Ctrl-Break退出

90-93



94-97



98-9B



9C-9F 



A0-BB

BC-BF

BC-BF

C0-FF 

C0-FF 

24



25









 2F



30-3F

严重错误处理 绝对磁盘读功能 绝对磁盘写   DOS保留   DOS保留

七.BASIC中断

100-17F



180-19F



1A0-1FF



200-217



218-3C3



3C4-3FF

40-5F



60-67



68-7F



80-85



86-F0



F1-FF


保留

用户软中断



保留



BASIC 保留

BASIC保留

中断

保留


中断


保留




DOS功能调用


AH

功 能

调 用 参 数

返 回 参 数

00

程序终止



(同INT 20H)

CS=程序段前缀


01

键盘输入并回显


AL=输入字符

02

显示输出

DL=输出字符


03

异步通讯输入


AL=输入数据

04

异步通讯输出

DL=输出数据


05

打印机输出

DL=输出字符


06

直接控制台I/O

DL=FF(输入) DL=字符(输入)


07

键盘输入(无回显)


AL=输入字符

08

键盘输入(无回显) 检测Ctrl-break


AL=输入字符

09

显示字符串

DS:DX=串地址"&"结束字符串


0A

键盘输入到缓冲区

DS:DX=缓冲区首地址(DS:DX)=缓冲区最大 (DS:DX+1)=实字符数际输入的字符数


0B

检验键盘状态


AL=00有输入,AL=FF无输入

0C

清除输入缓冲区并请求指定的输入功能

AL=输入功能号(1,6,7,8,A)


0D

磁盘复位


清除文件缓冲区

0E

指定当前缺省的磁盘驱动器

DL=驱动器号 AL=驱动器数0=A,1=B,...


0F

打开文件

DS:DX=FCB首地址

AL=00文件找到



AL=FF文件未找到

10

关闭文件

DS:DX=FCB首地址

AL=00目录修改成功



AL=FF目录中未找到文件

11

查找第一个目录项

DS:DX=FCB首地址

AL=00找到,AL=FF未找到

12

查找下一个目录项

DS:DX=FCB首地址(文件名中带*或?)

AL=00找到,AL=FF未找到

13

删除文件

DS:DX=FCB首地址

AL=00删除成功, AL=FF未找到

14

顺序读

DS:DX=FCB首地址

AL=00 读成功



=01 文件结束, 记录中无数据



=02 DTA空间不够



=03 文件结束,记录不完整

15

顺序写

DS:DX=FCB首地址

AL=00 写成功



=01 盘满



=02DTA空间不够

16

建文件

DS:DX=FCB首地址

AL=00 建立成功



=FF 无磁盘空间

17

文件改名

DS:DX=FCB



首地址(DS:DX+1)=旧文件名



(DS:DX+17)=新文件名

AL= 00 成功



= FF 未成功

19

取当前缺省磁盘


AL=缺省的驱动器



驱动器 号0=A,1=B,2=C,.

1A

置DTA地址

DS:DX=DTA地址


1B

取缺省驱动器FAT信息


AL=每簇的扇区数



DS:BX=FTA标识字节



CX=物理扇区的大小



DX=缺省驱动器的簇数

1C

取任一驱动器FAT信息

DL=驱动器号

同上

21

随机读

DS:DX=FCB首地址

AL=00读成功



=01文件结束



=缓冲区溢出



=03缓冲区不满

22





随机写

DS:DX=FCB首地址

AL=00成功



=01盘满



=02缓冲区溢出

23

测定大小

DS:DX=FCB首地址

AL=00成功



文件长度填入FCB



AL=FF未找到

24

设置随机记录号

DS:DX=FCB首地址


25

设置中断向量

DS:DX=中断向量



AL=中断类型号


26

建立程序段前缀

DX=新的程序段的段前缀


27

随机分块读

DS:DX=FCB首地址



CX=记录数

AL= 00读成功



= 01文件结束



= 02缓冲区太小,传输结束



= 03缓冲区不满



CX=读取的记录数

28

随机分块写

DS:DX=FCB首地址



CX=记录数

AL=00写成功



AL=01盘满



=02缓冲区溢出

29

分析文件名

ES:DI=FCB首地址



DS:SI=ASCII串



AL=控制分析标志

AL=00标准文件



=01多义文件



=FF非法盘符

2A

取日期


CX=年 DH:DL=月:日(二进制)

2B

设置日期

CX:DH:DL=年:月:日

AL=00成功, AL=FF无效

2C

取时间


CH:CL=时:分



DH:DL=秒:1/100秒

2D

设置时间

CH:CL=时:分



DH:DL=秒:1/100秒

AL=00成功



AL=FF无效

2E

置磁盘自动读写标志

AL=00关闭标志



AL=01打开标志


2F

取磁盘缓冲区的首址


ES:BX=缓冲区首址

30

取DOS版本号


AH=发行号,AL=版号

31

结束并驻留

AL=返回码, DX=驻留区大小


33

Ctrl-Break检测

AL=00取状态



AL=01置状态(DL)



DL=00关闭检测



=01打开检测

DL=00关闭Ctrl-Break检测



=01打开Ctrl-Break检测

35

取中断向量

AL=中断类型

ES:BX=中断向量

36

取空闲磁盘空间

DL=驱动器号



0=缺省,1=A,2=B…


成功:AX=每簇扇区数,BX=有效簇数,CX=每扇区字节数,DX=总簇数



失败:AX=FFFF

38

置/取国家信息

DS:DX=信息区首地址

BX=国家码(国际电话前缀码)



AX=错误码

39

建立子目录(MKDIR)

DS:DX=ASCII 串地址

AX=错误码

3A

删除子目录(RMDIR)

DS:DX=ASCII 串地址

AX=错误码

3B

改变当前目录(CHDIR)

DS:DX=ASCII 串地址

AX=错误码

3C

建立文件

DS:DX=ASCII 串地址



CX=文件属性

成功:AX=文件代号



失败:AX=错误码

3D

打开文件

DS:DX=ASCII 串地址



AL=0读, =1写,=2读/写

成功:AX=文件代号



失败:AX=错误码

3E

关闭文件

BX=文件号

失败:AX=错误码

3F

读文件或设备

DS:DX=数据缓冲区地址



BX=文件代号



CX=读取的字节数

读成功:



AX=实际读入的字节数AX=0 已到文件尾



读出错:AX=错误码

40

写文件或设备

DS:DX=数据缓冲区地址



BX=文件代号



CX=写入的字节数

写成功:



AX=实际写入的字节数



写出错: AX=错误码

41

删除文件

DS:DX=ASCIIZ串地址

成功:AX=00,出错:AX=错误码(2,5)

42

移动文件指针

BX=文件代号



CX:DX=位移量



AL=移动方式(0,1,2)

成功:DX:AX=新指针位置



出错:AX=错误码

43

置/取文件属性

DS:DX=ASCII 串地址



AL=0取文件属性



AL=1置文件属性



CX=文件属性

成功:CX=文件属性



失败:AX=错误码

44

设备文件I/O控制

BX=文件代号



AL=0取状态



=1置状态DX



=2读数据



=3写数据



=6取输入状态



=7取输出状态

DX=设备信息

45

复制文件代号

BX=文件代号1

成功:AX=文件代号2



失败:AX=错误码

46

人工复制文件代号

BX=文件代号1



CX=文件代号2

失败:AX=错误码

47

取当前目录路径名

DL=驱动器号



DS:SI=ASCIIZ串地址

(DS:SI=ASCIIZ串)



失败:AX=错误码

48

分配内存空间

BX=申请内存容量

成功:AX=分配内存首址



失败:BX=最大可用空间

49

释放内存空间

ES=内存起始段地址

失败:AX=错误码

4A

调整已分配的存储块

ES=原内存起始地址



BX=再申请的容量

失败:BX=最大可用空间



AX=错误码

4B

装配/执行程序

DS:DX=ASCIIZ串地址



ES:BX=参数区首地址



AL=0装入执行



AL=3装入不执行

失败:AX=错误码

4C

带返回码结束

AL=返回码


4D

取返回码


AX=返回代码

4E

查找第一个匹配文件

DS:DX=ASCIIZ串地址



CX=属性

AX=出错代码(02,18)

4F

查找下一个匹配文件

DS:DX=ASCII 串地址



(文件名中带?或*)

AX=出错代码(18)

54

取盘自动读写标志


AL=当前标志值

56

文件改名

DS:DX=ASCII 串(旧)



ES:DI=ASCIIZ串(新)

AX=出错码(03,05, 17)

57

置/取文件目期和时间

BX=文件代号



AL=0读取



AL=1设置(DX:CX)

DX:CX=日期和时间



失败:AX=错误码

58

取/置分配策略码

AL=0取码



=1置码(BX)



BX=策略码

成功:AX=策略码



失败:AX=错误码

59

取扩充错误码


AX=扩充错误码



BH=错误类型



BL=建议的操作



CH=错误场所

5A

建立临时文件

CX=文件属性



DS:DX=ASCIIZ串地址

成功:AX=文件代号



失败:AX=错误码

5B

建立新文件

CX=文件属性



DS:DX=ASCIIZ串地址

成功:AX=文件代号



失败:AX=错误码

5C

控制文件存取

AL=00封锁,=01开启



BX=文件代号



CX:DX=文件位移



SI:DI=文件长度

失败:AX=错误码

62

取程序段前缀地址


BX=PSP地址




* AH=0-2E适用DOS1.0以上版本;



AH=2F-57适用DOS2.0以上版本;



AH=58-62适用DOS3.0以上版本.

  BIOS中断


INT

AH

功能

调 用 参 数

返 回 参 数

10

0

设置显示方式

AL=00 40*25黑白方式



=01 40*25彩色方式



=02 80*25黑白方式



=03 80*25彩色方式



=04 320*200彩色图形方式



=05 320*200黑白图形方式



=06 640*200黑白图形方式



=07 80*25单色文本方式



=08 160*200 16色图形



=09 320*200 16色图形



=0A 640*200 16色图形



=0B 保留(EGA)



=0C 保留(EGA)



=0D 320*200彩色图形(EGA)



=0E 640*200彩色图形(EGA)



=0F 640*350黑白图形(EGA)



=10 640*350彩色图形(EGA)



=11 640*480单色图形(EGA)



=12 640*480 16色图形(EGA)



=13 320*200 256色图形(EGA)



=40 80*30彩色文本(CGE400)



=41 80*50彩色文本(CGE400)



=42 640*400彩色文本(CGE400)


10

1

置光标类型

(CH)0-3=光标起始行



(CL)0-3=光标结束行


10

2

置光标位置

BH=页号,DH,DL=行,列


10

3

读光标位置

BH=页号

CH=光标起始行,DH,DL=行,列

10

4

读光笔位置


AH=0光笔未触发,=1光笔触发CH=象素行, BX=象素列,DH=字符行,DL=字符列

10

5

置显示页

AL=页号


10

6

屏幕初始化或上卷

AL=上卷行数,AL=0整个窗口空白BH=卷入行属性,CH=左上角行号, CL=左上角列号,CH=右下角行号,DL=右下角列号


10

7

屏幕初始化或下卷

AL=下卷行数,AL=0整个窗口空白BH=卷入行属性,CH=左上角行号,CL=左上角列号,DH=右下角行号,DL=右下角列号


10

8

读光标位置的字符和属性

BH=显示页

AH=属性,AL=字符

10

9

在光标位置显示字符及其属性

BH=显示页,AL=字符,BL=属性



CX=字符重复次数


10

A

在光标位置显示字符

BH=显示页,AL=字符



CX=字符重复次数


10

B

置彩色调板(320*200图形)

BH=彩色调板ID



BL=和ID配套使用的颜色


10

C

写象素

DX=行(0-199) CX=列(0-639)



AL=象素值


10

D

读象素

DX=行(0-199) CX=列(0-639)

AL=象素值

10

E

显示字符(光标前移)

AL=字符,BL=前景色


10

F

取当前显示方式


AH=字符列数,AL=显示方式

10

13

显示字符串(适用AT)

ES:BP=串地址,CX=串长度



DH,DL=起始行,列,BH=页号



AL=0,BL=属性



串:char,char...



AL=1,BL=属性



串:char,char...



AL=2



串:char,attr,char, attr,...



AL=3



串:char,attr,char,attr,...





光标返回起始位置





光标跟随移动





光标返回起始位置





光标跟随移动

11


设备检验


AX=返回值



bit0=1,配有磁盘



bit1=1,80287协处理器



bit4,5=01,40*25BW(彩色板)



=10,80*25BW(彩色板)



=11,80*25BW(黑白板)



bit6,7=软盘驱动器号



bit9,10,11= RS-232板号



bit12=游戏适配器



bit13=串行打印机



bit14,15=打印机号

12


测定存储器容量


AX=字节数(KB)

13

0

软盘系统复位



13

1

读软盘状态


AL=状态字节

13

2

读磁盘

AL=扇区数



CH,CL=磁道号,扇区号



DH,DL=磁头号,驱动器号



ES:BX=数据缓冲区地址

读成功:AH=0



AL=读取的扇区数



读失败:



AH=出错代码

13

3

写磁盘

同上

写成功:AH=0 AL=写入的扇区数



写失败: AH=出错代码

13

4

检验磁盘扇区

同上(ES:BX不设置)

成功:AH=0 AL=检验的扇区数



失败:AH=出错代码

13

5

格式化盘磁道

ES:BX=磁道地址

成功:AH=0 失败:AH=出错代码

14

0

初始化串行通讯口

AL= 初始化参数



DX=通讯口号(0,1)

AH = 通讯口状态



AL = 调制解调器状态

14

1

向串行通讯口写字符

AL=字符,DX=通讯口号(0,1)

写成功:(AH)7=0



写失败:(AH)7=1



(AH)0-5=通讯口状态

14

2

从串行通讯口读字符

DX=通讯口号(0,1)

读成功:(AH)7=0,(AL)=字符



读失败:(AH)7=1,(AH)0-6=通讯口状态

14

3

取通讯口状态

DX=通讯口号(0,1)

AH=通讯口状态



AL=调制解调器状态

15

0

启动盒式磁带马达



15

1

停止盒式磁带马达



15

2

磁带分块读

ES:BX=数据转输区地址



CX=字节数

AH=状态字节



AH=00读成功,=01冗余检验错



=02无数据传输,=04无引导,=80非法命令

15

3

磁带分块写

DS:BX=数据传输区地址



CX=字节数

AH=状态字节(同上)

16

0

从键盘读字符


AL=字符码,AH=扫描码

16

1

读键盘缓冲区字符


ZF=0 AL=字符码,AH=扫描码



ZF=1 缓冲区空

16

2

取键盘状态字节


AL=键盘状态字节

17

0

打印字符,回送状态字节

AL=字符,DX=打印机号

AH=打印机状态字节

17

1

初始化打印机,回送状态字节

DX=打印机号

AH=打印机状态字节

17

2

取状态字节

DX=打印机号

AH=打印机状态字节

1A

0

读时钟


CH:CL=时:分



DH:DL=秒:1/100秒

1A

1

置时钟

CH:CL=时:分,DH:DL=秒:1/100秒


1A

2

读实时钟


CH:CL=时:分(BCD)



DH:DL=秒:1/100秒(BCD)

1A

6

置报警时间

CH:CL=时:分(BCD)



DH:DL=秒:1/100秒(BCD)


1A

7

清除报警