ibm—pc匯編語言程序設計(第二版)電子教案第九章_第1頁
已閱讀1頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、● 鍵盤 I/O● 顯示器 I/O● 打印機 I/O● 串行通信口I/O,第九章 BIOS 和 DOS 中斷,子程序調(diào)用,主程序 ……CALL SUBP ……,,子程序 …… …… RET,,,DOS/BIOS調(diào)用,源程序 …… INT n ……,,DOS/BIOS 例行程序 …… …… IRET,,,實現(xiàn)機制不同,,BIOS和DOS

2、基本調(diào)用調(diào)用方法:1、將調(diào)用參數(shù)裝入指定的寄存器中;2、BIOS或DOS功能號裝入AH;3、如需子功能號,把它裝入AL;4、按中斷號調(diào)用DOS或BIOS中斷(INT);5、檢查或取得返回參數(shù)。,例:DOS調(diào)用:鍵盤輸入,顯示輸出MOV AH, 01 ;DOS功能號:鍵盤輸入 INT 21H ;DOS調(diào)用MOV CHAR, AL ;返回參數(shù): (AL)MOV DL,

3、’A’ ;調(diào)用參數(shù): 輸出字符MOV AH, 02 ; DOS功能號: 顯示輸出INT 21H ; DOS調(diào)用,1. 鍵盤I/O (1) BIOS鍵盤中斷 ( INT 16H),,,AH 功能 返回參數(shù) 0 從鍵盤讀一字符 AL=字符碼

4、,AH=掃描碼 1 讀鍵盤緩沖區(qū)的字符 如ZF=0,AL=字符碼, AH=掃描碼 如ZF=1,緩沖區(qū)空 2 取鍵盤狀態(tài)字節(jié)

5、 AL=鍵盤狀態(tài)字節(jié),,字符數(shù)字鍵 字符碼為ASCII 碼 功能鍵、控制鍵 字符碼為0,,對應一個掃描碼,DOS鍵盤中斷 ( INT 21H),AH 功 能 調(diào)用參數(shù) 返回參數(shù),1 從鍵盤輸入一個字符并回顯在屏幕上

6、 AL=字符 6 讀鍵盤字符,不回顯 DL= 0FFH 若有字符可取,AL=字符,ZF=0  

7、 若無字符可取,AL=0,ZF=1 7 從鍵盤輸入一個字符,不回顯 AL=字符 8 從鍵盤輸入一個字符,不回顯,

8、 AL=字符 檢測Ctrl-Break A 輸入字符到緩沖區(qū) DS:DX = 緩沖區(qū)首址 B 讀鍵盤狀態(tài) AL=0FFH有鍵入,

9、AL=00無鍵入 C 清除鍵盤緩沖區(qū), AL=鍵盤功能號 并調(diào)用一種鍵盤功能 (1,6,7,8或A),,,,例: 輸入字符串到緩沖區(qū)STRING DATA SEGMENT MAXLEN DB 32 MAXLEN DB 32 ,0,

10、32 DUP(?) ACTLEN DB ? MAXLEN DB 32 ,33 DUP(?) STRING DB 32 DUP(?)DATA ENDSCODE SEGMENT…LEADX,MAXLENMOVAH,0AHINT21H…CODE ENDS END,,MAXLEN,ACTLEN,STRING,,顯示器I/O

11、 文本方式 ASCII字符,單色屬性,,,,前景,,閃爍,背景,BL R G B I R G B,16色屬性,BIOS顯示中斷 INT 10H 功能號 AH=0,1, 2, 3, 5, 6, 7, 8, 9, 0AH, 0EH 13H (p.328) 例:清除屏幕 movah, 6; 屏幕初始化

12、moval, 0; 全屏空白movbh, 7; 卷入行屬性movch, 0; 左上角行號movcl, 0; 左上角列號movdh, 24; 右下角行號movdl, 79; 右下角列號int10h; BIOS調(diào)用,,定義窗口,例: 在品紅背景下,顯示5個淺綠色閃爍的星號。 MOVAH,09 ;光標位置下顯示

13、 MOVAL,’*’ ;顯示字符 MOVBH,0 ;顯示頁0 MOVBL,0DAH ; 1 101 1010 (表9.7) MOVCX,05 ;顯示次數(shù) INT 10H ;BIOS調(diào)用,例:在屏幕上以紅底蘭字顯示字符串:“WORLD SCENERY”

14、 STRING DB ‘WORLD SCENERY’ ;定義在ES段 LEN_TR DW 13 ┇MOV AL,3 ;80×25, 16色文本方式MOV AH,0INT 10HMOV BP,SEG STRINGMOV ES,BP ;串地址ES:BPMOV BP

15、,OFFSET STRING MOV CX,LEN_STR ;串長度 MOV DX,0 ;起始行列MOV BX,0041H;0100 0001(屬性)MOV AL,1;子功能MOV AH,13H;顯示字符串INT 10H,(2) DOS顯示功能調(diào)用中斷 INT 21H,AH

16、 功 能 調(diào) 用 參 數(shù) 2 顯示一個字符(檢驗Ctrl-Break) DL = 字符 光標跟隨字符移動 6 顯示一個字符(不檢驗Ctrl-Break)

17、 DL = 字符 光標跟隨字符移動 9 顯示字符串 DS:DX=串地址 串必須以$結束,

18、 光標跟隨串移動,,,,例:顯示字符串 MESSAGE DB ‘The sort operation is finished.’,13,10,’$’ … … MOV AH,9 MOV DX,SEG MESSAGE MOV DS,DX

19、 MOV DX,OFFSET MESSAGE INT 21H,3. 打印機I/O (p.336),,,,,,,,,,,,,例: 打印字符串TEXT (DOS)TEXT DB ‘Hello,everybody!’COUNT EQU $-TEXT ;COUNT=17 ……

20、 MOV CX,COUNT MOV BX,0NEXT: MOV AH,5 MOV DL,TEXT[BX] INT 21H INC BX LOOP NEXT,,,例: 打印字符串TEXT(BI

21、OS)TEXT DB ‘Hello,everybody!’COUNT EQU $-TEXT …… MOV CX, COUNT MOV BX, 0NEXT: MOV AH, 0 MOV AL,TEXT[BX] MOV

22、 DX,0;打印機號 INT 17H INC BX LOOP NEXT,,,,4. 串行通信口I/O,DOS 串行通信口功能 (INT 21H),,,(2)BIOS 串行通信口功能 (INT 14H),,例1. 從串行口輸入字符,MOV AH, 3 ;讀字符INT 21H ;DOS調(diào)用MOV C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論