彙編之DOS系統功能調用
1. 系統功能調用方法
DOS系統功能調用的方法一般可分爲以下幾步:
- 設置所要調用功能的入口參數。
- 在AH寄存器中存入所要調用功能的功能號。
- INT 21H指令自動轉入中斷子程序入口。
- 相應中斷子程序運行完畢,可按規定取得出口參數。
2. 常用的DOS系統功能調用
2.1 1號DOS功能調用
- 功能:單字符輸入。
- 執行操作:將鍵盤輸入的字符的ASCII碼值送AL寄存器,同時回顯在屏幕上。
- 入口參數:無
- 出口參數:AL寄存器存放輸入字符的ASCII碼值
- 格式:
MOV AH,1
INT 21H
- 說明:在輸入一個字符後,不需要鍵入回車。若只鍵入回車,則出口參數AL得到的是回車符的ASCII碼值0DH。
2.2 2號DOS功能調用
- 功能:單字符輸出。
- 執行操作:將以DL寄存器內容爲ASCII碼值的ASCII字符輸出到屏幕上。
- 入口參數:DL=要顯示字符的ASCII碼值
- 出口參數:無
- 格式:
MOV DL,要顯示的字符
MOV AH,2
INT 21H
- 舉例:屏幕上輸出字符“A”
MOV DL,41H
MOV AH,2
INT 21H
2.3 9號DOS功能調用
- 功能:字符串輸出。
- 執行操作:將DS:DX所指的以$字符結尾的一個字符串輸出到屏幕上。
- 入口參數: DS:DX=要顯示的字符串在內存中的首地址
- 出口參數:無
- 格式:
LEA DX,字符串變量名
MOV AH,9
INT 21H
- 舉例:輸出字符串’HELLO world’
string DB ‘HELLO world!’,’$’
……
LEA DX,string
MOV AH,9
INT 21H
- 說明:要顯示的字符串必須以’ $ ’作爲結束標誌, ’ $ ’不屬於被顯示的字符串。
2.410號DOS功能調用
- 功能:從鍵盤讀入一個字符串,將其保存到DS:DX指定的內存緩衝區中。
- 緩衝區由3部分組成:
(1)第一字節定義緩衝區大小;
(2)第二字節用於系統回填實際輸入字符的個數;
(3)第三字節開始保存鍵盤輸入字符的ASCII碼值。 - 入口參數:DS:DX=存放該字符串的輸入緩衝區的首地址。
- 出口參數:實際輸入字符個數保存在緩衝區第二字節的位置(不包括回車符) ,實際輸入字符的ASCII碼值(包括回車0DH)順序保存在緩衝區第三字節開始的位置。
- 格式:
MOV AH,10 ;或0AH
INT 21H
- 說明:
(1)可輸入的字符個數最多爲緩衝區第一字節內容減1,最少字符個數爲0。
(2)輸入以按“回車鍵”結束,並將回車字符(0DH)保存在輸入字符的最後一個位置上。
2.5 4CH號DOS功能調用
-
功能:返回系統。
-
入口參數:AL=終止代碼或無
-
出口參數:無。
-
格式:
MOV AH,4CH
INT 21H