第9章_ BIOS與DOS中斷(書).ppt_第1頁(yè)
第9章_ BIOS與DOS中斷(書).ppt_第2頁(yè)
第9章_ BIOS與DOS中斷(書).ppt_第3頁(yè)
第9章_ BIOS與DOS中斷(書).ppt_第4頁(yè)
第9章_ BIOS與DOS中斷(書).ppt_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

5、格。當(dāng)中央處理器想要獲得鍵盤輸入時(shí),它調(diào)用基本輸入輸出系統(tǒng)鍵盤例程,從緩沖區(qū)中取出字符和掃描代碼,并按照接收它們的順序?qū)⑺鼈儼l(fā)送回中央處理器。1?;据斎胼敵鱿到y(tǒng)鍵盤中斷類型16(鍵盤)中斷提供三種鍵盤操作AH=0從鍵盤讀取一個(gè)字符AH,AL掃描碼字符石=1讀取鍵盤緩沖區(qū)中的字符=2取狀態(tài)字節(jié)(AL)無(wú)字節(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可以從鍵盤讀取一個(gè)

6、字符并將其發(fā)送到所有寄存器。AH=1:顯示字符,并檢查是否按下了Ctrl-Break。如果按下Ctrl-B,將自動(dòng)調(diào)用中斷23H,程序AH=7將結(jié)束。您不能輸入返回字符或勾選Ctrl-B AH=OA將字符輸入緩沖區(qū)1。回應(yīng)互動(dò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ù)字組合鍵。那么必須進(jìn)行兩次拒絕服務(wù)呼叫。第一個(gè)echo

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

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

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

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

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

12、示存儲(chǔ)區(qū)。每個(gè)字符由兩個(gè)連續(xù)的字節(jié)表示:字符的ASCII字符屬性,屏幕上可以有2000個(gè)字符=25*80列(文本模式)=4KB的顯示內(nèi)存。如果有16KB的顯示內(nèi)存,可以保存4個(gè)屏幕字符,稱為4頁(yè)。屏幕上的某個(gè)字符的中斷類型為10小時(shí),在基本輸入輸出系統(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)通道的符號(hào)4位=1標(biāo)記沒有出現(xiàn)時(shí),光標(biāo)只能出現(xiàn)。光標(biāo)大小范圍從0到13。(2)當(dāng)AH=2

13、時(shí),設(shè)置光標(biāo)位置DH=行號(hào),DL=列號(hào),BH=頁(yè)碼,頁(yè)碼BH=0第5行(0,1,2,3,4),第5行(5)。第6欄,(0,1,2,3,4,5) mov BH,o;頁(yè)碼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)位置,頁(yè)碼必須在BH中指定。該函數(shù)給出光標(biāo)位置的行號(hào),列號(hào)=DL。CH和CL的示例用光標(biāo)大小參數(shù)填充:讀取當(dāng)前光標(biāo)位置第0頁(yè)的MOV AH,讀取光標(biāo)位置第3頁(yè)的MOV BH,第0頁(yè)的INT 10H,行號(hào)=DH列號(hào)=D

14、L (1)清除屏幕和鄭屏幕(AH=06H,INT10H)。功能6使屏幕內(nèi)容能夠向上滾動(dòng)指定的行。這個(gè)函數(shù)需要7個(gè)參數(shù)。如果屏幕的開始行不是(0,0)如果結(jié)束行不是(24,79),則只有屏幕的指定部分具有滾動(dòng)功能。這個(gè)屏幕上的一些區(qū)域叫做窗口。我們可以在屏幕上設(shè)置多個(gè)這樣的窗口,可以獨(dú)立使用。如果滾動(dòng)超過(guò)指定窗口的頂部,這些行的內(nèi)容將會(huì)丟失,出現(xiàn)在窗口底部的新行將被空格填充,它們的屬性將由BH寄存器IP決定。例如,AL=0將根據(jù)AL中的空白字符10使指定的窗口占優(yōu)勢(shì),AH=7類似于6,以便初始化屏幕(或窗口)或向下滾動(dòng)指定的行。示例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個(gè)字符,該行將向上滾動(dòng)9行。輸入字符后,將顯示頂行的內(nèi)容。prognam段假設(shè)cs: prognam push ds subax,axpush ax1,字符顯示AH=9,OAH,INT10H,AH=09/0A,所有這些都可以將一個(gè)字符傳輸?shù)斤@示屏,然后將光標(biāo)返回到其初始位置,因此在當(dāng)前光標(biāo)位置寫入一個(gè)字符后,必須使用INT10H的

16、OZ函數(shù)將光標(biāo)移動(dòng)到下一個(gè)字符位置。區(qū)號(hào):AH=09H,=0AH。將字符及其屬性輸出到當(dāng)前光標(biāo)位置。僅輸出字符,并且它們的屬性是該位置的先前屬性。示例5將光標(biāo)設(shè)置到0顯示頁(yè)面的(20,25)位置,并顯示一個(gè)星號(hào)movat,距離正常屬性2;設(shè)置光標(biāo)位置,movbt,2;第0頁(yè),第20頁(yè);0行,25列movdt,25 int10t movat,09;在光標(biāo)位置顯示字符和屬性移動(dòng)。顯示字符movbt,0;頁(yè)面=0 mov bl,7;屬性movcx,黑色背景上有白色字符,1;字符重復(fù)次數(shù)int 10h mov ah,6個(gè)繞組功能編號(hào)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頁(yè)碼int 10h mov cx,20接收字符數(shù)getchar:movh ah,1 int 21h cmp al,3,3為CTRC退出jz退出循環(huán)獲取char mov ah,6;向上移動(dòng),1向上移動(dòng)行,8左上角行,列8.30移動(dòng)行,30移動(dòng)行,50移動(dòng)行,黑色背景上的7個(gè)白色字符示例6:讀取0顯示頁(yè)面(11,0)位置的字符和屬性。Movh,2設(shè)置光標(biāo),0頁(yè)面movh,0頁(yè)面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),兩個(gè)顯示單個(gè)字符,另一個(gè)顯示字符串,你可以自動(dòng)移動(dòng)光標(biāo)AH=9,DS: DX=字符串地址向前,字符串必須參與結(jié)果,光標(biāo)顯示字符串與字符串。它要求顯示的字符必須以字符(24大)作為分隔符。此函數(shù)用作

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論