1. 程式人生 > >彙編dos系統呼叫(輸入輸出篇)

彙編dos系統呼叫(輸入輸出篇)

程式設計師編寫彙編程式,不可避免要與底層的各種裝置打交道,比如:簡單的鍵盤輸入,顯示器輸出,磁碟檔案的讀寫或印表機的列印。而要完成這些工作需要清楚有關裝置的結構組成,非常複雜。

然而,現在我們有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=字串首地址