中断表
中斷INT 21H :
1、字符功能調用類(Character-Oriented Function)01H、07H和08H — 從標準輸
入設備輸入字符
02H — 字符輸出
03H — 輔助設備的輸入
04H — 輔助設備的輸出
05H — 打印輸出
06H — 控制臺輸入/輸出
09H — 顯示字符串
0AH — 鍵盤緩沖輸入
0BH — 檢測輸入狀態
0CH — 清輸入緩沖區的輸入功能
(1)、功能01H、07H和08H 功能描述: 從標準輸入設備(如:鍵盤)讀入一個字符
。該中斷在處理過程中將一直處于等待狀態直到有字符可讀為止。該輸入還可被
重定向,如果這樣做,則無法判斷文件是否已到文件尾
入口參數: AH=01H,過濾掉控制字符,并回顯
=07H,不過濾掉控制字符,不回顯
=08H,過濾掉控制字符,不回顯
出口參數: AL=輸入字符的ASCII碼
(2)、功能02H
功能描述: 向標準輸出設備(如:屏幕)輸出一個字符。該輸出還可被重定向,
如果這樣做,則將無法判斷磁盤是否滿
入口參數: AH=02H
DL=待輸出字符的ASCII碼
出口參數: 無
(3)、功能03H
功能描述: 從輔助設備讀入一個字符,該輔助設備的缺省值為COM1
入口參數: AH=03H
出口參數: AL=讀入字符的ASCII碼
(4)、功能04H
功能描述: 向輔助設備輸出一個字符,該輔助設備的缺省值為COM1
入口參數: AH=04H
DL=待輸出字符的ASCII碼
出口參數: 無
(5)、功能05H
功能描述: 向標準的輸出設備輸出一個字符。該缺省的輸出設備為LPT1端口的
打印機,除非用MODE命令來改變
入口參數: AH=05H
DL=待輸出字符的ASCII碼
出口參數: 無
(6)、功能06H
功能描述: 控制臺(如:鍵盤、屏幕)輸入/輸出。如果輸入/輸出操作被重定向
,那么,將無法判斷文件是否已到文件尾,或磁盤已滿
入口參數: AH=06H,DL=輸入/輸出功能選擇
出口參數: 若DL=00H-FEH,則此功能為輸出,DL為待輸出字符的ASCII碼;
若DL=0FFH,則此功能為輸入,此時:若ZF=1,則無字符可讀,否則,AL=讀入
字符的ASCII碼
(7)、功能09H
功能描述: 輸出一個字符串到標準輸出設備上。如果輸出操作被重定向,那么
,將無法判斷磁盤已滿
入口參數: AH=09H
DS:DX=待輸出字符的地址
說明:待顯示的字符串以’$’作為其結束標志
出口參數: 無
(8)、功能0AH
功能描述: 從標準輸入設備上讀入一個字節字符串,遇到“回車鍵”結束輸入(
輸入的字符在標準的輸出設備上有回顯)。如果該輸入操作被重定向,那么,將無
法判斷文件是否已到文件尾
入口參數: AH=0AH
DS:DX=存放輸入字符的起始地址
接受輸入字符串緩沖區的定義說明:
1、第一個字節為緩沖區的最大容量,可認為是入口參數;
2、第二個字節為實際輸入的字符數(不包括回車鍵),可看作出口參數;
3、從第三個字節開始存放實際輸入的字符串;
4、字符串以回車鍵結束,回車符是接受的最后一個字符;
5、若輸入的字符數超過緩沖區的最大容量,則多出的部分被丟棄,系統并發
出響鈴,直到輸入“回車”鍵才結束輸入。
例如:
BUFF 80, ?, 80 DUP(?) ;最多接受80個字符
出口參數: 無
(9)、功能0BH
功能描述: 檢查標準輸入設備上是否有字符可讀。該輸入操作可被重定向
入口參數: AH=0BH
出口參數: AL=00H——無字符可讀;FFH——有字符可讀
(10)、功能0CH
功能描述: 清空當前的標準輸入緩沖區,再讀入字符。其輸入操作可被重定向
入口參數: AH=0CH
AL=01H、06H、07H、08H或0AH
出口參數: 若入口參數AL為0AH,則DS:DX=存放輸入字符的起始地址,否則,出
口參數AL=輸入字符的ASCII碼
2、目錄控制功能(Directory-Control Function)39H — 創建目錄
3AH — 刪除目錄
3BH — 設置當前目錄
47H — 讀取當前目錄
(1)、功能39H
功能描述: 用指定的驅動器和路徑創建一個新目錄
入口參數: AH=39H
DS:DX=指定路徑的字符串地址(以0為字符串的結束標志)
出口參數: CF=0——創建成功,否則,AX=錯誤號(03H或05H),其含義見錯誤
代碼表
(2)、功能3AH
功能描述: 刪除指定的驅動器和路徑的目錄
入口參數: AH=3AH
DS:DX=指定路徑的字符串地址(以0為字符串的結束標志)
出口參數: CF=0——刪除成功,否則,AX=錯誤號(03H或05H),其含義見錯誤
代碼表
(3)、功能3BH
功能描述: 用指定的驅動器和路徑設置為當前目錄
入口參數: AH=3BH
DS:DX=指定路徑的字符串地址(以0為字符串的結束標志)
出口參數: CF=0——設置成功,否則,AX=錯誤號(03H),其含義見錯誤代碼表
(4)、功能47H
功能描述: 取當前目錄的完全路徑字符串
入口參數: AH=47H
DL=驅動器號(0=缺省,1=A,…)
DS:SI=存放當前目錄字符串的地址
出口參數: CF=0——讀取成功,否則,AX=錯誤號(0FH),其含義見錯誤代碼表
3、磁盤管理功能(Disk-Management Function)0DH — 磁盤復位 2EH —設置校
驗標志
0EH — 選擇磁盤 36H —讀取驅動器分配信息
19H — 讀取當前驅動器 54H —讀取校驗標志
1BH, 1CH — 讀取驅動器數據
(1)、功能0DH
功能描述: 清空當前的文件緩沖區,但在MS-DOS內,暫時寫入緩沖區的數據將
寫入磁盤
入口參數: AH=0DH
出口參數: 無
(2)、功能0EH
功能描述: 指定當前驅動器
入口參數: AH=0EH
DL=驅動器號(0=A,1=B,...)
出口參數: AL=系統中當前的驅動器號
(3)、功能19H
功能描述: 取當前缺省驅動器號
入口參數: AH=19H
出口參數: AL=驅動器號(0=A,1=B,...)
(4)、功能1BH和1CH
功能描述: 獲得驅動器的分配信息
入口參數: AH=1BH——為缺省驅動器
AH=1CH——為任意驅動器,DL=驅動器號(0=缺省,1=A,...)
出口參數: AL=0FFH——失敗,否則,
AL=每簇的扇區數
DS:BX=ID字節的地址
CX=物理扇區的大小(字節數)
DX=驅動器的簇數
(5)、功能2EH
功能描述: 設置/清除操作系統自動讀取檢驗標志
入口參數: AH=2EH
DL=00H
AL=00H——清除該標志,01H——設置該標志
出口參數: 無
(6)、功能36H
功能描述: 取選定驅動器的信息
入口參數: AH=36H
DL=驅動器號(0-缺省,1=A,2=B,…)
出口參數: 若功能調用失敗,AX=0FFFFH,否則,
AX=每簇的扇區數
BX=可用的簇數
CX=物理扇區的大小(字節數)
DX=驅動器中的簇數
(7)、功能54H
功能描述: 讀取校驗標志
入口參數: AH=54H
出口參數: AL=當前檢驗標志值:00H—關檢驗,01H—開檢驗<br/>
4、文件操作功能(File Operation Function)3CH — 創建文件<br/>
3DH — 打開文件
3EH — 關閉文件
41H — 刪除文件
43H — 讀取/設置文件屬性
45H — 復制文件句柄
46H — 重定義文件句柄
4EH — 查找到第一個文件
4FH — 查找下一個文件
56H — 文件換名
57H — 讀取/設置文件的日期和時間
5AH — 創建臨時文件
5BH — 創建新文件
67H — 設置文件句柄數(最多文件數)
6CH — 擴展的打開文件功能(打開、創建或替換文件)
(1)、功能3CH
功能描述: 用指定的文件名創建一個新文件。如果指定的文件已存在,則設置
其長度為0。創建后,該文件是打開的,并返回其句柄
入口參數: AH=3CH
DS:DX=指定文件名字符串的地址(以0為字符串的結束標志)
CX=文件屬性(這些標志位可以組合) 位0=1——只讀
位2=1——系統
位5=1——歸檔
位1=1——隱含
位3=1——卷標號
其它位保留不用,并置為0
出口參數: CF=0——創建成功,AX=文件句柄,否則,AX=錯誤號(03H、04H或
05H),其含義見錯誤代碼表
(2)、功能3DH
功能描述: 打開指定的驅動器、路徑和文件名,并返回其文件句柄
入口參數: AH=3DH
DS:DX=表明文件的字符串(以0為字符串的結束標志)
AL為打開方式: 位0~2 000—只讀方式 001—寫方式 010—讀/寫方式
位3 保留,其值為0
位4~6 共享模式 000—兼容模式 001—不共享 010—拒絕寫
011—拒絕讀 100—不拒絕任何操作
位7 繼承標志——0/1:子進程繼承或不繼承句柄
出口參數: CF=0——打開成功,AX=文件句柄,否則,AX=錯誤號(02H、03H、
04H、05H或0CH),其含義見錯誤代碼表
(3)、功能3EH
功能描述: 關閉指定句柄的文件
入口參數: AH=3EH
BX=文件句柄
出口參數: CF=0——關閉成功,否則,AX=錯誤號(06H),其含義見錯誤代碼表
(4)、功能41H
功能描述: 刪除指定的文件
入口參數: AH=41H
DS:DX=文件名字符串的地址
出口參數: CF=0——刪除成功,否則,AX=錯誤號(02H、03H或05H),其含義見
錯誤代碼表
(5)、功能43H
功能描述: 讀取或設置指定文件的屬性
入口參數: AH=43H
BX=文件句柄
DS:DX=文件名字符串的地址
AL=00H/01H——讀取/設置文件屬性
CX=文件屬性: 位0=1——只讀 位1=1——隱含
位2=1——系統 位3=1——卷標號
位5=1——歸檔 其它位保留不用,并置為0
出口參數: CF=0——關閉成功,CX=文件屬性,否則,AX=錯誤號(01H、02H、
03H或05H),其含義見錯誤代碼表
(6)、功能45H
功能描述: 復制當前打開設備或文件的句柄,該句柄對應同樣設備或文件的相
同位置
入口參數: AH=45H
BX=待復制的文件句柄
出口參數: CF=0——復制成功,AX=新句柄,否則,AX=錯誤號(04H或06H),
其含義見錯誤代碼表
(7)、功能46H
功能描述: 指定二個句柄,把第二句柄指向第一個句柄,即第二個句柄被重定
向
入口參數: AH=46H
BX=文件或設備的句柄
CX=待重定向的文件句柄
出口參數: CF=0——重定向成功,否則,AX=錯誤號(04H或06H),其含義見錯
誤代碼表
(8)、功能4EH
功能描述: 獲取第一個與給定的文件名相匹配的文件
入口參數: AH=4EH
DS:DX=給定文件名的字符串
CX=搜索時使用的文件屬性: 位0=1——只讀 位1=1——隱含
位2=1——系統 位3=1——卷標號
位4=1——目錄 位5=1——歸檔
其它位保留不用,并置為0
出口參數: CF=1——操作失敗,AX=錯誤號(02H、03H或12H),其含義見錯誤代
碼表,否則,操作成功,DTA(Disk Transfer Area)按下列方式填入數據: 字節
00~14H 保留
字節15H 匹配的文件屬性
字節16~17H 壓縮的文件名
字節18~19H 壓縮的文件日期
字節1A~1DH 文件大小
字節1E~2AH 文件名字符串
(9)、功能4FH
功能描述: 在中斷21H的功能4EH成功使用之后,再搜索下一個文件名
入口參數: AH=4FH
AL=返回的代碼
出口參數: CF=1——操作失敗,AX=錯誤號(12H),其含義見錯誤代碼表,否則
,操作成功,DTA中的數據如前面功能4EH所示
(10)、功能56H
功能描述: 文件換名
入口參數: AH=56H
DS:DX=當前文件名字符串地址
ES:DI=新文件名字符串地址
出口參數: CF=0——操作成功,否則,AX=錯誤號(02H、03H、05H、11H),其
含義見錯誤代碼表
(11)、功能57H
功能描述: 讀取/設置文件的日期和時間
入口參數: AH=57H
BX=文件句柄 讀取日期和時間 AL=00H
設置日期和時間 AL=01H
CX=時間(0F~0BH:小時,0AH~05H:分鐘,04H~00H:2秒的個數)
DX=日期(0F~09H:年(相對1980年),08H~05H:月,04H~00H:日)
出口參數: CF=1——操作失敗,AX=錯誤號(01H、06H),其含義見錯誤代碼表
,否則,若是讀文件信息,則,CX=時間,DX=日期
(12)、功能5AH
功能描述: 創建臨時文件
入口參數: AH=5AH
DS:DX=路徑名的地址
CX=文件屬性(位可組合),其定義如下: 位0=1 只讀 位3-4=0 保留
位1=1 隱含 位5=1 歸檔
位2=1 系統 位6-15=0 保留
出口參數: CF=0——操作成功,AX=文件句柄,DS:DX=完整的路徑文件地址,
否則,AX=錯誤號(03H、04H或05H),其含義見錯誤代碼表
(13)、功能5BH
功能描述: 創建新文件
入口參數: AH=5BH
DS:DX=路徑名的地址
CX=文件屬性(位可組合),其定義如下: 位0=1 只讀 位4=0 保留
位1=1 隱含 位5=1 歸檔
位2=1 系統 位6-15=0 保留
位3=1 卷標號
出口參數: CF=0——操作成功,AX=文件句柄,否則,AX=錯誤號(03H、04H、
05H或50H),其含義見錯誤代碼表
(14)、功能67H
功能描述: 設置文件句柄數(最多文件數)
入口參數: AH=67H
BX=句柄的數量
出口參數: CF=0——操作成功,否則,AX=錯誤號,其含義見錯誤代碼表
(15)、功能6CH
功能描述: 擴展的打開文件功能(打開、創建或替換文件)
入口參數: AH=6CH
AL=00H
DS:SI=路徑名的地址
BX=打開方式 位2~0 000—只讀 001—只寫 010—可讀、寫
位3 保留(0)
位6~4 000—兼容 001—拒絕讀寫 010——拒絕寫
011—拒絕讀 100——不拒絕任何操作
位7 0—子進程繼承句柄,1—子進程不繼承句柄
位12~8 保留(0)
位13 致命錯誤處理程序,0—執行INT 24H,否則,返回錯誤代碼給進程
位14 寫入方式:0—寫入緩沖區,1—直接寫入文件
位15 保留(0)
CX=文件屬性
位0=1 只讀 位4=0 保留
位1=1 隱含 位5=1 歸檔
位2=1 系統 位6-15=0 保留
位3=1 卷標簽
DX=打開標志 位3~0 0—打開失敗,1—打開文件,2—替換文件
位7~4 0—打開失敗,1—創建文件
位15~8 0—保留
出口參數: CF=1——操作失敗,AX=錯誤號,其含義見錯誤代碼表,否則,
AX=文件句柄
CX=1——文件存在,打開之
=2——文件不存在,創建之
總結