第九章BIOS和DOS中斷_第1頁
第九章BIOS和DOS中斷_第2頁
第九章BIOS和DOS中斷_第3頁
第九章BIOS和DOS中斷_第4頁
第九章BIOS和DOS中斷_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第九章BIOS和DOS中斷任課教師:陶雪麗xueli_xl@126.com2/6/20231河南師范大學計算機與信息技術學院本章內(nèi)容提要鍵盤I/O顯示器I/O打印機I/O串行通信口I/O2/6/20232河南師范大學計算機與信息技術學院BIOS和DOS基本輸入輸出系統(tǒng)(basicinput/outputsystem,BIOS)例行程序,駐留在系統(tǒng)的從地址0FE000H開始的8KB的只讀存儲器中。BIOS給PC系列的不同微處理器提供了兼容的系統(tǒng)加電自檢、引導裝入、主要I/O設備的處理程序以及接口控制等功能模塊來處理所有的系統(tǒng)中斷。使用DOS操作比使用BIOS操作更簡易,而且DOS對硬件的依賴性更少些。有些情況既能選擇DOS中斷也能選擇BIOS中斷。如字符輸入輸出等。但有些功能DOS沒有提供,這時只能考慮用I/O指令在端口級上編程。如聲音控制等。2/6/20233河南師范大學計算機與信息技術學院BIOS和DOS功能調(diào)用的步驟將調(diào)用參數(shù)裝入指定的寄存器中;如需功能號,把它裝入AH;如需子功能號,把它裝入AL;按中斷號調(diào)用DOS或BIOS中斷;檢查返回參數(shù)是否正確。2/6/20234河南師范大學計算機與信息技術學院9.1鍵盤I/O1字符碼與掃描碼2BIOS鍵盤中斷3DOS鍵盤功能調(diào)用2/6/20235河南師范大學計算機與信息技術學院鍵盤的基本鍵鍵盤的主要三種基本類型鍵:字符數(shù)字鍵。如A(a)~Z(z),數(shù)字0~9以及%,$,#等常用字符。擴展功能鍵。如Home,End,Backspace,Delete的等。和其他鍵組合使用的控制鍵。如Alt,Ctrl和Shift等。字符數(shù)字鍵給計算機傳送一個ASCII碼字符;擴展功能鍵產(chǎn)生一個動作;組合控制鍵能改變其他鍵所產(chǎn)生的字符碼。2/6/20236河南師范大學計算機與信息技術學院9.1.1字符碼和掃描碼當在鍵盤上“按下”或“放開”一個鍵時,如果鍵盤中斷是允許的(21H端口的D1=0),就會產(chǎn)生一個類型號為9的中斷,并轉(zhuǎn)入到BIOS的鍵盤中斷處理程序。該處理程序從8255可編程外圍接口芯片的輸入端口60H讀取一個字節(jié),這個字節(jié)的低7位是鍵的掃描碼。而最高位為0或為1,分別表示鍵的“按下”和“放開”狀態(tài)。按下時,取得的字節(jié)稱為通碼;放開時取得的字符稱為斷碼。鍵盤上每個鍵都對應一個掃描碼。根據(jù)掃描碼能惟一地確定哪一個鍵改變了狀態(tài)。P317的表9.3給出了鍵盤上每個鍵對應的掃描碼。2/6/20237河南師范大學計算機與信息技術學院BIOS鍵盤中斷處理程序BIOS鍵盤中斷處理程序?qū)⑷〉玫綊呙璐a轉(zhuǎn)換成相應的字符碼,大部分鍵的字符碼是一個標準的ASCII碼。轉(zhuǎn)換成的字符碼以及掃描碼存儲在ROMBIOS數(shù)據(jù)區(qū)的鍵盤緩沖區(qū)KB_BUFFER中。

0040:001ABUFF_HEADDW?;鍵盤緩沖區(qū)的首地址 0040:001CBUFF_TAILDW?;鍵盤緩沖區(qū)的末地址 0040:001EKB_BUFFERDW16DUP(?);16個輸入量的空間 0040:003DKB_BUFFER_ENDLABELWORD這個緩沖區(qū)是一個先進先出的循環(huán)隊列,當首尾指針相等時,緩沖區(qū)為空。CPU要得到鍵盤輸入時,調(diào)用BIOS鍵盤例行程序,按其接收時的次序從緩沖區(qū)取出字符和掃描碼,回送CPU。2/6/20238河南師范大學計算機與信息技術學院9.1.2BIOS鍵盤中斷表9.4 BIOS鍵盤中斷(INT16H)單個字符輸入 AH=0例9.1讀取鍵盤狀態(tài)字節(jié)2/6/20239河南師范大學計算機與信息技術學院9.1.3DOS鍵盤功能調(diào)用表9.5 DOS鍵盤操作(INT21H)例9.2單個字符輸入 AH=1單個字符輸入AH=7 例9.3、例9.4清除鍵盤緩沖區(qū)輸入字符串例9.5檢驗鍵盤狀態(tài)例9.62/6/202310河南師范大學計算機與信息技術學院9.2顯示器I/O1字符屬性2BIOS顯示中斷3DOS顯示調(diào)用2/6/202311河南師范大學計算機與信息技術學院圖9.4顯示屏幕上的字符位置2/6/202312河南師范大學計算機與信息技術學院9.2.1字符屬性單色字符顯示彩色字符顯示顯示存儲器2/6/202313河南師范大學計算機與信息技術學院1.單色字符顯示對單色字符顯示,圖9.5字符的屬性定義了字符的顯示特性。屬性可以有不同的組合。屬性值可以任意組合。表9.6是一些單色顯示的屬性。屏幕上的字符可以按相同的屬性顯示,也可以按不同的屬性顯示,如果設置的屬性為00H,字符就顯示不出來。2/6/202314河南師范大學計算機與信息技術學院2.彩色字符顯示

在顯示彩色文本時,屬性字節(jié)能夠選擇前景(顯示的字符)和背景的顏色。每個字符可以選擇16種顏色中的一種,背景有8種顏色可以選擇。圖9.6是16色文本方式顯示的屬性字節(jié)。表9.7列出了16色字符方式顏色的組合。2/6/202315河南師范大學計算機與信息技術學院3.顯示存儲器

對于所有的顯示適配器,文本方式下顯示字符的原理都是一樣的,所不同的是各種適配器的視頻顯示存儲器(又稱顯存)的起始地址不同:DMA,顯存的起始地址為B000:0000;CGA/EGA/VGA,是B800:0000.每個字符的ASCII碼和屬性碼字節(jié)存放于連續(xù)的兩個字節(jié)中。圖9.7表明了顯示存儲單元與屏幕上字符的對應關系。2/6/202316河南師范大學計算機與信息技術學院顯示存儲單元與屏幕上字符的對應關系在25×80的文本顯示方式下,屏幕可有2000個字符位置,因每個字符需要用兩個字節(jié)來表示,所以顯存容量需要4KB。如果顯存有16KB,則可保存4屏幕的字符數(shù)據(jù),通常稱為4頁數(shù)據(jù)。CGA/EGA/VGA的80列顯示方式,0頁在顯存中的起始地址是B800:0000,1頁是B800:1000,2頁是B800:0000,3頁是B800:3000。屏幕上某一字符位置在顯存中的偏移地址可由下列公式算出:

Char_offset=Page_offset+((row×width)+column)×byte表示一個字符所用的字節(jié)數(shù),在字符顯示方式下,byte=2。相對于屏幕左上角位置(0,0)的行列坐標。2/6/202317河南師范大學計算機與信息技術學院9.2.2BIOS顯示中斷表9.8 類型10H的顯示操作例9.8控制光標 例9.9讀光標位置例9.10選擇顯示頁

字符顯示 例9.14、例9.15清屏和卷屏 例9.11、例9.12、例9.13彩色和字符串顯示 例9.16、例9.17、例9.182/6/202318河南師范大學計算機與信息技術學院9.2.3DOS顯示調(diào)用表9.10 INT21H顯示操作顯示字符串

使用賦值偽操作

顯示字符串的宏定義 例9.192/6/202319河南師范大學計算機與信息技術學院練習與作業(yè)P353-354習題上機練習: 9.2、9.82/6/202320河南師范大學計算機與信息技術學院表9.4BIOS鍵盤中斷(INT16H)2/6/202321河南師范大學計算機與信息技術學院

BIOS單個字符輸入舉例 MOV AH,0 INT 16H MOV BX,AX CALL BINIHEX ;二進制轉(zhuǎn)換成十六進制2/6/202322河南師范大學計算機與信息技術學院

例9.1;讀取鍵盤狀態(tài)字節(jié),并以十六進制打印出來 AGAIN: MOV AH,02H INT 16H MOV BX,AX CALL BINIHEX MOV DL,0DH MOV AH,02H INT 21H JMP AGAIN2/6/202323河南師范大學計算機與信息技術學院

圖9.2鍵盤狀態(tài)字節(jié)2/6/202324河南師范大學計算機與信息技術學院表9.5DOS鍵盤操作(INT21H)2/6/202325河南師范大學計算機與信息技術學院

例9.2DOS單個字符輸入AH=1;接收鍵盤輸入并對其進行測試 GET_KEY: MOV AH,1 INT 21H CMP AL,‘Y’ JE YES CMP AL,‘N’ JE NO JNE GET_KEY2/6/202326河南師范大學計算機與信息技術學院

例9.3DOS單個字符輸入AH=7;檢測鍵盤輸入的字符是否時回車鍵 WAIT_HERE: MOV AH,7 INT 21H CMP AL,0DH JNE WAIT_HERE2/6/202327河南師范大學計算機與信息技術學院

例9.4DOS單個字符輸入AH=7;檢測鍵盤輸入的功能鍵。 MOV AH,7 INT 21H CMP AL,0 JE GET_EC JMP ERRORGET_EC: MOV AH,7 INT 21H CMP AL,3BH ;F1? JE OPTION1 CMP AL,3CH ;F2? JE OPTION2 CMP AL,3DH ;F3? JE OPTION3 JMP ERROR2/6/202328河南師范大學計算機與信息技術學院

例9.5輸入字符串程序 .modelsmall .stack .datauser_sting db 50,0,50dup(?) .code .startup lea dx,user_string mov ah,0ah int 21h .exit 0 end2/6/202329河南師范大學計算機與信息技術學院

清除鍵盤緩沖區(qū)INT21H的功能0CH能清除鍵盤緩沖區(qū),然后執(zhí)行在AL中指定的功能。AL指定的功能可以是1,6,7,8或0AH。使用0CH功能可以使程序在輸入一個字符之前,將以前輸入的字符清除掉。使用0CH功能的好處是可以避免由于偶然超前鍵入的字符而出現(xiàn)的錯誤。例如: MOV AH,0CH MOV AL,08H INT 21H2/6/202330河南師范大學計算機與信息技術學院

例9.6檢驗鍵盤狀態(tài);該功能并不返回實際字符碼,僅提供一種是否按鍵的提示。;在未按鍵之前,程序總是不斷循環(huán)執(zhí)行,只要按下一個鍵,程序就退出循環(huán)并返回。 SOUNDER: … … MOV AH,0BH INT 21H INC AL JNZ SOUNDER RET2/6/202331河南師范大學計算機與信息技術學院

圖9.5單色顯示的屬性字節(jié)2/6/202332河南師范大學計算機與信息技術學院

表9.6單色顯示的屬性2/6/202333河南師范大學計算機與信息技術學院

圖9.616色方式下的屬性字節(jié)2/6/202334河南師范大學計算機與信息技術學院

表9.716種顏色的組合2/6/202335河南師范大學計算機與信息技術學院

圖9.7顯示存儲單元與顯示屏幕上字符的對應關系例9.72/6/202336河南師范大學計算機與信息技術學院

例9.7檢驗鍵盤狀態(tài);計算屏幕上某一字符位置所對應的顯存地址。Video_addr MACRO width,page_num ;入口參數(shù):DH=row,DL=column;出口參數(shù):DI=Char_offset

push ax mov al,width mul dh xor dh,dh add ax,dx shl ax,1 add ax,page_num*1000h mov di,ax pop ax endm2/6/202337河南師范大學計算機與信息技術學院

表9.8類型10H的顯示操作2/6/202338河南師范大學計算機與信息技術學院

表9.8類型10H的顯示操作2/6/202339河南師范大學計算機與信息技術學院

例9.8控制光標;置光標開始行為5,結(jié)束行為7,;并把它設置到第5行第6列。 MOV CH,5 ;置光標類型 MOV CL,7 MOV AH,1 INT 10H MOV DH,4 ;置關標位置 MOV DL,5 MOV BH,0 MOV AH,2 INT 10H2/6/202340河南師范大學計算機與信息技術學院

例9.9讀光標位置;讀0頁的當前光標位置 MOV AH,3 MOV BH,0 INT 10H2/6/202341河南師范大學計算機與信息技術學院

例9.10選擇顯示頁;INT10H的功能5可由程序確定顯存中的顯示區(qū)域。ROMBIOS將CGA的顯存分為4頁,每頁25×80個字符,或分為8頁,每頁25×40個字符。每一頁的起始地址在1KB的邊界。這四頁的起始地址分別為B800:0000,B800:1000,B800:2000,B800:3000。 MOV AL,vpage ;AL=頁號 MOV AH,5 INT 10H2/6/202342河南師范大學計算機與信息技術學院

例9.11-1;清除全屏幕的子程序clear_screen proc near push ax push bx push cx push dx;clearscreen mov ah,6 mov al,0 mov bh,7 mov ch,0 mov cl,0 mov dh,242/6/202343河南師范大學計算機與信息技術學院

例9.11-2 mov dl,79 int 10h;locatecursor mov dx,0 mov ah,2 int 10h;restoreregisters pop dx pop cx pop bx pop axclear_screen endp2/6/202344河南師范大學計算機與信息技術學院

例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 10H2/6/202345河南師范大學計算機與信息技術學院

例9.13-1;在屏幕中心的小窗口顯示字符。 .modelsmall .stack .dataEsc_key equ 1bhwin_ulc equ 30win_ulr equ 8win_lrc equ 50win_lrr equ 16win_width equ 20 .codeinclude cls.inc ;clearthescreen2/6/202346河南師范大學計算機與信息技術學院

例9.13-2 .startup call clear_screen locate: mov ah,2 mov dh,win_lrr mov dl,win_ulc mov bh,0 int 10h mov cx,win_width get_char: mov ah,1 int 21h cmp al,Esc_key jz exit loop get_char2/6/202347河南師范大學計算機與信息技術學院

例9.13-3;scrollup mov ah,6 mov al,1 mov ch,win_ulr mov cl,win_ulc mov dh,win_lrr mov dl,win_lrc mov bh,7 int 10h jmp locate .exit 0 end2/6/202348河南師范大學計算機與信息技術學院

例9.14字符顯示;置光標到0顯示頁的(20,25)位置,;并以正常屬性顯示一個星號‘*’。 MOV AH,2 MOV BH,0 MOV DH,20 MOV DL,25 INT 10H MOV AH,9 MOV AH,‘*’ MOV BH,0 MOV BL,7 MOV CX,1 INT 10H2/6/202349河南師范大學計算機與信息技術學院

例9.15;在0頁顯示頁的(11,0)位置讀取字符和屬性 MOV AH,2 MOV BH,0 MOV DH,11 MOV DL,0 INT 10H MOV AH,8 MOV BH,0 INT 10H2/6/202350河南師范大學計算機與信息技術學院

例9.16;彩色和字符串顯示BL中設置的為前景和背景的屬性值,屬性值的典型組合如表9.9。;在品紅背景下,顯示5個淺綠色閃爍的星號。 MOV AH,09 MOV AL,’*’ MOV BH,0 MOV BL,0DAH MOV CX,05 INT 10H2/6/202351河南師范大學計算機與信息技術學院

表9.9屬性字節(jié)的典型組合2/6/202352河南師范大學計算機與信息技術學院

例9.17;在屏幕上以紅底藍字顯示字符串:;“WORLDSCENERY”

STRING DB ‘WORLDSCENERY’ LEN_STR EQU $-STRING … MOV AL,3 MOV AH,0 INT 10H MOV BP,SEGSTRING MOV ES,BP MOV BP,OFFSETSTRING MOV CX,LEN_STR MOV DX,0 MOV BL,41H MOV AL,0 MOV AH,13H INT 10H2/6/202353河南師范大學計算機與信息技術學院

例9.18-1;在屏幕上以紅底藍字顯示“WORLD”,然后分別以紅底綠字和紅底藍字相間地顯示“SCENERY”。STRING1 DB ‘WORLD’STRING2 DB ‘$’,42H,‘C’,41H,‘E’,42H,‘N’,41H DB ‘E’,42H,‘R’,41H,‘Y’,42HLEN_STR2 EQU $-STRING2 … MOV AL,3 MOV AH,0 INT 10H MOV BP,SEGSTRING1 MOV ES,BP2/6/202354河

溫馨提示

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

評論

0/150

提交評論