彙編dos系統呼叫(輸入輸出篇)
阿新 • • 發佈:2019-02-06
程式設計師編寫彙編程式,不可避免要與底層的各種裝置打交道,比如:簡單的鍵盤輸入,顯示器輸出,磁碟檔案的讀寫或印表機的列印。而要完成這些工作需要清楚有關裝置的結構組成,非常複雜。
然而,現在我們有dos作業系統,它開發了許多裝置驅動與檔案管理的子程式。彙編程式設計師使用這些子程式,將大大減小了開發難度。同時,也提高了程式的可靠性與良好的通用性。Dos系統呼叫為我們提供了這些工具。
本文主要描述有關輸入輸出的dos系統呼叫。
首先我們先看一下,使用dos呼叫的一般步驟。
1、根據所需功能呼叫設定好相應的引數。
2、將呼叫的系統呼叫的編號送入AH暫存器。
3、“int 21h”是轉入系統呼叫的總入口,通過分析ah的內容,再轉向相應的子程式。
4、根據相關功能呼叫說明取得返回引數。(有些呼叫沒有返回引數)
一、Dos鍵盤功能呼叫
AH | 功能呼叫 | 呼叫引數 | 返回引數 |
01H | 從鍵盤中輸入一個字元,並回顯在螢幕上 | AL=字元的ascii碼 | |
06H | 控制檯輸入輸出 | AH=06H,若DL=00H~FEH,則輸出,DL為輸出字元的ascii碼;若DL=0FFH,則輸入 | 鍵入時,若ZF=1,則無字元可讀,否則,AL=讀入字元的ascii碼 |
07H | 從鍵盤輸入字元,不回顯 | AL=字元 | |
0AH | 鍵入字元到緩衝區 | DS:DX=緩衝區首地址 | |
0BH | 讀鍵盤狀態 | AL=0FFH,有鍵入 AL=00H,無鍵入 |
|
0CH | 清除緩衝區,並呼叫一種鍵盤功能 | AL=鍵盤功能(1,6,7,8,a,b) |
二、Dos顯示功能呼叫
AH | 功能說明 | 呼叫引數 | 返回引數 |
02H | 顯示字元(檢查ctrl+break),游標隨字元移動 | DL=ascii碼 |
|
06H | 顯示字元(不檢查ctrl+break),游標隨字元移動 | DL=ascii碼 | |
09H | 顯示字串,字元必須以$結束,游標隨串移動 | DS:Dx=字串首地址 |