一 .8088 中斷向量 一.8088中斷向量 | ||
0-3 4-7 8-B C-F 10-13 14-17 18-1F | 0 1 2 3 4 5 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 68-6B | 10 11 12 13 14 15 16 17 18 19 1A | 螢幕顯示 裝置檢驗 測定存儲器容量 磁盤 I/O I/O 串行通訊口 I/O I/O 盒式錄音帶 I/O
|
四 . 提供給使用者的中斷 .提供給使用者的中斷 | ||
6C-6F 70-73 | 1B 1C | Ctrl-Break 控制的軟中斷 定時器控制的軟中斷 控制的軟中斷 定時器控制的軟中斷 |
五 . 資料表指針 .資料表指針 | ||
74-77 78-7B 7C-7F | 1D 1E 1F | 顯示器參量表 軟碟參數表 圖形表 |
六 .DOS 中斷 .DOS中斷 | ||
80-83 84-87 88-8B 8C-8F | 20 21 22 23 |
|
90-93 94-97 98-9B 9C-9F A0-BB BC-BF BC-BF C0-FF C0-FF | 24 25 26 27 28-2E 2F 30-3F |
|
| ||
100-17F 180-19F 1A0-1FF 200-217 218-3C3 3C4-3FF | 40-5F 60-67 68-7F 80-85 86-F0 F1-FF |
|
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 | 設定顯示方式 | 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 | 軟碟系統複位 | |||
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 | 初始化串行通訊口 | 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 | 啟動盒式錄音帶馬達 | |||
15 | 1 | 停止盒式錄音帶馬達 | ||
15 | 2 | 錄音帶分塊讀 | ES:BX=資料轉輸區位址 CX=位元組數 | AH=狀态位元組 AH=00讀成功,=01備援檢驗錯 =02無資料傳輸,=04無引導,=80非法指令 |
15 | 3 | 錄音帶分塊寫 | DS:BX=資料傳輸區位址 CX=位元組數 | AH=狀态位元組(同上) |
16 | 從鍵盤讀字元 | AL=字元碼,AH=掃描碼 | ||
16 | 1 | 讀鍵盤緩沖區字元 | ZF=0 AL=字元碼,AH=掃描碼 ZF=1 緩沖區空 | |
16 | 2 | 取鍵盤狀态位元組 | AL=鍵盤狀态位元組 | |
17 | 列印字元,回送狀态位元組 | AL=字元,DX=列印機号 | AH=列印機狀态位元組 | |
17 | 1 | 初始化列印機,回送狀态位元組 | DX=列印機号 | AH=列印機狀态位元組 |
17 | 2 | 取狀态位元組 | DX=列印機号 | AH=列印機狀态位元組 |
1A | 讀時鐘 | 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 | 清除報警 |