DOS功能呼叫大全

2022-05-24 10:15:03 字數 4724 閱讀 8726

一、21h號中斷型別(int 21h)的各功能詳解。

00h號功能——程式終止

入口引數:ah=0;功能號

cs已指定

返回值:無。

01h號功能——鍵盤輸入並回顯。[檢測break(ctrl+c)]

入口引數:ah=01h;功能號

返回值:al=輸入的字元。

02h號功能——顯示輸出。[檢測break(ctrl+c)]

入口引數:ah=02h;功能號

dl=要顯示的字元

返回:游標移動。

03h號功能——非同步通訊輸入。

入口引數:ah=03h;功能號

返回值:al=輸入的數值

04h號功能——非同步通訊輸出。

入口引數:ah=04h;功能號

dl=要輸出的數值

返回值:無

05h號功能——印表機輸出。[自動檢測印表機]

入口引數:ah=05h;功能號

dl=要輸出的數值

返回值:無

06h號功能——直接控制台i/o(輸入/輸出)。[[不檢測break(ctrl+c)]]

入口引數1:ah=06h;功能號

dl=要輸出的字元(dl<0ffh)

功能1:輸出

返回1:游標移動

入口引數2:ah=06h ;功能號

dl=0ffh

功能2:輸入

返回2:al=輸入的字元

07h號功能——鍵盤輸入但不回顯。

入口引數:ah=07h;功能號

返回值:al=輸入的字元。

08h號功能——鍵盤輸入但不回顯。[檢測break(ctrl+c)]

入口引數:ah=08h;功能號

返回值:al=輸入的字元。

說明:如果返回al=0,則是擴充套件asc碼,要再次呼叫才能取得擴充套件asc碼。例:

mov ah,8

int 21h

cmp al,0

jnz ----- 是asc碼,去處理asc碼。

mov ah,8

int 21h;這次al返回擴充套件asc碼。

09h號功能——顯示字串。

入口引數:ah=09h;功能號

ds:dx=串位址。串必須以'$'字元結尾。

返回:游標移動。

0ah號功能——鍵盤輸入字串到緩衝區。

入口引數:ah=0ah;功能號

ds:dx=緩衝區位址。

緩衝區首位元組=緩衝區位元組數。

返回:緩衝區第二位元組單元中的值為實際輸入的字元數。

例子:如果要輸入的最多字元個數為10,則緩衝區的結構如下:

db12;緩衝區長度(呼叫前設定)

db?;實際輸入的字元數(由int 21h功能自動設定)

db 10 dup(?) ;輸入的字元儲存在這裡

0bh號功能——檢測鍵盤狀態。

入口引數:ah=0bh;功能號

返回:al=0:表示有輸入;

al=0ffh: 表示沒有輸入。

0ch號功能——清除鍵盤輸入緩衝區,並請求指定的輸入功能。

入口引數:ah=0ch;功能號

al=輸入功能號(即上述功能號:01h,06h,07h,08h,0ah)

ds:dx=緩衝區位址(如果不請求0ah號功能,則本引數省略)。

緩衝區首位元組=緩衝區位元組數。

返回:與請求的功能返回相同。

0dh號功能——磁碟復位。

入口引數:ah=0dh;功能號

返回:清除磁碟緩衝區。

0eh號功能——指定當前預設的磁碟驅動器。

入口引數:ah=0eh;功能號

dl=驅動器編號(0=驅動器a;1=驅動器b;......)

返回:al=驅動器數。

0fh號功能——開啟檔案。

入口引數:ah=0fh;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=0ffh:失敗。

10h號功能——關閉檔案。

入口引數:ah=10h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=0ffh:失敗。

11h號功能——查詢首個目錄。

入口引數:ah=11h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=0ffh:失敗。

12h號功能——查詢下乙個目錄。

入口引數:ah=12h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=0ffh:失敗。

13h號功能——刪除檔案。

入口引數:ah=13h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=0ffh:失敗。

14h號功能——順序讀檔案。

入口引數:ah=14h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=1:檔案結束,無可讀資料;

al=2:dta(資料傳輸區)空間不夠;

al=3:檔案結束,記錄不完整。

15h號功能——順序寫檔案。

入口引數:ah=15h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=1:磁碟滿;

al=2:dta(資料傳輸區)空間不夠。

16h號功能——新建檔案。

入口引數:ah=16h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=0ffh:無磁碟空間。

17h號功能——檔案改名。

入口引數:ah=17h;功能號

ds:dx=fcb(檔案控制塊)首址

(ds:dx+1)=舊檔名

(ds:dx+17)=新檔名

返回:al=0:成功;

al=0ffh:失敗。

19h號功能——取當前預設驅動器名。

入口引數:ah=19h;功能號

返回:al=預設驅動器編號(0=驅動器a;1=驅動器b;......)

1ah號功能——設定dta(資料傳輸區)位址。

入口引數:ah=1ah;功能號

ds:dx=dta位址

返回:無

1bh號功能——取預設驅動器fat資訊。

入口引數:ah=1bh;功能號

返回:al=每簇的扇區數;

ds:bx=指向fat標識位元組;

cx=物理扇區的大小;

dx=簇數。

1ch號功能——取指定驅動器fat資訊。

入口引數:ah=1bh;功能號

dl=驅動器編號(0=驅動器a;1=驅動器b;......)

返回:al=每簇的扇區數;

ds:bx=指向fat標識位元組;

cx=物理扇區的大小;

dx=簇數。

21h號功能——隨機讀檔案。

入口引數:ah=21h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=1:檔案結束,無可讀資料;

al=2:dta(資料傳輸區)空間不夠;

al=3:檔案結束,記錄不完整。

22h號功能——隨機寫檔案。

入口引數:ah=22h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功;

al=1:磁碟滿;

al=2:dta(資料傳輸區)空間不夠。

23h號功能——測定檔案大小。

入口引數:ah=23h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:al=0:成功,檔案長度填入fcb;

al=0ffh:失敗。

24h號功能——設定隨機記錄號。

入口引數:ah=24h;功能號

ds:dx=fcb(檔案控制塊)首址

返回:25h號功能——設定中斷向量。

入口引數:ah=25h;功能號

ds:dx=中斷向量

al=中斷型別號

返回:無

26h號功能——建立程式段字首。

入口引數:ah=26h;功能號

dx=新的程式段字首

返回:無

27h號功能——隨機分塊讀檔案。

入口引數:ah=27h;功能號

ds:dx=fcb(檔案控制塊)首址

cx=記錄數

返回:al=0:成功;

al=1:檔案結束,無可讀資料;

al=2:dta(資料傳輸區)空間不夠;

al=3:檔案結束,記錄不完整。

28h號功能——隨機分塊寫檔案。

入口引數:ah=28h;功能號

ds:dx=fcb(檔案控制塊)首址

cx=記錄數

返回:al=0:成功;

al=1:檔案結束,無可讀資料;

al=2:dta(資料傳輸區)空間不夠。

29h號功能——分析檔名。

入口引數:ah=29h;功能號

es:di=fcb(檔案控制塊)首址

ds:si=asciiz串

al=控制塊分析標誌

返回:al=0:標準檔案;

al=1:多義檔案;

al=0ffh:非法碟符。

2ah號功能——取計算機當前日期。

入口引數:ah=2ah;功能號

返回:cx=年份;

dh=月份

dl=日期

al=星期(0—6:分別對應星期日、星期一、......)。

DOS功能呼叫表 int 21h

ah功能00010203040506070809 程式終止 同int 20h 鍵盤輸入並回顯顯示輸出非同步通迅輸入非同步通迅輸出印表機輸出直接控制台i o鍵盤輸入 無回顯 鍵盤輸入 無回顯 檢測ctrl break顯示字串 呼叫引數cs 程式段字首 返回引數 al 輸入字元 al 輸入資料 dl 輸...

dos命令大全

ms dos 命令大全 一 基礎命令 1 dir 無引數 檢視當前所在目錄的檔案和資料夾。s 檢視當前目錄已經其所有子目錄的檔案和資料夾。a 檢視包括隱含檔案的所有檔案。ah 只顯示出隱含檔案。w 以緊湊方式 一行顯示5個檔案 顯示檔案和資料夾。p 以分頁方式 顯示一頁之後會自動暫停 顯示。more...

DOS操作命令大全

dos操作命令大全1.txt恨乙個人和愛乙個人的區別是 乙個放在嘴邊,乙個藏在心裡。人生三願 一是吃得下飯,二是睡得著覺,三是笑得出來。基本dos命令全集2006 07 16 00 00基本dos命令全集 dos命令全集 一 md 建立子目錄 1 功能 建立新的子目錄2 型別 內部命令3 格式 md...