DOS系統功能調用方式如:
1.置入口參數;
2.將子程序編號送入AH寄存器;
3.執行中斷指令:INT 21H。
有的子程序不需入口參數,但大部分需要將參數送入指定地點。程序員只須給出這三個方面的信息,不必關心具體程序如何,在內存中的存放地址如何,DOS根據所給的信息,自動轉入相應的子程序去執行。調用結束後有出口參數時一般在寄存器中,有些子程序調用結束時會在屏幕上看到結果。
DOS系統功能調用所提供的子程序,按其功能分類可分爲以下六組:
1.字符I/O管理
編號:01H到0CH,管理顯示器、鍵盤、打印機及異步通訊接口的字符輸入輸出。
2.傳統的文件管理
編號:0DH到24H,27H到29H,管理磁盤,包括打開關閉文件、查找目錄、刪除文件、建立文件、重新命名文件、順序讀寫文件、隨機讀寫文件等功能。
3.擴充的文件管理
編號:39H到3BH,47H,管理目錄,包括建立子目錄,修改當前目錄,刪除目錄,取當前目錄等功能。
編號:3CH到46H,管理文件,包括建立、打開、關閉文件,從文件或設備讀寫數據,在指定的目錄裏刪除文件、修改文件屬性等。
4.內存管理
編號:48H到4H,管理內存,包括分配內存,釋放已分配的內存,執行程序等。
5.作業管理
編號:00H退出用戶程序並返回操作系統
26H建立一個程序段
31H終止用戶程序並駐留在內存
4BH裝入一個程序
4CH終止當前程序並返回操作系統
4DH取子進程的返回代碼
6.其他資源管理
編號:25H,35H,置中斷向量和取中斷向量
2AH,2BH,取日期和設置日期
2CH,2DH,取時間和設置時間
30H,38H,取DOS版本號及國別信息其它爲用於處理樹形目錄結構的擴充
的文件管理系統調用和用於DOS內部的擴充的系統調用。
常用的DOS系統功能調用使用說明
1、00H號調用 終止程序,返回使用DOS (一般常用4CH)
(1)調用方式:AH←00H(調用號)
INT 21H
(2)說明:
1)完成終止當前程序執行返回到操作系統狀態。
2)同時將關閉所有文件並刷新所有文件緩衝區。
3)完成與INT 20H相同的操作。
2、01H號調用 讀取鍵盤字符並回顯
(1)調用方式:AH←01H(調用號)
INT 21H
(2)說明:
1)執行該功能調用首先掃描鍵盤,等待按鍵。
2)若有鍵按下,則檢查所按鍵碼。
3)當按CTRL-BREAK鍵瞬時,則推出命令執行。
4)當爲其它鍵時,則將對應ACSII碼送AL寄存器,同時送顯示器顯示。
3、02H號調用 顯示字符
1)調用方式:DL←要輸出顯示的ACSII字符代碼
AH←02H(調用號)
INT 21H
(2)說明:
1)完成從標準輸出設備顯示器上輸出顯示一個字符。
2)在顯示一個字符後檢查該字符是否是CTRL-BREAK。若是,則推出命令執行。
4、03H號調用異步通訊口輸入
(1)調用方式:AH←03H(調用號)
INT 21H
(2)說明:
1)完成從標準異步通訊接口(COM1)等待輸入一個字符。
2)將輸入的字符取到寄存器AL中。
3)DOS把一個異步通訊口端口COM1初始化爲2400波特,無校驗位,一個停止位和8個數據位。
5、04H號調用 異步通訊口輸出
(1)調用方式:DL←要輸出的ACSII字符
AH←04H(調用號)
INT 21H
(2)說明:
1)完成從標準異步通訊接口(COM1)等待輸出一個字符。
2)關於異步通訊口的輸入輸出操作,建議使用ROM BIOS中斷調用14H。6.05H調用 打印輸出
1)調用方式: DL←要打印輸出的字符
AH←05H(調用號)
INT 21H
(2)說明:
1)向標準打印設備(PRN或LPT1)打印輸出一個字符。
2)該功能調用所瓦斯年成的功能同02H號調用(顯示一字符),只是輸出的設備不同。
7.06H號調用 直接控制檯I/O
(1)調用方式:DL←字節常數
AH←06H(調用號)
INT 21H
(2)說明:
1)該功能調用可以完成從標準輸入設備鍵盤輸入字符,也可以完成向標準輸出設備顯示器輸出字符。
2)當DL=FFH時,表示從鍵盤輸入字符。
若標誌位ZF=0,表示AL中爲鍵入的字符值。
若標誌位ZF=1,表示AL中不是鍵入字符值,既無鍵按入。
當DL FFH時,表示向顯示器輸出,此時DL中應存放輸出字符的ASCII碼值。
3)該功能調用不檢查字符是否爲CTRL—BREAK鍵。
例如:
CODE:
MOV DL,O66H
MOV AH,06H
INT 21H
表示完成從鍵盤輸入字符,當有鍵按下時,AL中既爲鍵入字符的ASCII碼值
CODE:
MOV DL,41H
MOV AH,06H
INT 21H
表示完成將DL中41H所對應的字符“A”在屏幕上顯示。
8.07H號調用 直接控制檯輸入且不回顯。
(1)調用方式:AH←07H(調用號)
INT←21H
(2)說明:
該功能調用完成從標準輸入設備鍵盤輸入字符送AL,與01H調用相比有兩點不同:一是不回顯字符;二是對鍵入字符不作CTRL-BREAK檢查。
9.08H號調用 直接控制檯輸入且不回顯。
(1)調用方式:AH←08H(調用號)
INT←21H
(2)說明:
該功能調用完成從標準輸入設備鍵盤輸入字符送AL,與01H調用相比只有一點不同,不回顯字符。比07H號調用多一個對鍵入字符要作CTRL-BREAK檢查和處理的功能。
10.09H號調用 字符串輸出顯示
(1)調用方式:DS:DX←要輸出顯示的字符串的首地址
AH←09H(調用號)
INT 21H
(2)說明:
1)該功能調用完成在標準輸出設備顯示器上輸出顯示一字符串,字符串必須以字符“$”(24H)爲結束標誌。但“$”字符不顯示。
2)該功能調用完成顯示字符後作CTRL-BREAK檢查和處理。
11.0AH號調用 字符串輸入
(1)調用方式:DS:DX←從鍵盤接收字符的輸入緩衝區首址
AH←0AH(調用號)
INT 21H
(2)說明:
1)該功能調用完成從鍵盤接收字符串存到指定內存的輸入緩衝區,直到輸入回車符時爲止。
2)緩衝區的第一個字節爲指定緩衝區能接收的字符的個數,緩衝區的第二個字節保留以用作填寫實際輸入字符的個數,緩衝區的第三個字節開始存放從鍵盤上輸入的字符。
3)若實際輸入的字符數少於定義的字節數,則緩衝區內其餘字節補零。若實際輸入多於定義的字節數,則多餘字符丟棄,且響鈴。
以上就是DOS功能調用的常用的部分。
利用02號系統功能調用完成輸出顯示一串字符信息。
CODE:
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
ORG 100H
START: JMP BEGIN
MSG DB 'This message was displayed with dos function 02H'
MSGLEN EQU $ - MSG
BEGIN: MOV AX,CODE
MOV DS,AX ;設置段地址
MOV CX,MSGLEN ;取顯示字符串信息的長度
MOV S1,0
MOV AH,02H ;02H號調用一次顯示一個字符
NEXT: MOV DL,MSG[SI] ;DL←取輸出顯示的字符
INT 21H
INC SI ;修改字符地址
LOOP NEXT ;重複執行02H系統功能調用
MOV AH,4CH ;字符串顯示完後,執行4CH調用
INT 21H ;返回DOS
CODE ENDS
END START
採用09H號功能調用,輸出顯示指定的字符串。
CODE:
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START: JMP BEGIN
STRING DB 'Hello,How are you!','$'
BEGIN: MOV AX,CODE
MOV DS,AX ;DS←輸出字符串段地
LEA DX,STRING ;DX←輸出字符串偏移
MOV AH,09H ;9號功能調用
INT 21H ;完成輸出顯示:Hello, ;How are you!
MOV AH,4CH
INT 21H
CODE ENDS
END START
80x86DOS功能調用【轉】
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.