匯編語言第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頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

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功能調用 、DOS模塊I/O懇求IBMDOSIBMBIOBIOS外設BIOS功能調用 可不用了解硬件I/

2、O接口的特性,直接用指令設置參數,然后中斷調用BIOS中的程序 編寫的程序簡約、可讀性好,而且易于移植 DOS模塊 IBMBIO:輸入/輸出設備處置程序,它提供了DOS到ROM BIOS的低級接口,完成將數據從外設讀入內存,或把數據從內存寫到外設去的任務 IBMDOS:包括一個文件管理程序和一些處置程序 DOS中斷和BIOS中斷 一些DOS中斷和BIOS中斷可執行同樣的功能。也有些不同。BIOS比DOS更接近硬件,但盡能夠運用DOS功能。DOS中斷能處置大多數的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系統定時器 C 保管通訊 9 鍵盤 IRQ1 D 保管ALT打印機 A 保管 E 軟盤 B 保管通訊 F 打印機 表9.1 BIOS中斷類型3BIOS中斷類型 10 顯示器 16 鍵盤I/O11 設備檢驗 17 打印機12 內存大小 18 駐留BASIC 13 磁盤 19 引導14 通訊 1A 時鐘15 I/O系統擴展 40 軟盤表9.1 BIOS中斷類型4用戶運用程序 1B 鍵盤Break 1C 定時器4A 報警數據表指針1D 顯示器

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

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

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

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鍵盤形狀字節 (功能) AH=2 INT 16H可把表示鍵形狀的字節回送到AL存放器讀取鍵盤形狀字節讀取鍵盤形狀字節的內容,并顯示該字節的內容十六進制程序:m901stat.asm9.1.3 DOS鍵盤功能調用DOS類型21H中斷提供的鍵盤功能調用:AH 功能 調用參數 前往參數1 從鍵盤輸入一個字符 并回顯在屏幕上 AL=字符6 讀鍵盤字符 DL=0FFH A

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

9、 ;是,跳轉到NO JNE GET_KEY ;否那么,等待Y或N 檢測EnterReturn鍵 WAIT_HERE: MOV AH,7 ;不回顯 INT 21H CMP AL,0DH JNE WAIT_HERE 接納功能鍵或數字組合鍵 進展兩次DOS調用第一次回送00第二次回送掃描碼例:程序顯示出一個菜單,要求用戶經過鍵入F1,F2或 F3來選擇 l、2或 3項,按其它鍵那么產生錯誤信息程序:二輸入字符串-回想21H中斷的功能A能從鍵盤讀入一串字符并把它存入用戶定義的緩沖區中 數據區定義的字符緩沖區如下: 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(?)存儲格式:輸入后三去除鍵盤緩沖區 INT 21H的功能0CH能去除鍵盤緩沖區 然后執行如AL中指定的功能AL=1、6、7、8或0AH功能0CH的用法如下: MOV AH, 0CH MOV AL, 08H INT 21H 先清再輸四檢驗鍵盤形狀 DOS 21H的功能0BH能檢驗一個鍵能否被按動假設按下一個鍵,那么在AL存放器中放入0FFH如沒有按下鍵,那么在AL中放00無論哪種情

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

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

13、常0,閃爍1亮度位I:正常0,加強1BLRGBIRGB閃爍 背景 前景顯示存儲器MDA單色顯示存儲器:存儲區域:段地址為B000H,偏移地址0即:B000: 0000HB000: 0F9FH CGA、EGA、VGA顯示存儲器注:各顯示適配器起始地址能夠不同存儲區域:段地址為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 :列坐標 row :行坐標9.2.2 BIOS顯示中斷 中斷類型10H表9.8列出了部分顯示操作及所用的存放器控制光標 讀光標位置 選擇顯示頁清屏和卷屏、開窗口 字符顯示彩色和字符串顯示 1. 控制光標 INT 10H的功能1:使光標顯現或封鎖、控制光標的大小控制光標行的開場和終了光標行開場:CH的低4位(03,光標頂部光標行終了:CL的低4位(03,光標底部當CH的第4位為1時,光標不顯現出來封鎖當CH的第4位為0時,光標在屏幕上顯現出來單色顯示器的光標大小的范圍從013注:VGA 13:14 單色6:7INT 10

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

16、號0頁起始地址 B800: 0000H1頁起始地址 B800: 1000H2頁起始地址 B800: 2000H3頁起始地址 B800: 3000H 4. 清屏和卷屏、開窗口10H的功能6能使屏幕內容上卷指定的行10H的功能7能使屏幕內容下卷指定的行參數:AL:上下卷的行數左上角為: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行高的窗口,然后把鍵入的內容在這個窗口顯示出來。鍵入的字符將被顯示在窗口的最下面一行,每當輸入20個字符,該行就向上卷動,9行字符輸入完后,頂端行的內容喪失開窗口程序:m913wind.asm5. 字符顯示10H的功能9和功能A都能把一個字符傳送到顯示屏幕,然后光標前往到它的初始位置區別:AH=9的功能把字符及其屬性輸出到當前光標位置上AH=0AH的功能只輸出字符,它的屬性值就是這一位置上先前已具有的屬性例9.14置光標、顯示星號 置光標到0顯示頁的(20,25)位置,并以正常屬性顯示一個星號程序:m914char.asm6. 彩色和字符串顯

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

溫馨提示

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

評論

0/150

提交評論