匯編語言第9章BIOS和DOS中斷ppt課件_第1頁
匯編語言第9章BIOS和DOS中斷ppt課件_第2頁
匯編語言第9章BIOS和DOS中斷ppt課件_第3頁
匯編語言第9章BIOS和DOS中斷ppt課件_第4頁
匯編語言第9章BIOS和DOS中斷ppt課件_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第9章 BIOS和DOS中斷如何控制鍵盤的操作?輸入并回顯Mov ah,1Int 21h輸入不回顯Mov ah,7Int 21h如何知道按過什么鍵?是KeyDown,還是KeyUp?功能鍵F1F12鍵如何運用?與CTRL、ALT及SHIFT鍵又如何運用?串輸入操作:略屏幕顯示方法單字符顯示MOV AH,2MOV DL,GINT 21H字符串顯示MOV AH,0AHLEA DX,STRINGMOV DS,SEG STRINGINT 21H如何在指定位置顯示?如何選定字符顏色和背景顏色?BIOS功能調(diào)用 、DOS模塊I/O懇求IBMDOSIBMBIOBIOS外設(shè)BIOS功能調(diào)用 可不用了解硬件I/

2、O接口的特性,直接用指令設(shè)置參數(shù),然后中斷調(diào)用BIOS中的程序 編寫的程序簡約、可讀性好,而且易于移植 DOS模塊 IBMBIO:輸入/輸出設(shè)備處置程序,它提供了DOS到ROM BIOS的低級接口,完成將數(shù)據(jù)從外設(shè)讀入內(nèi)存,或把數(shù)據(jù)從內(nèi)存寫到外設(shè)去的任務(wù) IBMDOS:包括一個文件管理程序和一些處置程序 DOS中斷和BIOS中斷 一些DOS中斷和BIOS中斷可執(zhí)行同樣的功能。也有些不同。BIOS比DOS更接近硬件,但盡能夠運用DOS功能。DOS中斷能處置大多數(shù)的I/O,有些功能還沒有提供BIOS中斷類型CPU中斷類型8259中斷類型 BIOS中斷類型用戶運用程序表9.1 BIOS中斷類型1 C

3、PU中斷類型 0 除法錯 4 溢出1 單步 5 打印屏幕 2 非屏蔽中斷 6 保管3 斷點 7 保管 表9.1 BIOS中斷類型28259中斷類型 8 8254系統(tǒng)定時器 C 保管通訊 9 鍵盤 IRQ1 D 保管ALT打印機 A 保管 E 軟盤 B 保管通訊 F 打印機 表9.1 BIOS中斷類型3BIOS中斷類型 10 顯示器 16 鍵盤I/O11 設(shè)備檢驗 17 打印機12 內(nèi)存大小 18 駐留BASIC 13 磁盤 19 引導(dǎo)14 通訊 1A 時鐘15 I/O系統(tǒng)擴展 40 軟盤表9.1 BIOS中斷類型4用戶運用程序 1B 鍵盤Break 1C 定時器4A 報警數(shù)據(jù)表指針1D 顯示器

4、參量 41 1#硬盤參量1E 軟盤參量 46 2#硬盤參量1F 圖形字符擴展 49 指向鍵盤加強效力變換表表9.2 DOS中斷類型 20 程序終了 26 絕對盤寫入21 功能調(diào)用 27 終了并留在內(nèi)存22 終了地址 28-2E 保管給DOS23 Ctrl_Break出口地址 2F 打印機24 嚴(yán)重錯處置 30-3F 保管給DOS25 絕對盤讀取 DOS中斷和BIOS中斷的運用設(shè)定一些參數(shù)MOV AH,功能號NMOV AL,子功能號M調(diào)用DOS中斷或BIOS中斷9.1 鍵盤I/O 鍵盤及三種根本類型的鍵 三種根本類型的鍵 1.字符鍵:如字母A到Z,數(shù)字0到9,等2.擴展功能鍵:如Home,End

5、,Backspace,Arrows,Return,Del,Ins,PgUp,PgDn以及程序功能鍵等。3.控制鍵:和其它鍵組合運用的控制鍵,如ALT,Ctrl和 Shift。9.1.1字符碼與掃描碼-來源鍵盤上“按下或“放開一個鍵假設(shè)鍵盤中斷允許的21H端口第1位=0,就會產(chǎn)生一個類型9的中斷,并轉(zhuǎn)入到BIOS的鍵盤中斷處置程序。該處置程序從8255可編程序外圍接口芯片的輸入端口60H讀取一個字節(jié)中斷屏蔽存放器幾種碼1、掃描碼:是字節(jié)的低7位。最高位為0:表示鍵是“按下形狀獲得通碼最高位為1:表示鍵是“放開形狀獲得斷碼2、通碼:按下時,獲得的字節(jié),最高位為0。3、斷碼:放開時,獲得的字節(jié),最高

6、位為1。 鍵盤上的每個鍵都對應(yīng)一個掃描碼:從01ESC到83DEL,或從01H到53H根據(jù)掃描碼就能獨一地確定哪一個鍵改動了形狀。4、字符碼:BIOS鍵盤處置程序?qū)@得的掃描碼轉(zhuǎn)換成相應(yīng)的字符碼 字符碼大部分鍵的字符碼是一個規(guī)范的ASCII碼沒有對應(yīng)ASCII碼的鍵,字符碼為0例:ALT和功能鍵F1-F10,字符碼為0 9.1.2 BIOS鍵盤中斷 鍵盤操作:用類型16鍵盤中斷 3個不同的功能 :AH 功能 前往參數(shù) 0 從鍵盤讀一字符 AL=字符碼 AH=掃描碼 1 讀鍵盤緩沖區(qū)的字符 如ZF=0 AL=字符碼 AH=掃描碼 如ZF=1,緩沖區(qū)空 2 取鍵盤形狀字節(jié) AL=鍵盤形狀字節(jié)舉例

7、mov ah, 0 ;從鍵盤讀一字符 int 16h ;類型16中斷 cmp al, 3 ;字符是ctrl+c嗎 jz exit ;then exit mov ah,2 mov dl,al int 21h 程序m900key.asmgo鍵盤形狀字節(jié) (功能) AH=2 INT 16H可把表示鍵形狀的字節(jié)回送到AL存放器讀取鍵盤形狀字節(jié)讀取鍵盤形狀字節(jié)的內(nèi)容,并顯示該字節(jié)的內(nèi)容十六進(jìn)制程序:m901stat.asm9.1.3 DOS鍵盤功能調(diào)用DOS類型21H中斷提供的鍵盤功能調(diào)用:AH 功能 調(diào)用參數(shù) 前往參數(shù)1 從鍵盤輸入一個字符 并回顯在屏幕上 AL=字符6 讀鍵盤字符 DL=0FFH A

8、L=字符 假設(shè)可取 AL=0 未預(yù)備好7 從鍵盤輸入一個字符 不回顯 AL=字符9.1.3 DOS鍵盤功能調(diào)用(續(xù))AH 功能 調(diào)用參數(shù) 前往參數(shù)8 從鍵盤輸入一個字符, 不回顯,檢測Ctrl_Break AL=字符A 輸入字符到緩沖區(qū) DS:DX=緩沖區(qū)首址B 讀鍵盤形狀 AL=0FFH有鍵入 AL=00無鍵入C 去除鍵盤緩沖區(qū) 并調(diào)用一種鍵盤功能 AL=鍵盤功能號 1,6,7,8或A一單字符輸入-回想 GET_KEY: MOV AH,1 ;回顯,檢測ctl_Break INT 21H CMP AL,Y ;按了Y? JE YES ; 是,跳轉(zhuǎn)到Y(jié)ES CMP AL,N ;按了N? JE NO

9、 ;是,跳轉(zhuǎn)到NO JNE GET_KEY ;否那么,等待Y或N 檢測EnterReturn鍵 WAIT_HERE: MOV AH,7 ;不回顯 INT 21H CMP AL,0DH JNE WAIT_HERE 接納功能鍵或數(shù)字組合鍵 進(jìn)展兩次DOS調(diào)用第一次回送00第二次回送掃描碼例:程序顯示出一個菜單,要求用戶經(jīng)過鍵入F1,F(xiàn)2或 F3來選擇 l、2或 3項,按其它鍵那么產(chǎn)生錯誤信息程序:二輸入字符串-回想21H中斷的功能A能從鍵盤讀入一串字符并把它存入用戶定義的緩沖區(qū)中 數(shù)據(jù)區(qū)定義的字符緩沖區(qū)如下: MAXLEN DB 50 ACTLEN DB ? STRING DB 32H DUP (

10、?) 或 array1 db 50,?, 50 dup(?)輸入字符串的指令 LEA DX,MAXLEN MOV AH,0AH INT 21h328Iloveyou0d MAXLEN db 50,?, 50 dup(?)存儲格式:輸入后三去除鍵盤緩沖區(qū) INT 21H的功能0CH能去除鍵盤緩沖區(qū) 然后執(zhí)行如AL中指定的功能AL=1、6、7、8或0AH功能0CH的用法如下: MOV AH, 0CH MOV AL, 08H INT 21H 先清再輸四檢驗鍵盤形狀 DOS 21H的功能0BH能檢驗一個鍵能否被按動假設(shè)按下一個鍵,那么在AL存放器中放入0FFH如沒有按下鍵,那么在AL中放00無論哪種情

11、況都將繼續(xù)執(zhí)行程序中的下一條指令 9.2 顯示器 I/O顯示器的屏幕 劃分成80列25行屏幕的行號從0至24,列號從0到79 在這2000個2580網(wǎng)格位置上顯示字符屏幕上的每個網(wǎng)格位置稱為一個“象素。對應(yīng)屏幕上的每個象素,存儲器中都有一個相應(yīng)單元,屏幕是“存儲器映象 9.2.1 字符屬性 單色顯示屏幕上的每個字符在存儲器中由兩個字節(jié)表示 一個字節(jié)保管字符的ASCII碼另一個字節(jié)保管字符的屬性 字符的屬性確定了每個要顯示字符的特性:字符能否閃爍顯示,能否被加亮,能否反相顯示 單色顯示的屬性字節(jié) 正常顯示屬性:07(二進(jìn)制00000111)背景為黑色(000),前景為白色(111),閃爍位為正常

12、(0),加強亮度位正常(0) 一些典型的屬性值 二進(jìn)制 十六進(jìn)制 效果 00000000 00 不顯示 00000001 0F 00000111 07 00001111 0F 01110000 70 白底黑字,反相顯示 10000111 87 黑底白字,閃爍 11110000 F0 白底黑字,反相閃爍黑底白字,高亮度黑底白字,正常顯示黑底白字,下劃線單色顯存單色顯示存儲器容量為4K字節(jié)存儲區(qū)域:段地址為B000H,偏移地址0即:B000: 0000HB000: 0F9FH彩色字符顯示屬性字節(jié)可選擇: 背景顏色和顯示字符的前景顏色背景:8色 000111前景:16色00001111閃爍位BL:正

13、常0,閃爍1亮度位I:正常0,加強1BLRGBIRGB閃爍 背景 前景顯示存儲器MDA單色顯示存儲器:存儲區(qū)域:段地址為B000H,偏移地址0即:B000: 0000HB000: 0F9FH CGA、EGA、VGA顯示存儲器注:各顯示適配器起始地址能夠不同存儲區(qū)域:段地址為B800H,偏移地址0000H0頁起始地址 B800: 0000H1頁起始地址 B800: 1000H2頁起始地址 B800: 2000H3頁起始地址 B800: 3000H屏幕上一個位置在顯存中的偏移地址Char_offset=Page_offset+(rowwidth)+column) byte其中: Page_offs

14、et:頁偏移地址 Width :80 byte :2字符顯示 Column :列坐標(biāo) row :行坐標(biāo)9.2.2 BIOS顯示中斷 中斷類型10H表9.8列出了部分顯示操作及所用的存放器控制光標(biāo) 讀光標(biāo)位置 選擇顯示頁清屏和卷屏、開窗口 字符顯示彩色和字符串顯示 1. 控制光標(biāo) INT 10H的功能1:使光標(biāo)顯現(xiàn)或封鎖、控制光標(biāo)的大小控制光標(biāo)行的開場和終了光標(biāo)行開場:CH的低4位(03,光標(biāo)頂部光標(biāo)行終了:CL的低4位(03,光標(biāo)底部當(dāng)CH的第4位為1時,光標(biāo)不顯現(xiàn)出來封鎖當(dāng)CH的第4位為0時,光標(biāo)在屏幕上顯現(xiàn)出來單色顯示器的光標(biāo)大小的范圍從013注:VGA 13:14 單色6:7INT 10

15、H的功能2 設(shè)置光標(biāo)位置DH:光標(biāo)新位置的行號DL:光標(biāo)新位置的列號BH中必需包含被輸出的頁號單色顯示器,頁號總是0例9.8 設(shè)置光標(biāo)光標(biāo)開場行為5,終了行為7,設(shè)置在第5行第6列 MOV CH,5 ;開場行為5 MOV CL,7 ;終了行為7 MOV AH,1 ;控制光標(biāo)的大小 INT 10H ; MOV DH,4 ;第5行 MOV DL,5 ;第6列 MOV BH,0 ; 0頁 MOV AH,2 ; INT 10H ; 2. 讀光標(biāo)位置10H的功能3:讀光標(biāo)位置頁號必需由BH指定前往:光標(biāo)位置的行號送給DH,列號送給DL,光標(biāo)大小的參數(shù)填入CH和CL3. 選擇顯示頁10H的功能5 AL定頁

16、號0頁起始地址 B800: 0000H1頁起始地址 B800: 1000H2頁起始地址 B800: 2000H3頁起始地址 B800: 3000H 4. 清屏和卷屏、開窗口10H的功能6能使屏幕內(nèi)容上卷指定的行10H的功能7能使屏幕內(nèi)容下卷指定的行參數(shù):AL:上下卷的行數(shù)左上角為:CH,CL右下角為:DH,DLBH:顯示屬性全屏:AL=0,清屏功能例9.12 去除窗口 去除左上角為0,0,右下角為24,39的窗口,初始化為反相顯示 MOV AH,7 MOV AL,0 MOV BH,70H ;反相 MOV CH,0 MOV CL,0 MOV DH,24 MOV DL,39 INT 10H開窗口、

17、輸入、卷屏例9.13:在屏幕中間建立一個20列寬、9行高的窗口,然后把鍵入的內(nèi)容在這個窗口顯示出來。鍵入的字符將被顯示在窗口的最下面一行,每當(dāng)輸入20個字符,該行就向上卷動,9行字符輸入完后,頂端行的內(nèi)容喪失開窗口程序:m913wind.asm5. 字符顯示10H的功能9和功能A都能把一個字符傳送到顯示屏幕,然后光標(biāo)前往到它的初始位置區(qū)別:AH=9的功能把字符及其屬性輸出到當(dāng)前光標(biāo)位置上AH=0AH的功能只輸出字符,它的屬性值就是這一位置上先前已具有的屬性例9.14置光標(biāo)、顯示星號 置光標(biāo)到0顯示頁的(20,25)位置,并以正常屬性顯示一個星號程序:m914char.asm6. 彩色和字符串顯

18、示 10H的功能9顯示彩色字符,13顯示彩色字符串BL設(shè)置前景和背景的屬性值程序:m916colr.asm比較 MOV dx, 1023h ;(10h,23h) MOV bl, 41h ;紅底藍(lán)字 MOV AL, 0 ;光標(biāo)回到原始位置 ; MOV AL, 1 ;光標(biāo)跟隨挪動 MOV ah, 13h ; INT 10H 程序:m917strg.asm例9.18以紅底藍(lán)字顯示以紅底藍(lán)字顯示“WORLD,然后分別以紅底綠字和紅底藍(lán)字相間地顯示 “SCENERY程序:m918strg.asm9.2.3 DOS顯示功能調(diào)用 INT 21H顯示操作 AH 功能 調(diào)用參數(shù) 2 顯示一個子符 DL=字符 光標(biāo)跟隨字符挪動 檢驗Ctrl_Break 6 顯示一個字符 DL=字符 光標(biāo)跟隨字符挪動 不檢驗Ctrl_Break 9 顯示字符串 DS:DX=串地址 串必需以$終了 光標(biāo)跟隨串挪動 加上回車和換行的字符串 加上回車和換行的字符串定義: MESSAGE DB The sor

溫馨提示

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

最新文檔

評論

0/150

提交評論