AH | 功能 | 調用參數 | 返回參數 |
00 | 程序終止(同INT 20H) | CS=程序段前綴 | |
01 | 鍵盤輸入並回顯 | | AL=輸入字符 |
02 | 顯示輸出 | DL=輸出字符 | |
03 | 異步通迅輸入 | | AL=輸入數據 |
04 | 異步通迅輸出 | 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地址 |