【轉載】DOS中斷 INT 21H 大全

字符功能  

01H、07H和08H —從標準輸入設備輸入字符

      02H —字符輸出

      03H —輔助設備的輸入

      04H —輔助設備的輸出

      05H —打印輸出

      06H —控制檯輸入/輸出

      09H —顯示字符串

      0AH — 鍵盤緩衝輸入

      0BH —檢測輸入狀態

      0CH —清輸入緩衝區的輸入功能


1、功能01H、07H和08H

功能描述:從標準輸入設備(如:鍵盤)讀入一個字符。該中斷在處理過程中將一直處於等待狀態直到有字符可讀爲止。該輸入還可被重定向,如果這樣做,則無法判斷文件是否已到文件尾。

入口參數:

AH=01H,過濾掉控制字符,並回顯。

AH=07H,不過濾掉控制字符,不回顯。

AH=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碼
 
目錄控制功能

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),其含義見錯誤代碼表
 
磁盤管理功能

0DH —磁盤復位

0EH —選擇磁盤

19H —讀取當前驅動器

1BH, 1CH —讀取驅動器數據

2EH —設置校驗標誌

36H —讀取驅動器分配信息

54H —讀取校驗標誌


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—開檢驗
 


3CH —創建文件

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——文件不存在,創建之
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章