中斷向量地址一覽表
一 .8088 中斷向量 |
||
0-3 4-7 8-B C-F 10-13 14-17 18-1F |
0 1 2 3 4 5 6,7 |
除以零 單步 ( 用于 DEBUG) 非屏蔽中斷 斷點指令 溢出 打印屏幕 保留 |
二 .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) 異步通訊 (primary) 硬磁盤 軟磁盤 并行打印機 |
三 .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
打印機輸出 BASIC 入口代碼 引導裝入程序 日時鐘 |
四 . 提供給用戶的中斷 |
||
6C-6F 70-73 |
1B 1C |
Ctrl-Break 控制的軟中斷 定時器控制的軟中斷 |
五 . 數據表指針 |
||
74-77 78-7B 7C-7F |
1D 1E 1F |
顯示器參量表 軟盤參數表 圖形表 |
六 .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 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 |
用戶軟中斷 保留 由 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 |
清除報警 |
|
|
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
