AH
|
功能
|
調用參數
|
返回參數
|
00
|
程序終止(同INT 20H)
|
CS=程序段前綴
|
01
|
鍵盤輸入並回顯
|
AL=輸入字符
|
02
|
顯示輸出
|
DL=輸出字符
|
03
|
異步通迅輸入(從COM口讀入到AL)
|
AL=輸入數據
|
04
|
異步通迅輸出(從DL輸出到COM口)
|
DL=輸出數據
|
05
|
打印機輸出
|
DL=輸出字符
|
06
|
直接控制檯I/O
|
DL=FF(輸入)
DL=字符(輸出)
|
AL=輸入字符
|
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=驅動器號 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首地址
(DS:DX+1)=舊文件名
(DS:DX+17)=新文件名
|
AL=00 成功
AL=FF 未成功
|
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首地址
CX=記錄數
|
AL=00 讀成功
=01 文件結束
=02 緩衝區太小,傳輸結束
=03 緩衝區不滿
|
28
|
隨機分塊寫
|
DS:DX=FCB首地址
CX=記錄數
|
AL=00 寫成功
=01 盤滿
=02 緩衝區溢出
|
29
|
分析文件名
|
ES:DI=FCB首地址
DS:SI=ASCIIZ串
AL=控制分析標誌
|
AL=00 標準文件
=01 多義文件
=02 非法盤符
|
2A
|
取日期
|
CX=年
DH:DL=月:日(二進制)
|
2B
|
設置日期
|
CX:DH:DL=年:月:日
|
AL=00 成功
=FF 無效
|
2C
|
取時間
|
CH:CL=時:分
DH:DL=秒:1/100秒
|
2D
|
設置時間
|
CH:CL=時:分
DH:DL=秒:1/100秒
|
AL=00 成功
=FF 無效
|
2E
|
置磁盤自動讀寫標誌
|
AL=00 關閉標誌
AL=01 打開標誌
|
2F
|
取磁盤緩衝區的首址
|
ES:BX=緩衝區首址
|
30
|
取DOS版本號
|
AH=發行號,AL=版本
|
31
|
結束並駐留
|
AL=返回碼
DX=駐留區大小
|
33
|
Ctrl-Break檢測
|
AL=00 取狀態
=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=ASCIIZ串地址
|
AX=錯誤碼
|
3A
|
刪除子目錄(RMDIR)
|
DS:DX=ASCIIZ串地址
|
AX=錯誤碼
|
3B
|
改變當前目錄(CHDIR)
|
DS:DX=ASCIIZ串地址
|
AX=錯誤碼
|
3C
|
建立文件
|
DS:DX=ASCIIZ串地址
CX=文件屬性
|
成功:AX=文件代號 錯誤:AX=錯誤碼
|
3D
|
打開文件
|
DS:DX=ASCIIZ串地址
AL=0 讀
=1 寫
=3 讀/寫
|
成功: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=ASCIIZ串地址
AL=0 取文件屬性
AL=1 置文件屬性
CX=文件屬性
|
成功:CX=文件屬性 失敗:CX=錯誤碼
|
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=ASCIIZ串地址
(文件名中帶有?或*)
|
AX=出錯代碼(18)
|
54
|
取盤自動讀寫標誌
|
AL=當前標誌值
|
56
|
文件改名
|
DS:DX=ASCIIZ串(舊)
ES:DI=ASCIIZ串(新)
|
AX=出錯碼(03,05,17)
|
57
|
置/取文件日期和時間
|
BX=文件代號
AL=0 讀取
AL=1 設置(DX:CX)
|
DX:CX=日期和時間 失敗:AX=錯誤碼
|
58
|
取/置分配策略碼
|
AL=0 取碼
AL=1 置碼(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地址
|