第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頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第9章基本輸入輸出系統(tǒng)和操作系統(tǒng)中斷9.1鍵盤輸入/輸出9.2顯示器9.3打印機輸入/輸出,第9章基本輸入輸出系統(tǒng)和操作系統(tǒng)中斷。在存儲系統(tǒng)中,從地址000H開始的8K只讀存儲器(只讀存儲器)裝有基本輸入/輸出系統(tǒng)程序。位于只讀存儲器中的基本輸入輸出系統(tǒng)提供功能模塊,如系統(tǒng)上電自插、引導(dǎo)加載、主輸入輸出設(shè)備的處理程序和接口控制,以處理所有系統(tǒng)中斷?;据斎胼敵鱿到y(tǒng)功能調(diào)用:你可以直接使用指令參與政治,而不需要引入硬件輸入輸出接口特性,然后調(diào)整可讀性,便于移植。磁盤操作系統(tǒng),由軟盤或硬盤提供。兩個模塊:IBMBIO,COM IBMDOS,COM使基本輸入輸出系統(tǒng)更方便使用。DOS提供了更多的測試

2、。操作系統(tǒng)比基本輸入輸出系統(tǒng)更容易操作,具有相應(yīng)的功能,并且較少依賴硬件。它提供了一個從操作系統(tǒng)到只讀存儲器基本輸入輸出系統(tǒng)的低級接口,外設(shè)數(shù)據(jù)可以從內(nèi)存數(shù)據(jù)中讀寫。包括一個文件管理程序產(chǎn)品。一些在DOS下運行的程序可以調(diào)用這些處理程序。為了完成操作系統(tǒng)函數(shù)調(diào)用,IBM DOS組件將信息傳輸?shù)絀BM DOS組件,形成一個或多個基本輸入輸出系統(tǒng)調(diào)用。同樣的功能,你可以選擇操作系統(tǒng)和基本輸入輸出系統(tǒng),但基本輸入輸出系統(tǒng)更接近硬件。操作系統(tǒng)可以處理大多數(shù)輸入輸出用戶的高級和低級只讀存儲器,但基本輸入輸出系統(tǒng)更接近硬件。操作系統(tǒng)可以處理大多數(shù)輸入輸出表9.1基本輸入輸出系統(tǒng)中斷類型表9.2輸入輸出程序

3、請求。DOS IBMBIO。9.1鍵盤輸入/輸出鍵盤提供三種基本類型的鍵:字符鍵,如字母A-8,數(shù)字0-9,% $ #,等等。2擴展功能鍵,如Home、End、Return、Del、Ins、Pgup、Pgdn 3控制鍵與其他鍵結(jié)合使用,如Alt、Crtl、Shift字符鍵,向計算機發(fā)送ASLII??刂奇I可以改變字符代碼Ctrl-c 1、字符代碼和其他鍵生成的掃描代碼。當(dāng)按下“或”鍵釋放一個鍵時,將產(chǎn)生類型為“9”的鍵盤中斷處理程序。處理器在8255可編程位置從接口核心的輸入端口60H讀取一個字節(jié),該字節(jié)的低7位是密鑰的掃描碼。最高位是0或1,表示按鍵是“按下”還是“釋放”。最高位是0或1,表示

4、該鍵是“按下”還是“釋放”。傳遞代碼:下一次傳遞時獲得的字節(jié)。OH破壞代碼:釋放時獲得字節(jié)。81H的表9.3是鍵盤上每個鍵對應(yīng)的掃描碼?;据斎胼敵鱿到y(tǒng)鍵盤處理器將獲得的掃描碼轉(zhuǎn)換成相應(yīng)的字符碼。大多數(shù)按鍵的字符代碼是標(biāo)準(zhǔn)的ASCZZ代碼。無ASCZZ (F1-F10)鍵的字符代碼為0,轉(zhuǎn)換后的書寫代碼和掃描代碼存儲在只讀存儲器基本輸入輸出系統(tǒng)數(shù)據(jù)區(qū)的鍵盤緩沖區(qū)0040:001 BVFFHEADDW中。0040:001 BVFFTAILDW在緩沖區(qū)的開頭?緩沖區(qū)結(jié)束0040:001 kbbvfeerdw?16 DOP 0040:003 ekbboffendlabelword用16個輸入量填寫空

5、格。當(dāng)中央處理器想要獲得鍵盤輸入時,它調(diào)用基本輸入輸出系統(tǒng)鍵盤例程,從緩沖區(qū)中取出字符和掃描代碼,并按照接收它們的順序?qū)⑺鼈儼l(fā)送回中央處理器。1?;据斎胼敵鱿到y(tǒng)鍵盤中斷類型16(鍵盤)中斷提供三種鍵盤操作AH=0從鍵盤讀取一個字符AH,AL掃描碼字符石=1讀取鍵盤緩沖區(qū)中的字符=2取狀態(tài)字節(jié)(AL)無字節(jié),高4位數(shù)字,“鍵盤模式”(Ens,Capslock,Nomlock,roll),低4位數(shù)字表示Alt,Ctrl,是否按下Shift的例子:取鍵盤狀態(tài),使AH=02H, INT16H 2和DOS鍵盤功能被調(diào)用,如表9.5 (1)所示單字符輸入DOS 21H中斷功能1.7和8可以從鍵盤讀取一個

6、字符并將其發(fā)送到所有寄存器。AH=1:顯示字符,并檢查是否按下了Ctrl-Break。如果按下Ctrl-B,將自動調(diào)用中斷23H,程序AH=7將結(jié)束。您不能輸入返回字符或勾選Ctrl-B AH=OA將字符輸入緩沖區(qū)1?;貞?yīng)互動程序Getkey:mov AH Int 21h Cmp al中的提示次數(shù)。Y Je yes輸入為“y”,如果是,再次等待輸入2,或查看是否按下回車鍵,ASCZZ=odhwait: movah,7 Int 21h Cmp al,ODH Ine Wait差為“AH=7”,則按下的鍵不顯示,3。如果需要,它可以接收功能鍵或數(shù)字組合鍵。那么必須進行兩次拒絕服務(wù)呼叫。第一個echo

7、 00和第二個echo scan代碼示例:程序顯示一個菜單,要求用戶通過鍵入F1、F2或F3來選擇項目1、2和3,接收一個將導(dǎo)致錯誤。Mov ah,07h鍵盤接收不響應(yīng)int21h CMP al,o;這是功能鍵嗎?如果是,檢查掃描代碼;否則,會出現(xiàn)錯誤:JMP或getec: movah,07hint 21h cmpal,3bhje option 1;是的,在選項1下完成程序cmp al,3chF2?Je選項2 Cmp al,3DhF3?Je Option3 Jmp錯誤(1)被輸入字符串“21H”中斷的函數(shù)“AH=0AH”可以從鍵盤讀取一個字符串,并將其存儲在用戶定義的緩沖區(qū)中。緩沖區(qū)的第一個字

8、節(jié)存儲最大字符數(shù),用戶給出最大字符串,第二個字節(jié)是實際輸入字符的原因。-OAH 填充第三個字節(jié),開始存儲字符串。-緩沖區(qū)的最后一個字節(jié)是回車。ODH緩沖區(qū)的最大間隔為=最大字符數(shù)2(回車也是一個字符)。例如,數(shù)據(jù)區(qū)中定義的字符緩沖區(qū)如下:maxcendb32ae字符串DB 32dup(?)輸入字符串的指令如下:lea dx,maslen mov ah,OAH int 21h type By brooks Ceaping將實際字符數(shù)放入CX寄存器,并將指針dx: dx指向字符串的第一個字符。(2)清除字符鍵盤緩沖區(qū)。來自鍵盤的輸入字符實際上被放在一個16字節(jié)的鍵盤緩沖區(qū)中。函數(shù)1.7.8和OAH

9、實際上從鍵盤緩沖區(qū)獲取字符。當(dāng)(AH)=OCH,(AL)=1.6.7.8時,OAH清除鍵盤緩沖區(qū),然后執(zhí)行(AL)中指定的功能。使用OCH在輸入字符之間制作程序。俄克拉荷馬州MOV市清倉銀行;接收到的字符不回顯,但是應(yīng)該檢測到ctrl-break int 21h。(1)檢查鍵盤狀態(tài):AH=0BH,INT21H AH=0BH;它可以檢查一個鍵是否被按下。如果按下下一個鍵,OFFH存儲在人工智能中。如果沒有按下鍵,(AL)=00。在任何情況下,程序的下一條指令都將繼續(xù)執(zhí)行。示例:當(dāng)程序運行時,檢查鍵盤,看用戶是否按任意鍵來終止程序或退出循環(huán)。發(fā)聲器: MOVAT,OBT Int 21H公司Aljn

10、e SD不是0,然后按下它沒有鍵,然后按下它當(dāng)al=oFFH沒有鍵,然后OfH 100,9.2顯示I/0顯示可以通過兩種適配器權(quán)利連接到電腦單元顯示和并行打印機。彩色/圖形監(jiān)視器適配器連接到監(jiān)視器或目標(biāo)電視機。單行適配器只能顯示字符,只能用于黑白顯示。字符由標(biāo)準(zhǔn)的字線、數(shù)字和符號組成,加上像鉆石、矩形和笑臉這樣的簡單圖形。顯示屏分為80列*25行。適配器在這2000個網(wǎng)格位置顯示字符,屏幕上的每個網(wǎng)格位置也稱為“像素”。對于屏幕上的每個像素,內(nèi)存中都有一個對應(yīng)的單元,所以我們說屏幕是內(nèi)存映射的。該存儲器映射使得顯示電路容易知道哪個單元內(nèi)容對應(yīng)于屏幕上的哪個屏幕:0-24列:0-79 1。屬性:

11、單色顯示屏上的每個字符由內(nèi)存中的兩個字節(jié)表示,一個字節(jié)保存字符的ASCZZ代碼,另一個字節(jié)保存字符的屬性。屬性:確定要顯示的每個字符的特征:0正常顯示,0正常亮度,1閃爍顯示,1增強亮度,屬性可以有不同的組合。正常顯示是黑色背景上的白色=07=000011反向顯示,即白色背景上的黑色。當(dāng)屬性相同時,可能不會顯示(00H)。單色屏幕有2000個字符=25*80個位置。每個字符需要兩個字節(jié)來表示單色顯示存儲容量=4K字節(jié)。單色顯示存儲器布置在段地址=B000H的區(qū)域中。偏移地址從0到0F9FH=(3999)。圖9.8屏幕上記憶的對應(yīng)關(guān)系對應(yīng)于屏幕上的每個字符位置。主存儲空間有相應(yīng)的存儲單元,稱為顯

12、示存儲區(qū)。每個字符由兩個連續(xù)的字節(jié)表示:字符的ASCII字符屬性,屏幕上可以有2000個字符=25*80列(文本模式)=4KB的顯示內(nèi)存。如果有16KB的顯示內(nèi)存,可以保存4個屏幕字符,稱為4頁。屏幕上的某個字符的中斷類型為10小時,在基本輸入輸出系統(tǒng)顯示中斷表9.6中列出。(1)控制光標(biāo):下劃線/方形字符AH=01。光標(biāo)不是ASCI字符表中的字符,INT10H的函數(shù)“AH=0IH”由硬件使用。使光標(biāo)出現(xiàn)或關(guān)閉,并控制光標(biāo)的大小。光標(biāo)大?。河糜诳刂乒鈽?biāo)行開始和結(jié)束的數(shù)據(jù),位于通道和通道的低4位(0-3)。當(dāng)通道的符號4位=1標(biāo)記沒有出現(xiàn)時,光標(biāo)只能出現(xiàn)。光標(biāo)大小范圍從0到13。(2)當(dāng)AH=2

13、時,設(shè)置光標(biāo)位置DH=行號,DL=列號,BH=頁碼,頁碼BH=0第5行(0,1,2,3,4),第5行(5)。第6欄,(0,1,2,3,4,5) mov BH,o;頁碼BH是0 mov AH,2;將光標(biāo)位置設(shè)置為int ioh movch,開始行movcl為5,結(jié)束行movah為7,讀取標(biāo)簽行INT 10H(1)1卷處的光標(biāo)位置(AH=3H,ZHT10H) AH=3,函數(shù)3為讀取光標(biāo)位置,頁碼必須在BH中指定。該函數(shù)給出光標(biāo)位置的行號,列號=DL。CH和CL的示例用光標(biāo)大小參數(shù)填充:讀取當(dāng)前光標(biāo)位置第0頁的MOV AH,讀取光標(biāo)位置第3頁的MOV BH,第0頁的INT 10H,行號=DH列號=D

14、L (1)清除屏幕和鄭屏幕(AH=06H,INT10H)。功能6使屏幕內(nèi)容能夠向上滾動指定的行。這個函數(shù)需要7個參數(shù)。如果屏幕的開始行不是(0,0)如果結(jié)束行不是(24,79),則只有屏幕的指定部分具有滾動功能。這個屏幕上的一些區(qū)域叫做窗口。我們可以在屏幕上設(shè)置多個這樣的窗口,可以獨立使用。如果滾動超過指定窗口的頂部,這些行的內(nèi)容將會丟失,出現(xiàn)在窗口底部的新行將被空格填充,它們的屬性將由BH寄存器IP決定。例如,AL=0將根據(jù)AL中的空白字符10使指定的窗口占優(yōu)勢,AH=7類似于6,以便初始化屏幕(或窗口)或向下滾動指定的行。示例3:將右上角清除為(0,0),將右下角清除為窗口,并將其初始化為

15、反相顯示,這相當(dāng)于窗口的左半部分。Mov AH,7卷Mov AL,o填充空白Mov BH,70h反向movch在白色背景上為黑色,0 movcl在左上角,0 movdh在左上角,24 movdl在右下角,Int 10H在右下角。輸入的字符將顯示在窗口底部。每次輸入20個字符,該行將向上滾動9行。輸入字符后,將顯示頂行的內(nèi)容。prognam段假設(shè)cs: prognam push ds subax,axpush ax1,字符顯示AH=9,OAH,INT10H,AH=09/0A,所有這些都可以將一個字符傳輸?shù)斤@示屏,然后將光標(biāo)返回到其初始位置,因此在當(dāng)前光標(biāo)位置寫入一個字符后,必須使用INT10H的

16、OZ函數(shù)將光標(biāo)移動到下一個字符位置。區(qū)號:AH=09H,=0AH。將字符及其屬性輸出到當(dāng)前光標(biāo)位置。僅輸出字符,并且它們的屬性是該位置的先前屬性。示例5將光標(biāo)設(shè)置到0顯示頁面的(20,25)位置,并顯示一個星號movat,距離正常屬性2;設(shè)置光標(biāo)位置,movbt,2;第0頁,第20頁;0行,25列movdt,25 int10t movat,09;在光標(biāo)位置顯示字符和屬性移動。顯示字符movbt,0;頁面=0 mov bl,7;屬性movcx,黑色背景上有白色字符,1;字符重復(fù)次數(shù)int 10h mov ah,6個繞組功能編號6 mov al,0填充空白movach,0左上行0.0 mov cl

17、,0 mov dh,24右下行24.79 movdl,79 movbh,7,int 10 h pos-curl: movah,2;設(shè)置光標(biāo)位置movh,16行mov dl,30列mov bh,0頁碼int 10h mov cx,20接收字符數(shù)getchar:movh ah,1 int 21h cmp al,3,3為CTRC退出jz退出循環(huán)獲取char mov ah,6;向上移動,1向上移動行,8左上角行,列8.30移動行,30移動行,50移動行,黑色背景上的7個白色字符示例6:讀取0顯示頁面(11,0)位置的字符和屬性。Movh,2設(shè)置光標(biāo),0頁面movh,0頁面0 Mov dh,11行1 Mov dl,0列1int10h movh,8讀取光標(biāo)位置的movh,0屬性AH Int 10h和字符AL DOS顯示函數(shù)調(diào)用(INT21H,AH=2,6,9),兩個顯示單個字符,另一個顯示字符串,你可以自動移動光標(biāo)AH=9,DS: DX=字符串地址向前,字符串必須參與結(jié)果,光標(biāo)顯示字符串與字符串。它要求顯示的字符必須以字符(24大)作為分隔符。此函數(shù)用作

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論