DOS系统功能调用

调用形式::

MOV AH, 01H
INT 21H

AH

功能

调用参数

返回参数

0

程序终止(同INT 20H)

CS=程序段前缀

1

键盘输入并回显

AL=输入字符

2

显示输出

DL=输出字符

3

异步通迅输入

AL=输入数据

4

异步通迅输出

DL=输出数据

5

打印机输出

DL=输出字符

6

直接控制台I/O

DL=FF(输入)

AL=输入字符

DL=字符(输出)

7

键盘输入(无回显)

AL=输入字符

8

键盘输入(无回显)

AL=输入字符

检测Ctrl-Break

9

显示字符串

DS:DX=串地址

'$'结束字符串

0A

键盘输入到缓冲区

DS:DX=缓冲区首地址

(DS:DX+1)=实际输入的字符数

(DS:DX)=缓冲区最大字符数

0B

检验键盘状态

AL=00 有输入

AL=FF 无输入

0C

清除输入缓冲区并

AL=输入功能号

请求指定的输入功能

(1,6,7,8,A)

0D

磁盘复位

清除文件缓冲区

0E

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

DL=驱动器号 0=A,1=B,…

AL=驱动器数

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 盘满

=02 DTA空间不够

16

建文件

DS:DX=FCB首地址

AL=00 建立成功

=FF 无磁盘空间

17

文件改名

DS:DX=FCB首地址

AL=00 成功

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

AL=FF 未成功

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

19

取当前缺省磁盘驱动器

AL=缺省的驱动器号 0=A,1=B,2=C,…

1A

置DTA地址

DS:DX=DTA地址

1B

取缺省驱动器FAT信息

AL=每簇的扇区数

DS:BX=FAT标识字节

CX=物理扇区大小

DX=缺省驱动器的簇数

1C

取任一驱动器FAT信息

DL=驱动器号

同上

21

随机读

DS:DX=FCB首地址

AL=00 读成功

=01 文件结束

=02 缓冲区溢出

=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首地址

AL=00 读成功

CX=记录数

=01 文件结束

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

=03 缓冲区不满

28

随机分块写

DS:DX=FCB首地址

AL=00 写成功

CX=记录数

=01 盘满

=02 缓冲区溢出

29

分析文件名

ES:DI=FCB首地址

AL=00 标准文件

DS:SI=ASCIIZ串

=01 多义文件

AL=控制分析标志

=02 非法盘符

2A

取日期

CX=年

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

2B

设置日期

CX:DH:DL=年:月:日

AL=00 成功

=FF 无效

2C

取时间

CH:CL=时:分

DH:DL=秒:1/100秒

2D

设置时间

CH:CL=时:分

AL=00 成功

DH:DL=秒:1/100秒

=FF 无效

2E

置磁盘自动读写标志

AL=00 关闭标志

AL=01 打开标志

2F

取磁盘缓冲区的首址

ES:BX=缓冲区首址

30

取DOS版本号

AH=发行号,AL=版本

31

结束并驻留

AL=返回码

DX=驻留区大小

33

Ctrl-Break检测

AL=00 取状态

DL=00 关闭Ctrl-Break检测

=01 置状态(DL)

=01 打开Ctrl-Break检测

DL=00 关闭检测

=01 打开检测

35

取中断向量

AL=中断类型

ES:BX=中断向量

36

取空闲磁盘空间

DL=驱动器号

成功:AX=每簇扇区数

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

BX=有效簇数

CX=每扇区字节数

DX=总簇数

失败:AX=FFFF

38

置/取国家信息

DS:DX=信息区首地址

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

AX=错误码

39

建立子目录(MKDIR)

DS:DX=ASCIIZ串地址

AX=错误码

3A

删除子目录(RMDIR)

DS:DX=ASCIIZ串地址

AX=错误码

3B

改变当前目录(CHDIR)

DS:DX=ASCIIZ串地址

AX=错误码

3C

建立文件

DS:DX=ASCIIZ串地址

成功:AX=文件代号

CX=文件属性

错误:AX=错误码

3D

打开文件

DS:DX=ASCIIZ串地址

成功:AX=文件代号

AL=0 读

错误:AX=错误码

=1 写

=3 读/写

3E

关闭文件

BX=文件代号

失败:AX=错误码

3F

读文件或设备

DS:DX=数据缓冲区地址

读成功:

BX=文件代号

AX=实际读入的字节数

CX=读取的字节数

AX=0 已到文件尾

读出错:AX=错误码

40

写文件或设备

DS:DX=数据缓冲区地址

写成功:

BX=文件代号

AX=实际写入的字节数

CX=写入的字节数

写出错:AX=错误码

41

删除文件

DS:DX=ASCIIZ串地址

成功:AX=00

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

42

移动文件指针

BX=文件代号

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

CX:DX=位移量

出错:AX=错误码

AL=移动方式(0:从文件头绝对位移,1:从当前位置相对移动,2:从文件尾绝对位移)

43

置/取文件属性

DS:DX=ASCIIZ串地址

成功:CX=文件属性

AL=0 取文件属性

失败:CX=错误码

AL=1 置文件属性

CX=文件属性

44

设备文件I/O控制

BX=文件代号

DX=设备信息

AL=0 取状态

=1 置状态DX

=2 读数据

=3 写数据

=6 取输入状态

=7 取输出状态

45

复制文件代号

BX=文件代号1

成功:AX=文件代号2

失败:AX=错误码

46

人工复制文件代号

BX=文件代号1

失败:AX=错误码

CX=文件代号2

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串地址

失败:AX=错误码

ES:BX=参数区首地址

AL=0 装入执行

AL=3 装入不执行

4C

带返回码结束

AL=返回码

4D

取返回代码

AX=返回代码

4E

查找第一个匹配文件

DS:DX=ASCIIZ串地址

AX=出错代码(02,18)

CX=属性

4F

查找下一个匹配文件

DS:DX=ASCIIZ串地址

AX=出错代码(18)

(文件名中带有?或*)

54

取盘自动读写标志

AL=当前标志值

56

文件改名

DS:DX=ASCIIZ串(旧)

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

ES:DI=ASCIIZ串(新)

57

置/取文件日期和时间

BX=文件代号

DX:CX=日期和时间

AL=0 读取

失败:AX=错误码

AL=1 设置(DX:CX)

58

取/置分配策略码

AL=0 取码

成功:AX=策略码

AL=1 置码(BX)

失败:AX=错误码

59

取扩充错误码

AX=扩充错误码

BH=错误类型

BL=建议的操作

CH=错误场所

5A

建立临时文件

CX=文件属性

成功:AX=文件代号

DS:DX=ASCIIZ串地址

失败:AX=错误码

5B

建立新文件

CX=文件属性

成功:AX=文件代号

DS:DX=ASCIIZ串地址

失败:AX=错误码

5C

控制文件存取

AL=00封锁

失败:AX=错误码

=01开启

BX=文件代号

CX:DX=文件位移

SI:DI=文件长度

62

取程序段前缀

BX=PSP地址

ASCII码

十进制代码

十六进制代码

MCS 字符或缩写

DEC 多国字符名

ASCII 控制字符 1

0

0

NUL

空字符

1

1

SOH

标题起始 (Ctrl/A)

2

2

STX

文本起始 (Ctrl/B)

3

3

ETX

文本结束 (Ctrl/C)

4

4

EOT

传输结束 (Ctrl/D)

5

5

ENQ

询问 (Ctrl/E)

6

6

ACK

认可 (Ctrl/F)

7

7

BEL

铃 (Ctrl/G)

8

8

BS

退格 (Ctrl/H)

9

9

HT

水平制表栏 (Ctrl/I)

10

0A

LF

换行 (Ctrl/J)

11

0B

VT

垂直制表栏 (Ctrl/K)

12

0C

FF

换页 (Ctrl/L)

13

0D

CR

回车 (Ctrl/M)

14

0E

SO

移出 (Ctrl/N)

15

0F

SI

移入 (Ctrl/O)

16

10

DLE

数据链接丢失 (Ctrl/P)

17

11

DC1

设备控制 1 (Ctrl/Q)

18

12

DC2

设备控制 2 (Ctrl/R)

19

13

DC3

设备控制 3 (Ctrl/S)

20

14

DC4

设备控制 4 (Ctrl/T)

21

15

NAK

否定接受 (Ctrl/U)

22

16

SYN

同步闲置符 (Ctrl/V)

23

17

ETB

传输块结束 (Ctrl/W)

24

18

CAN

取消 (Ctrl/X)

25

19

EM

媒体结束 (Ctrl/Y)

26

1A

SUB

替换 (Ctrl/Z)

27

1B

ESC

换码符

28

1C

FS

文件分隔符

29

1D

GS

组分隔符

30

1E

RS

记录分隔符

31

1F

US

单位分隔符

ASCII 特殊和数字字符

32

20

SP

空格

33

21

!

感叹号

34

22

"

引号 (双引号)

35

23

#

数字符号

36

24

$

美元符

37

25

%

百分号

38

26

&

和号

39

27


省略号 (单引号)

40

28

(

左圆括号

41

29

)

右圆括号

42

2A

*

星号

43

2B

+

加号

44

2C

,

逗号

45

2D


连字号或减号

46

2E

.

句点或小数点

47

2F

/

斜杠

48

30

0


49

31

1

1

50

32

2

2

51

33

3

3

52

34

4

4

53

35

5

5

54

36

6

6

55

37

7

7

56

38

8

8

57

39

9

9

58

3A

:

冒号

59

3B

;

分号

60

3C

<

小于

61

3D

=

等于

62

3E

>

大于

63

3F

?

问号

ASCII 字母字符

64

40

@

商业 at 符号

65

41

A

大写字母 A

66

42

B

大写字母 B

67

43

C

大写字母 C

68

44

D

大写字母 D

69

45

E

大写字母 E

70

46

F

大写字母 F

71

47

G

大写字母 G

72

48

H

大写字母 H

73

49

I

大写字母 I

74

4A

J

大写字母 J

75

4B

K

大写字母 K

76

4C

L

大写字母 L

77

4D

M

大写字母 M

78

4E

N

大写字母 N

79

4F

O

大写字母 O

80

50

P

大写字母 P

81

51

Q

大写字母 Q

82

52

R

大写字母 R

83

53

S

大写字母 S

84

54

T

大写字母 T

85

55

U

大写字母 U

86

56

V

大写字母 V

87

57

W

大写字母 W

88

58

X

大写字母 X

89

59

Y

大写字母 Y

90

5A

Z

大写字母 Z

91

5B

[

左中括号

92

5C

\

反斜杠

93

5D

]

右中括号

94

5E

^

音调符号

95

5F

_

下划线

96

60

`

重音符

97

61

a

小写字母 a

98

62

b

小写字母 b

99

63

c

小写字母 c

100

64

d

小写字母 d

101

65

e

小写字母 e

102

66

f

小写字母 f

103

67

g

小写字母 g

104

68

h

小写字母 h

105

69

i

小写字母 i

106

6A

j

小写字母 j

107

6B

k

小写字母 k

108

6C

l

小写字母 l

109

6D

m

小写字母 m

110

6E

n

小写字母 n

111

6F

o

小写字母 o

112

70

p

小写字母 p

113

71

q

小写字母 q

114

72

r

小写字母 r

115

73

s

小写字母 s

116

74

t

小写字母 t

117

75

u

小写字母 u

118

76

v

小写字母 v

119

77

w

小写字母 w

120

78

x

小写字母 x

121

79

y

小写字母 y

122

7A

z

小写字母 z

123

7B

{

左大括号

124

7C

|

垂直线

125

7D

}

右大括号 (ALTMODE)

126

7E

~

代字号 (ALTMODE)

127

7F

DEL

擦掉 (DELETE)

控制字符

128

80

[保留]

129

81

[保留]

130

82

[保留]

131

83

[保留]

132

84

IND

索引

133

85

NEL

下一行

134

86

SSA

被选区域起始

135

87

ESA

被选区域结束

136

88

HTS

水平制表符集

137

89

HTJ

对齐的水平制表符集

138

8A

VTS

垂直制表符集

139

8B

PLD

部分行向下

140

8C

PLU

部分行向上

141

8D

RI

反向索引

142

8E

SS2

单移 2

143

8F

SS3

单移 3

144

90

DCS

设备控制字符串

145

91

PU1

专用 1

146

92

PU2

专用 2

147

93

STS

设置传输状态

148

94

CCH

取消字符

149

95

MW

消息等待

150

96

SPA

保护区起始

151

97

EPA

保护区结束

152

98

[保留]

153

99

[保留]

154

9A

[保留]

155

9B

CSI

控制序列引导符

156

9C

ST

字符串终止符

157

9D

OSC

操作系统命令

158

9E

PM

秘密消息

159

9F

APC

应用程序

其他字符

160

A0

[保留] 2

161

A1

¡

反向感叹号

162

A2

¢

分币符

163

A3

£

英磅符

164

A4

[保留] 2

165

A5

¥

人民币符

166

A6

[保留] 2

167

A7

§

章节符

168

A8

¤

通用货币符号 2

169

A9

©

版权符号

170

AA

ª

阴性顺序指示符

171

AB

«

左角引号

172

AC

[保留] 2

173

AD

[保留] 2

174

AE

[保留] 2

175

AF

[保留] 2

176

B0

°

温度符

177

B1

±

加/减号

178

B2

²

上标 2

179

B3

³

上标 3

180

B4

[保留] 2

181

B5

µ

微符

182

B6


段落符,pilcrow

183

B7

·

中点

184

B8

[保留] 2

185

B9

¹

上标 1

186

BA

º

阳性顺序指示符

187

BB

»

右角引号

188

BC

¼

分数四分之一

189

BD

½

分数二分之一

190

BE

[保留] 2

191

BF

¿

反向问号

192

C0

À

带重音符的大写字母 A

193

C1

Á

带尖锐重音的大写字母 A

194

C2

Â

带音调符号的大写字母 A

195

C3

Ã

带代字号的大写字母 A

196

C4

Ä

带元音变音 (分音符号) 的大写字母 A

197

C5

Å

带铃声的大写字母 A

198

C6

Æ

大写字母 AE 双重元音

199

C7

Ç

带变音符号的大写字母 C

200

C8

È

带重音符的大写字母 E

201

C9

É

带尖锐重音的大写字母 E

202

CA

Ê

带音调符号的大写字母 E

203

CB

Ë

带元音变音 (分音符号) 的大写字母 E

204

CC

Ì

带重音符的大写字母 I

205

CD

Í

带尖锐重音的大写字母 I

206

CE

Î

带音调符号的大写字母 I

207

CF

Ï

带元音变音 (分音符号) 的大写字母 I

208

D0

[保留] 2

209

D1

Ñ

带代字号的大写字母 N

210

D2

Ò

带重音符的大写字母 O

211

D3

Ó

带尖锐重音的大写字母 O

212

D4

Ô

带音调符号的大写字母 O

213

D5

Õ

带代字号的大写字母 O

214

D6

Ö

带元音变音 (分音符号) 的大写字母 O

215

D7

OE

大写字母 OE 连字 2

216

D8

Ø

带斜杠的大写字母 O

217

D9

Ù

带重音符的大写字母 U

218

DA

Ú

带尖锐重音的大写字母 U

219

DB

Û

带音调符号的大写字母 U

220

DC

Ü

带元音变音 (分音符号) 的大写字母 U

221

DD

Y

带元音变音 (分音符号) 的大写字母 Y

222

DE

[保留] 2

223

DF

ß

德语高调小写字母 s

224

E0

à

带重音符的小写字母 a

225

E1

á

带尖锐重音的小写字母 a

226

E2

â

带音调符号的小写字母 a

227

E3

ã

带代字号的小写字母 a

228

E4

ä

带元音变音 (分音符号) 的小写字母 a

229

E5

å

带铃声的小写字母 a

230

E6

æ

小写字母 ae 双重元音

231

E7

ç

带变音符号的小写字母 c

232

E8

è

带重音符的小写字母 e

233

E9

é

带尖锐重音的小写字母 e

234

EA

ê

带音调符号的小写字母 e

235

EB

ë

带元音变音 (分音符号) 的小写字母 e

236

EC

ì

带重音符的小写字母 i

237

ED

í

带尖锐重音的小写字母 i

238

EE

î

带音调符号的小写字母 i

239

EF

ï

带元音变音 (分音符号) 的小写字母 i

240

F0

[保留] 2

241

F1

ñ

带代字号的小写字母 n

242

F2

ò

带重音符的小写字母 o

243

F3

ó

带尖锐重音的小写字母 o

244

F4

ô

带音调符号的小写字母 o

245

F5

õ

带代字号的小写字母 o

246

F6

ö

带元音变音 (分音符号) 的小写字母 o

247

F7

oe

小写字母 oe 连字 2

248

F8

ø

带斜杠的小写字母 o

249

F9

ù

带重音符的小写字母 u

250

FA

ú

带尖锐重音的小写字母 u

251

FB

û

带音调符号的小写字母 u

252

FC

ü

带元音变音 (分音符号) 的小写字母 u

253

FD

ÿ

带元音变音 (分音符号) 的小写字母 y 2

254

FE

[保留] 2

255

FF

[保留] 2

跳转命令

指 令

描 述

条 件

别 名

相 反 指 令

JC

如果进位位被置位则跳转

进位标志=1

JB,JNAE

JNC

JNC

如果进位位没有置位则跳转

进位标志=0

JNB,JAE

JC

JZ

如果0标志被置位则跳转

0标志=1

JE

JNZ

JNZ

如果0标志没有置位则跳转

0标志=0

JNE

JZ

JS

如果符号位被置位则跳转

符号标志=1

JNS

JNS

如果符号位没有被置位则跳转

符号标志=0

JS

JO

如果溢出标志置位则跳转

溢出标志=1

JNO

JNO

如果溢出标志没有置位则跳转

溢出标志=0

JO

JP

如果奇偶校验位被置位则跳转

奇偶校验标志=1

JPE

JNP

JPE

如果奇偶校验位为偶校验则跳转

奇偶校验标志=1

JP

JPO

JNP

如果奇偶校验位没有被置位则跳转

奇偶校验标志=0

JPO

JP

JPO

如果奇偶校验位为奇校验则跳转

奇偶校验标志=0

JNP

JPE

JA

如果超过(>)则跳转

进位标志=0,0标志=0

JNBE

JNA

JNBE

如果不低于或等于(不 <=)则跳转

进位标志=0,0标志=0

JA

JBE

JAE

如果超过或等于(>=)则跳转

进位标志=0

JNC,JNB

JNAE

JNB

如果不低于则跳转(不 <)

进位标志=0

JNC,JAE

JB

JB

如果低于(<)则跳转

进位标志=1

JC,JNAE

JNB

JNAE

如果不超过或等于(不>=)则跳转

进位标志=1

JC,JB

JAE

JBE

如果低于或等于(<=)则跳转

进位标志=1或0标志=1

JNA

JNBE

JNA

如果不超过(不>)则跳转

进位标志=1或0标志=1

JBE

JA

JE

如果相等(=)则跳转

0标志=1

JZ

JNE

JNE

如果不相等(<>)则跳转

0标志=0

JNZ

JE

JG

如果大于(>)则跳转

符号标志=溢出标志或0标志=0

JNLE

JNG

JNLE

如果小于或等于(<=)则跳转

符号标志=溢出标志或0标志=0

JG

JLE

JGE

如果大于或等于(>=)则跳转

符号标志=溢出标志

JNL

JGE

JNL

如果不小于(不<)则跳转

符号标志=溢出标志

JGE

JL

JL

如果小于(<)则跳转

符号标志<>溢出标志

JNGE

JNL

JNGE

如果大于或等于(>=)跳转

符号标志<>溢出标志

JL

JGE

JLE

如果小于或等于(<=)跳转

符号标志<>溢出标志或0标志=1

JNG

JNLE

JNG

如果不大于(不>)则跳转

符号标志<>溢出标志或0标志=1

JLE

JG

JE

如果等于(=)则跳转

0标志=1

JZ

JNE

JNE

如果不等于(<>)则跳转

0标志=0

JNZ

JE