?? 匯008.txt
字號:
控制命令 命令的數值 功能描述
ESC @ 1BH 40H 初始化打印機
ESC 4/ESC 5 1BH 34H/1BH 35H 設定/取消斜體打印
ESC S 0/ESC S 1 1BH 53 0/1BH 53 1 設定上/下角標打印
ESC T 1BH 54H 取消上/下角標打印
ESC l n 1BH 6CH n 設定左邊界,n為當前字符的寬度
3、DOS功能中的打印輸出
在DOS操作系統中,INT 21H提供了一種打印輸出的功能調用。其具體描述如下:
05H——向連接在LPT1端口上的打印機輸出一個字符
40H——向先前打開的文件寫入指定數量的字節,可以把打印機看作為標準的輸出文件
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之字符功能調用類。
4、BIOS中的打印輸出
BIOS系統提供了中斷17H來實現打印輸出功能。其具體的功能如下:
00H——向指定的打印機輸出一個字符
01H——初始化指定的打印機
02H——讀取指定打印機的狀態
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之并行口服務。
5、打印輸出的舉例
例8.7 在每頁的開始處打印“Assember Language”字符串,并空一行才打印其它內容。
解:顯示解答
例8.8 當打印機不能正常打印(非硬件故障)時,提示使用者其原因,以便解決打印問題。
解:顯示解答
8.3.4 串行通信口的中斷功能
計算機的通信功能是現代計算機網絡的最基本功能。如果計算機沒有通信功能,計算機網絡環境也就無從談起。一臺計算機與其它計算機(或設備)之間通信除了必要的物理連接之外,它們之間通信接口的功能就是另一個極其重要的功能模塊。
從計算機通信的本質來看,通信就是發送或接受具有一定格式的二進制位。這些二進制位通過一些應用程序——如瀏覽器——的解釋顯示成具有不同表達形式的文字或圖象。
為了方便實現計算機的通信功能,在系統的低層或操作系統中都有不同程度的支持,如:DOS、BIOS和NETBIOS等系統中都相應通信功能或中斷服務。下面僅僅介紹在匯編語言程序中如何使用通信功能,有關通信功能的詳細內容在《計算機通信與接口技術》課程會有更深入的論述。
1、DOS中的通信功能
INT 21H提供了對通信口COM1操作的功能調用。其具體描述如下:
03H——從輔助設備讀入一個字符,該輔助設備的缺省值為COM1
04H——向輔助設備輸出一個字符,該輔助設備的缺省值為COM1
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之字符功能調用類。
2、BIOS中的通信功能
BIOS系統提供了中斷14H來實現對通信端口的控制能。這些具體的功能如下:
00H——初始化通信口
01H——向通信口輸出字符 02H——從通信口讀入字符
03H——讀取通信口狀態
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之串行口服務。
3、通信功能的應用舉例
例8.9 把字符串"Hello, World"從COM1端口傳輸出去。在傳輸過程中,要求傳輸速率為9600波特,字長為8位,1位停止位,無齊偶校驗。
解:
.MODEL SMALL
.DATA
MSG DB "Hello, World"
MLen EQU $-MSG
.CODE
.STARTUP
MOV AL, 0E3H ;0E3—9600、無齊偶校驗、字長8位,1位停止位
MOV DX, 0
MOV AH, 0
INT 14H ;初始化通信口COM1
MOV BX, OFFSET MSG
MOV CX, MLen
MOV DX, 0
again:
MOV AL, [BX]
MOV AH, 1
INT 14H
TEST AH, 80H ;如果發送字符失敗,繼續發同一個字符,這里可能
JNZ again ;構成死循環。在實際工作過程中,還有其它考慮。
INC BX
LOOP again
.EXIT 0
END
例8.10 把從COM1端口讀入的字符顯示在屏幕上。如果通信端口數據未準備好,則程序處于等待狀態;若傳輸出錯,則用紅色顯示字符"?"。
解:
……
again:
MOV DX, 0
MOV AH, 3
INT 14H
TEST AH, 1H ;檢測狀態字節AH的最后一位,看數據是否準備好
JZ again
MOV DX, 0
MOV AH, 2
INT 14H ;從COM1端口讀字符
TEST AH, 80H ;檢測讀字符是否成功
.IF ZERO? ;讀字符成功
AND AL, 7FH ;屏蔽掉最高位,使之為字符
MOV BL, 15 ;正常顏色:白色
.ELSE
MOV AL, '?' ;顯示字符"?"
MOV BL, 12 ;錯誤顏色:紅字
.ENDIF
MOV BH, 0
MOV AH, 0EH
INT 10H
JMP again
……
8.3.5 鼠標的中斷功能
鼠標是現在計算機系統中的一個常用輸入設備,它為使用計算機帶來了很大的方便,鼠標指針的各種表現形式還反映了系統(或應用程序)當前處于什么樣的工作狀態。許多計算機使用者為體現其個性化還選擇各自喜歡的鼠標圖形,所以,了解和掌握計算機系統對鼠標所提供的功能對理解鼠標的各種操作也是有一定的幫助。
1、鼠標中斷的常用功能
BIOS系統提供了中斷33H來實現鼠標中斷功能,其常用的功能如下:
00H—初始化鼠標
01H—顯示鼠標指針
02H—隱藏鼠標指針
03H—讀取鼠標位置及其按鈕狀態
04H—設置鼠標指針位置
05H—讀取鼠標按鍵信息
06H—讀取鼠標按鈕釋放信息
07H—設置鼠標水平邊界
08H—設置鼠標垂直邊界
09H—設置圖形鼠標形狀 0AH—設置本文鼠標形狀
0BH—讀取鼠標移動計數
0CH—為鼠標事件設置處理程序
0FH—設置鼠標計數與象素比
10H—設置鼠標指針隱藏區域
14H—替換鼠標事件中斷
18H—為鼠標事件設置替換處理程序
19H—讀取替換處理程序的地址
1DH—為鼠標指針選擇顯示頁
1EH—讀取鼠標指針的顯示頁
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之鼠標功能中斷。
2、鼠標指針的設置
鼠標指針主要有二種表現形式:文本鼠標和圖形鼠標。文本鼠標又分為軟指針和硬指針。軟指針是用各種字符來作鼠標指針,而硬指針是用方塊光標的大小來表示鼠標指針,其效果類似于INT 10H之功能01H——設置光標類型。
圖形鼠標的表現形式與文本鼠標相比就顯得更加豐富多彩,可用各種不同的指針形狀來反映系統當前所處的工作狀態和所能進行的操作。在Windows操作系統及其應用程序中使用了很多指針形狀的變化來表達各種有用信息。
鼠標的文本軟指針與圖形指針的形成過程相一致,它需要兩部分信息:象素掩碼和光標掩碼。其指針形成過程如下:
1)、用象素掩碼與當前鼠標所處位置的象素信息進行“邏輯與”運算;
2)、光標掩碼與步驟1的運算結果再進行“異或”操作,該操作所得到的16×16位的0/1信息就構成了當前鼠標指針的形狀。
假設象素掩碼為全0。全0的象素掩碼與屏幕上的顯示信息“邏輯與”后,所得結果仍為全0,全0的運算結果再和“光標掩碼”進行“異或”操作,這時,所得結果顯然與“光標掩碼”完全一樣,所以,看到的鼠標指針形狀就是光標掩碼所表達的指針形狀。
綜合上述,可得結論:若象素掩碼為全0,那么,鼠標的形狀就是16×16位光標掩碼所表示的指針形狀,鼠標所到之處就看不到該區域內(16×16點陣范圍)的其它顯示信息。
在Windows操作系統及其應用程序中,在16×16點陣范圍內,除了看不見被各種形狀指針覆蓋的部分之外,還能看見其它小區域,這是因為鼠標的“象素掩碼”取其“光標掩碼”的反相點陣所致。感興趣的讀者可驗證或證明之。
(1)、硬指針的設置
設置鼠標硬指針的中斷功能使用方式:
MOV BX, 1 ;硬指針
MOV CX, 01H ;鼠標硬指針的起始掃描線
MOV DX, 0FH ;鼠標硬指針的結束掃描線
MOV AX, 0AH ;設置文本鼠標指針
INT 33H
(2)、軟指針的設置
設置鼠標軟指針的中斷功能使用方式:
MOV BX, 0 ;軟指針
MOV DL, 'A' ;用字符'A'作為鼠標指針符號
MOV DH, 07FH ;置鼠標的顏色
MOV CX, 0 ;置象素位掩碼
MOV AX, 0AH
INT 33H ;設置文本鼠標指針
(3)、圖形指針的設置
設置鼠標軟指針的中斷功能使用方式:
……
PMask DW 16 dup(?) ;象素位掩碼,PMask可以是~CMask
CMask DW 16 dup(?) ;光標掩碼,二者緊相鄰
……
MOV AX, DS
MOV ES, AX
LEA DX, PMask ;ES:DX=象素位掩碼的起始地址
MOV BX, 0
MOV CX, 0 ;在鼠標指針范圍內,(0,0)點為指示點
MOV AX, 09H
INT 33H ;設置圖形鼠標指針
3、鼠標功能的應用舉例
例8.11 在屏幕的右上角動態顯示文本鼠標的位置,即:鼠標的任何移動都將馬上顯示其所處位置,按鼠標左鍵結束程序的運行。
解:顯示解答
例8.12 編寫可隨時修改文本鼠標指針符號的程序,即要求:在程序運行過程中,隨時在鍵盤上按什么字符,即以該字符為鼠標指針符號。
解:顯示解答
讀者可把例8.11和8.12結合在一起,使之:一方面,可動態顯示鼠標的位置,另一方面,也可隨時修改文本鼠標的指針符號。
改變圖形鼠標指針是許多計算機使用者體現其個性的方法之一,讀者可參考例8.12和前面的“圖形指針的設置”部分的敘述,編寫一個顯示自己設計的鼠標指針的程序。在學習了有關文件操作知識之后,還可利用現有的鼠標指針文件來顯示鼠標指針。
8.3.6 目錄和文件的中斷功能
中斷21H提供了許多有關目錄和文件操作的功能,其中常用的功能如下:
1、操作目錄的常用功能
39H——創建目錄 3BH——設置當前目錄
3AH——刪除目錄 47H——讀取當前目錄
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之目錄控制功能。
2、用文件句柄操作文件的常用功能
3CH——創建文件 4EH——查找到第一個文件
3DH——打開文件 4FH——查找下一個文件
3EH——關閉文件 56H——文件換名
3FH——讀文件或設備 57H——讀取/設置文件的日期和時間
40H——寫文件或設備 5AH——創建臨時文件
41H——刪除文件 5BH——創建新文件
42H——設置文件指針 67H——設置文件句柄數(最多文件數)
43H——讀取/設置文件屬性 6CH——擴展的打開文件功能
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之文件操作功能。
3、用FCB操作文件的常用功能
0FH——打開文件 21H——隨機讀
10H——關閉文件 22H——隨機寫
13H——刪除文件 23H——讀取文件的大小
14H——順序讀 24H——設置相對記錄數
15H——順序寫 27H——隨機讀塊
16H——創建文件 28H——隨機寫塊
17H——文件換名
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之文件操作功能(FCB)和記錄操作功能(FCB)。
4、磁盤絕對讀寫中斷
中斷25H——磁盤絕對讀中斷 中斷26H——磁盤絕對寫中斷
有關中斷功能的詳細描述和調用參數在此從略,需要查閱者可參閱附錄3之其它DOS中斷。
5、系統標準設備的句柄
0000H——鍵盤 0001H——屏幕
0002H——錯誤顯示(屏幕) 0003H——COM1
0004H——打印機
6、目錄、文件功能的應用舉例
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -