




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
匯編語言程序設(shè)計(jì)第九章資料第15講(第15周):鍵盤I/O和顯示器I/O前一講總目錄
4.PC中斷系統(tǒng)中中斷類型可分為三類:
第一類BIOS中斷服務(wù)程序(系統(tǒng)主板BIOS芯片提供),主要包括:①.系統(tǒng)內(nèi)部中斷:中斷類型號從00H到07H(共8個(gè));②.系統(tǒng)8級外部中斷:中斷類型號從08H到0FH(共8個(gè)),它們對應(yīng)于可編程中斷控制器8259A的8個(gè)中斷請求輸入端IR0IR7的8個(gè)外部中斷,其中IR2(中斷類型號0AH)為系統(tǒng)保留,用戶可通過該引腳實(shí)現(xiàn)對用戶所需的外部硬件中斷的管理;③.設(shè)備驅(qū)動(dòng)程序:中斷類型號從10H到1FH(共16個(gè))等;
第二類DOS中斷服務(wù)程序:中斷類型號從20H到2FH(共16個(gè));第三類用戶中斷服務(wù)程序:中斷類型號從60H到7FH、F1H到FFH(共47個(gè))。用戶可根據(jù)實(shí)際需要將某些通用性較強(qiáng)的子程序通過中斷服務(wù)程序來實(shí)現(xiàn)。一旦這些中斷服務(wù)程序設(shè)置好了,其他應(yīng)用程序就可以調(diào)用這些中斷服務(wù)程序。5.BIOS和DOS基本調(diào)用方法:[1]、將調(diào)用參數(shù)裝入指定的寄存器中;[2]、BIOS或DOS功能號裝入AH;[3]、如需子功能號,把它裝入AL;[4]、按中斷號調(diào)用DOS或BIOS中斷(INT);[5]、檢查或取得返回參數(shù)。例:DOS調(diào)用:鍵盤輸入,顯示輸出
MOVAH,01 ;DOS功能號:鍵盤輸入
INT21H ;DOS調(diào)用
MOVCHAR,AL ;返回參數(shù):(AL)MOVDL,CHAR
;調(diào)用參數(shù):輸出字符
MOVAH,02 ;DOS功能號:顯示輸出
INT21H ;DOS調(diào)用第15講(第15周):鍵盤I/O和顯示器I/O總目錄前一講第15講(第15周):鍵盤I/O和顯示器I/O總目錄§9.1、鍵盤I/O1、鍵盤鍵的分類:[1].字符數(shù)字鍵傳送一個(gè)ASCⅡ碼字符;主要是字母A(a)~Z(z)、常用字符%、$、#等以及數(shù)字(0~9);[2].擴(kuò)展功能鍵產(chǎn)生一個(gè)動(dòng)作;比如Home把光標(biāo)移到屏幕左上角;這些鍵主要有:F1~F12(程序功能鍵)、ESC、INSERT、DELETE、HOME、END、PAGEUP、PAGEDOWN等等;[3].組合鍵和其它鍵組合使用的控制鍵:Alt、Ctrl、Shift等;說明:鍵盤和主機(jī)相連的五根線:電源線、地線、復(fù)位線、鍵盤數(shù)據(jù)線和鍵盤時(shí)鐘線;按盤識(shí)別采用“行列掃描法”;鍵盤數(shù)據(jù)線將按鍵的8位“掃描碼”送入主機(jī);前一講第15講(第15周):鍵盤I/O和顯示器I/O總目錄2、字符碼與掃描碼:[1]、掃描碼的獲得若鍵盤中斷允許(8259A的中斷屏蔽寄存器[即21H端口]的第1位為0),按下或放開一個(gè)鍵時(shí)產(chǎn)生一個(gè)類型9的鍵盤中斷而轉(zhuǎn)入BIOS鍵盤中斷處理程序,該程序從8255可編程外圍接口芯片的輸入口60H讀取一個(gè)字節(jié),該字節(jié)低7位就是“掃描碼”,按下時(shí)最高位為0(此時(shí)稱為“通碼”),放開時(shí)最高位為1(此時(shí)稱之為“斷碼”);[2]、掃描碼的處理BIOS鍵盤中斷處理程序?qū)呙璐a作如下處理:字符數(shù)字鍵(ASCⅡ碼鍵)把掃描碼轉(zhuǎn)換成相應(yīng)的字符碼(大部分為ASCⅡ碼);非字符數(shù)字符鍵(非ASCⅡ碼鍵)不轉(zhuǎn)換,仍為掃描碼,產(chǎn)生一個(gè)操作;字符碼或掃描碼存儲(chǔ)于ROMBIOS數(shù)據(jù)區(qū)的鍵盤緩沖區(qū)KB-BUFFER中
前一講3.鍵盤I/O中斷(1).BIOS鍵盤中斷(INT16H)AH功能返回參數(shù)
0從鍵盤讀一字符AL=字符碼,AH=掃描碼
1讀鍵盤緩沖區(qū)的字符如ZF=0,AL=字符碼,AH=掃描碼如ZF=1,緩沖區(qū)空
2取鍵盤狀態(tài)字節(jié)AL=鍵盤狀態(tài)字節(jié)
P319
字符數(shù)字鍵字符碼為ASCII碼功能鍵、控制鍵字符碼為0對應(yīng)一個(gè)掃描碼第15講(第15周):鍵盤I/O和顯示器I/O總目錄前一講DOS鍵盤中斷(INT21H)第15講(第15周):鍵盤I/O和顯示器I/O總目錄AH功能調(diào)用參數(shù)返回參數(shù)1鍵盤輸入一個(gè)字符,并回顯在屏幕上AL=字符(ASCⅡ碼)6讀取鍵盤緩沖區(qū)字符DL=OFFHZF=0時(shí)(不空),AL=字符;ZF=1時(shí)(為空),AL=07鍵盤輸入一個(gè)字符,不回顯AL=字符8鍵盤輸入一個(gè)字符,不回顯;檢測ctrl-break
AL=字符A輸入字符到緩沖區(qū)DS:DX=緩沖區(qū)首址首字節(jié)初始化為最大字符數(shù)
B讀鍵盤狀態(tài)有鍵入時(shí)AL=FFH無鍵入時(shí)AL=00HC清除鍵盤緩沖區(qū),并調(diào)用一種鍵盤功能AL=鍵盤功能號(1、6、7、8、A)注意:AH=1/7/8/0AH都是字符先進(jìn)鍵盤緩沖區(qū)然后進(jìn)AL或用戶緩沖區(qū);前一講第15講(第15周):鍵盤I/O和顯示器I/O總目錄[1]、單字符輸入方法AH=01/07/08AH=01H和08H時(shí),如果按下Ctrl-C或Ctrl-Break,DOS在返回前調(diào)用INT23H并結(jié)束程序;實(shí)例參見eg9.2~9.4[2]、字符串輸入方法
AH=OAH
(P322)
從鍵盤讀入一個(gè)字符串并把它存入用戶定義的緩沖區(qū)中;緩沖區(qū)中第1個(gè)字節(jié)保存事前用戶指定的本次輸入的最大字符數(shù)(<=255);緩沖區(qū)的第2個(gè)字節(jié)是實(shí)際輸入的字符數(shù)(由功能A填入)最后結(jié)束字符串的回車ODH占一個(gè)字節(jié);整個(gè)緩沖區(qū)的大小為“最大字符數(shù)(含回車)+2”;程序運(yùn)行時(shí),每鍵入一個(gè)字符第2個(gè)字節(jié)自增1,當(dāng)?shù)?個(gè)字節(jié)值比第1個(gè)字節(jié)小且遇到“回車”則結(jié)束輸入,若第1個(gè)字節(jié)等于第0個(gè)字節(jié)值還沒有“回車”則光標(biāo)不移動(dòng)且發(fā)“嘟嘟”聲;[3]、清除鍵盤緩沖區(qū)方法
AH=OCH
MOVAH,0CHMOVAL,08H;指定清除鍵盤緩沖區(qū)以后執(zhí)行相應(yīng)的功能;INT21H[4]、檢查鍵盤狀態(tài)方法
AH=OBH若有按鍵則AL=0FFH,沒有按鍵則AL=OH
SOUNDER:……
MOVAH,OBHINT21HINCALJNZSOUNDER
RET前一講例:輸入字符串到緩沖區(qū)STRING,用戶最多連續(xù)輸入32個(gè)字符;DATASSEGMENT
MAXLENDB32
ACTLENDB?
STRINGDB32DUP(?)DATASENDSCODE SEGMENT
… MOVAX,DATAS MOV DS,AX LEA DX,MAXLEN MOV AH,0AH INT 21H …CODE ENDS END第15講(第15周):鍵盤I/O和顯示器I/O總目錄前一講或MAXLENDB32,0,32DUP(?)或MAXLENDB32,33DUP(?)第15講(第15周):鍵盤I/O和顯示器I/O總目錄§9.2、顯示器I/O1、顯示器簡介顯示器通過“顯示適配器(即:顯卡)”與PC機(jī)相連,[1].顯卡的組成
PCB板印刷電路板; 圖形芯片(GPU)相當(dāng)于CPU,處理顯示信息; 顯存存儲(chǔ)臨時(shí)信息等;(獨(dú)立于主存)[2].顯卡的分類獨(dú)立顯卡顯存是一個(gè)單獨(dú)芯片;集成顯卡顯存和圖形芯片等集成在PCB板上;早期顯卡:單色顯卡(MDA)接單色顯示器;只能顯示ASCⅡ碼字符;彩色顯卡(CGA)接彩色顯示器;可顯示ASCⅡ碼字符,可顯示以點(diǎn)繪制的圖形;后來陸續(xù)出現(xiàn)“增強(qiáng)型圖形適配器(EGA)”、“視頻圖形陣列適配器(VGA)”2、字符顯示屬性說明屏幕上每個(gè)字符都對應(yīng)于顯存的連續(xù)兩個(gè)字節(jié),一個(gè)字節(jié)保存ASCⅡ碼,另一個(gè)字節(jié)保存字符的屬性;[1].單色字符顯示字符顯示屬性字節(jié)參見P325圖9.5;同一屏的不同字符可以按不同屬性來顯示,具體參見P326表9.6;[2].彩色字符顯示顯示屬性字節(jié)參見P326圖9.6和表9.7;[3].顯示存儲(chǔ)器不同顯卡的顯示存儲(chǔ)器起始地址不同;一般而言顯示存儲(chǔ)器可容納多屏(即多頁)顯示信息,參見P327例9.7;前一講第15講(第15周):鍵盤I/O和顯示器I/O總目錄3、BIOS顯示中斷INT10H(參見P329表9.8)[1]、控制光標(biāo)INT10H
的功能1顯示或關(guān)閉光標(biāo);
INT10H
的功能2設(shè)置光標(biāo)位置;
AH=1 CH0~3=光標(biāo)開始行,CL0~3=光標(biāo)結(jié)束行;方法是
CH4=1關(guān)閉光標(biāo),CH4=0打開光標(biāo);
AH=2 DH=光標(biāo)行號;DL=光標(biāo)列號;
BH=光標(biāo)頁號;(單色BH=0)Eg9.8略;[2]、讀光標(biāo)位置INT10H
AH=03
在BH中指定頁號,光標(biāo)行號在DH中,光標(biāo)列號在DL中,光標(biāo)大小的參數(shù)填入CH(光標(biāo)開始行)和CL(光標(biāo)結(jié)束行)中;[3]、選擇顯示頁INT10HAH=5;AL=顯示頁;[4]、清屏和卷屏INT10HAH=6;(參見Eg9.11)[5]、兩種字符顯示方法
INT10HAH=09H字符及其屬性輸出到當(dāng)前光標(biāo)位置;INT10HAH=0AH字符輸出到當(dāng)前光標(biāo)位置,屬性同先前此位置的屬性;[6]、彩色和字符串顯示INT10HAH=09功能
AL=字符ASCⅡ碼;BL=彩色屬性;前一講4、顯示器I/O文本方式ASCII字符
76543210
76543210前景000=黑111=白亮度0=正常亮度1=加強(qiáng)亮度閃爍0=正常顯示1=閃爍顯示背景000=黑111=白單色屬性
76543210
前景閃爍背景BL
R
G
B
IRGB16色屬性第15講(第15周):鍵盤I/O和顯示器I/O總目錄前一講BIOS顯示中斷實(shí)例(INT10H)功能號AH=0,1,2,3,5,6,7,8,9,0AH,0EH,13H(p.328)例:清除屏幕
mov ah,6 ;屏幕初始化 mov al,0 ;全屏空白 mov bh,7 ;卷入行屬性 mov ch,0 ;左上角行號 mov cl,0 ;左上角列號 mov dh,24 ;右下角行號 mov dl,79 ;右下角列號
int 10h ;BIOS調(diào)用
定義窗口第15講(第15周):鍵盤I/O和顯示器I/O總目錄前一講例:
在品紅背景下,顯示5個(gè)淺綠色閃爍的星號。
MOVAH,09;光標(biāo)位置下顯示
MOVAL,’*’;顯示字符
MOVBH,0;顯示頁0MOVBL,0DAH;1
101
1010(表9.7)MOVCX,05H;顯示次數(shù)
INT10H
;BIOS調(diào)用第15講(第15周):鍵盤I/O和顯示器I/O總目錄前一講例:在屏幕上以紅底蘭字顯示字符串:“WORLDSCENERY”STRINGDB‘WORLDSCENERY’;定義在ES段LEN_TRDW13 ┇MOVAL,3 ;80×25,16色文本方式;MOVAH,0
INT10HMOVBP,SEGSTRING MOVES,BP;串地址ES:BPMOVBP,OFFSETSTRINGMOVCX,LEN_STR;串長度
MOVDX,0 ;起始行列MOVBX,0041H ;0100
0001(屬性)MOVAL,1 ;子功能MOVAH,13H
;顯示字符串INT10H
第15講(第15周):鍵盤I/O和顯示器I/O總目錄前一講5、DOS顯示功能調(diào)用中斷(INT21H)第15講(第15周):鍵盤I/O和顯示器I/O總目錄AH功能調(diào)用參數(shù)2顯示一個(gè)字符(檢驗(yàn)Ctrl-Break)光標(biāo)跟隨字符移動(dòng)DL=字符6顯示一個(gè)字符(不檢驗(yàn)Ctrl-Break)光標(biāo)跟隨字符移動(dòng)DL=字符9顯示字符串光標(biāo)跟隨串移動(dòng)DS:DX=串地址串必須以$結(jié)束例:顯示字符串
MESSAGEDB‘Thesortoperationisfinished.’,13,10,’$’…… MOVAH,9 MOVDX,SEGMESSAGE MOVDS,DX MOVDX,OFFSETMESSAGE
INT21H前一講§9.3、打印機(jī)I/O
(自學(xué)內(nèi)容)第15講(第15周):鍵盤I/O和顯示器I/O總目錄例:
打印字符串TEXT(DOS)TEXTDB‘Hello,everybody!’COUNTEQU$-TEXT;COUNT=17……MOVCX,COUNTMOVBX,0 NEXT:MOVAH,5
MOVDL,TEXT[BX]
INT21HINC BX LOOPNEXT 例:
打印字符串TEXT(BIOS)TEXTDB‘Hello,everybody!’COUNTEQU$-TEXT……MOVCX,COUNTMOVBX,0NEXT:MOVAH,0
MOVAL,TEXT[BX]
MOVDX,0;打印機(jī)號
INT17HINCBXLOOPNEXT前一講§9.4、串行通信口I/O第15講(第15周):鍵盤I/O和顯示器I/O總目錄9.4.1、串行通信接口基礎(chǔ)知識(shí)1、串行通信的方式:[1].同步方式一次傳遞一個(gè)字節(jié);[2].異步方式一次傳遞一個(gè)數(shù)據(jù)塊;2、串行通信接口(RS-23
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年建筑工地大型設(shè)備拆裝及搬運(yùn)安全服務(wù)合同
- 企業(yè)內(nèi)部的數(shù)據(jù)治理框架構(gòu)建與優(yōu)化
- 在線教學(xué)工具對師生交互影響的分析
- 全球化時(shí)代的教育政策多元文化的融合與碰撞
- 教育行業(yè)中的企業(yè)社會(huì)責(zé)任與政策引導(dǎo)
- 寧波市江北區(qū)全媒體中心招聘筆試真題2024
- 智能伙伴在課堂中的實(shí)際應(yīng)用
- 俄國至上而下的改革課件
- 2024年南京市雨花臺(tái)區(qū)教育局所屬幼兒園招聘教師真題
- 氯水與氯離子的檢驗(yàn)(精講)
- 切削刀具項(xiàng)目實(shí)施方案
- 常見行政案件筆錄模版
- 手術(shù)室甲狀腺切除術(shù)手術(shù)配合護(hù)理查房
- 國家電網(wǎng)電力中級職稱考試題
- 美國專利法及實(shí)務(wù)培訓(xùn)-上傳課件
- 新版中國電信員工手冊
- 2023年中國工商銀行軟件開發(fā)中心春季校園招聘500人筆試模擬試題及答案解析
- D500-D505 2016年合訂本防雷與接地圖集
- 中國重癥加強(qiáng)治療病房(ICU)建設(shè)與管理指南
- 社區(qū)矯正法課件
- 后勤保障樓幕墻施工方案新
評論
0/150
提交評論