




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、4.2 DOS系統(tǒng)功能調(diào)用和BIOS中斷調(diào)用4.2.1 概述4.2.2 DOS系統(tǒng)功能調(diào)用4.2.3 BIOS中斷調(diào)用4.2.1 概述磁盤操作系統(tǒng)DOS采用模塊化、層次化結(jié)構(gòu),其層次結(jié)構(gòu)如圖4.4所示。4.2.1 概述組成DOS的各主要模塊的功能:系統(tǒng)硬件 主要指I/O設(shè)備,如CRT顯示器、打印機(jī)、鍵盤、硬盤和鼠標(biāo)等。基本輸入輸出系統(tǒng) BIOS(Basic Input Output System) 包含能直接與底層硬件打交道的設(shè)備驅(qū)動(dòng)程序。此外還包含系統(tǒng)設(shè)置信息、開機(jī)后自檢程序和系統(tǒng)自啟動(dòng)程序。利用中斷調(diào)用指令I(lǐng)NT n,可以直接調(diào)用BIOS中的外設(shè)驅(qū)動(dòng)程序,實(shí)現(xiàn)對(duì)主要I/O設(shè)備的控制管理。D
2、OS核心 MSDOS.SYS 該模塊以BIOS為基礎(chǔ),為用戶提供一大批可以直接使用的服務(wù)程序,這組服務(wù)程序稱為DOS系統(tǒng)功能調(diào)用??捎肐NT 21H指令來(lái)調(diào)用,并以功能號(hào)來(lái)區(qū)分不同的服務(wù)程序。它們主要用來(lái)實(shí)現(xiàn)文件管理、存儲(chǔ)器管理及設(shè)備管理等,功能比BIOS更齊全、更完整。命令處理程序 COMMAND.COM 該模塊以可執(zhí)行命令文件的形式存放在系統(tǒng)盤上,它執(zhí)行后便給出DOS命令提示符“”,由它接收用戶在此提示符下鍵入的命令,進(jìn)行分析處理后,讓機(jī)器執(zhí)行各種應(yīng)用程序,在CRT上顯示執(zhí)行結(jié)果。4.2.1 概述4.2.2 DOS系統(tǒng)功能調(diào)用4.2.3 BIOS中斷調(diào)用4.2.2 DOS系統(tǒng)功能調(diào)用1.中
3、斷處理程序分類8086 CPU可處理256類中斷,利用INT n 指令,可直接調(diào)用256個(gè)系統(tǒng)已編寫好的中斷處理程序。INT n指令中的類型號(hào)n=00FFH;n=0004H為專用中斷,處理除法錯(cuò)、單步、不可屏蔽中斷NMI、斷點(diǎn)、溢出中斷;n=10H1AH、2FH、31H、33H為BIOS中斷,即保存在系統(tǒng)ROM BIOS中的BIOS功能調(diào)用。1.中斷處理程序分類n=20H2EH為DOS中斷,應(yīng)用DOS提供的功能程序來(lái)控制硬件,可對(duì)顯示器、鍵盤、打印機(jī)、串行通信等字符設(shè)備提供輸入輸出服務(wù)。 例如: n=20H為程序結(jié)束中斷,利用INT 20H中斷可返回DOS操作系統(tǒng)。n=21H則為功能最強(qiáng)大的D
4、OS中斷,它包含了很多子功能,給每個(gè)子功能程序賦一個(gè)編號(hào),稱為功能號(hào),調(diào)用前要送到AH寄存器中。2. DOS系統(tǒng)功能調(diào)用方法DOS系統(tǒng)功能調(diào)用的步驟:1)功能調(diào)用號(hào)送到AH寄存器中,AH=006CH。2)入口參數(shù)送到指定的寄存器中,一種功能調(diào)用又包含多個(gè)子功能,有些調(diào)用不帶參數(shù)。3)執(zhí)行INT 21H指令。4)得到出口參數(shù),或?qū)⒔Y(jié)果顯示在CRT上。部分DOS功能調(diào)用見(jiàn)表4.4 (看書)。3. DOS系統(tǒng)功能調(diào)用舉例1)DOS鍵盤功能調(diào)用利用DOS功能調(diào)用,可將讀入的鍵值送進(jìn)AL,并顯示在CRT上,或檢查是否有鍵壓下等,還可將從鍵盤輸入的一串字符輸入到內(nèi)存緩沖區(qū)中。例4.18 DOS功能調(diào)用1,
5、等待從鍵盤輸入一個(gè)字符。MOVAH,01 H;AH 功能調(diào)用號(hào)01HINT21H;AL 讀入鍵值,并顯示該字符若有鍵壓下, 讀入鍵值, 并檢查是否為Ctrl-Break鍵?若是, 自動(dòng)調(diào)用INT 23H中斷, 執(zhí)行退出命令;否則將鍵值送入AL, 并顯示該字符。3. DOS系統(tǒng)功能調(diào)用舉例例4.19 交互式程序中,用戶鍵入字母鍵Y或N,分別轉(zhuǎn)入不同的程序去處理,并在CRT上顯示鍵入字符; 若按了Ctrl-Break,則結(jié)束程序,否則繼續(xù)等待。GET_KEY:MOVAH,01H;AH 功能調(diào)用號(hào)01HINT21H;AL 讀入鍵值CMPAL,Y;鍵值是Y嗎?JEYES;是,轉(zhuǎn)YESCMP AL,N;
6、不是Y,是N嗎?JE NO;是,轉(zhuǎn)NOJNE GET_KEY;不是N,返回繼續(xù)等待YES:;按Y鍵的處理程序NO:;按N鍵的處理程序3. DOS系統(tǒng)功能調(diào)用舉例例4.20 DOS功能調(diào)用6,控制臺(tái)I/O(控制臺(tái)指鍵盤和CRT),不檢查是否按了Ctrl-Break鍵。 MOV AH,6;6號(hào)功能調(diào)用 MOV DL,0 FFH;DL=FFH,鍵盤輸入 INT 21H當(dāng)調(diào)用時(shí)DL=FFH,表示從鍵盤輸入字符。執(zhí)行后,若ZF=0,則AL中為輸入字符的鍵值;若ZF=1,表示無(wú)鍵壓下,AL中不是鍵值。如果調(diào)用時(shí)DLFFH,表示從屏幕輸出字符。3. DOS系統(tǒng)功能調(diào)用舉例例4.21 利用0AH號(hào)DOS功能調(diào)
7、用,將鍵入字符送輸入緩沖區(qū)。調(diào)用前預(yù)先定義一個(gè)緩沖區(qū),首地址為DS:DX。緩沖區(qū)的第一個(gè)字節(jié)由用戶指定,存放緩沖區(qū)最大容量(字節(jié)數(shù));第二個(gè)字節(jié)保留,功能調(diào)用后存放實(shí)際鍵入的字符個(gè)數(shù);從第三個(gè)字節(jié)開始存入鍵盤輸入的實(shí)際字符的ASCII碼,直到擊了ENTER鍵為止。若鍵入的字符數(shù)小于最大字節(jié)數(shù),緩沖區(qū)其余部分都填0;若大于最大字節(jié)數(shù),則后鍵入的字符丟失,并發(fā)出嘟嘟聲。程序如下:DATA SEGMENTBUFF DB50;定義緩沖區(qū)最大50(32H)字節(jié) DB?;存實(shí)際鍵入字節(jié)數(shù) DB50 DUP(?);定義50個(gè)字節(jié)空間;存放鍵入字符的ASCII碼DATA ENDSCODE SEGMENT MO
8、V AX,DATA ;定義DS:DX MOV DS,AX ;DS=緩沖區(qū)首址基地址 MOV DX,OFFSET BUFF ;DX=緩沖區(qū)首址偏址 MOV AH,0AH ;AH=功能號(hào)10 INT 21H CODE ENDS3. DOS系統(tǒng)功能調(diào)用舉例若鍵入的字符串為“good morning.”,包括空格共13(0DH)個(gè)字符,則緩沖區(qū)各單元存儲(chǔ)的信息如圖4.5所示。要檢查是否已在緩沖器中存入字符串,可用顯示字符的功能調(diào)用,將字符串顯示在屏幕上。3. DOS系統(tǒng)功能調(diào)用舉例2)顯示功能調(diào)用2號(hào)功能調(diào)用用來(lái)顯示單個(gè)字符,9號(hào)功能調(diào)用則顯示以$結(jié)尾的字符串。例4.22 編寫顯示星號(hào)“*”的程序。M
9、OVDL,*;DL 要顯示字符的ASCII碼MOVAH,02H;AH 功能號(hào)02HINT21H;顯示星號(hào)“*”9號(hào)功能調(diào)用前, 要將字符串的首地址送到DS:DX中,調(diào)用后顯示以DS:DX為首地址的字符串,直到遇到$符為止,$符不顯示出來(lái)。例4.23 顯示信息“Try again.”, 并回車、換行。DATA SEGMENTMESS DB Try again.,0DH,0AH,$;待顯示字符串DATA ENDS MOV AX,SEG MESSMOV DS,AX ;DS 字符串起始段地址MOV DX,OFFSET MESS ;DX 偏移地址MOV AH,9;AH 功能號(hào)9INT 21H;顯示該字符
10、串程序中,0DH、0AH是回車、換行鍵的ASCII碼。3. DOS系統(tǒng)功能調(diào)用舉例3)打印功能調(diào)用將要在打印機(jī)上打印的字符的ASCII碼送到DL中,作為入口參數(shù),然后執(zhí)行5號(hào)功能調(diào)用,DL中的字符便會(huì)送到打印機(jī)去打印。例4.24 在打印機(jī)上打印一串字符“Right.”,打印前換頁(yè),打印完后回車、換行。程序如下:CHAR DB0CH, Right., 0DH, 0AH, $;待打印字符串,0CH為換行碼MOVBX,0 ;BX指向字符串開頭MOVAH,5;AH=功能號(hào)5NEXT:MOV DL,CHAR BX;取一個(gè)字符CMP DL,$;是$符嗎JE TO_STOP;是,轉(zhuǎn)停止打印INT 21H;否
11、,打印該字符INC BX;指向下一個(gè)字符JMP NEXT;繼續(xù)打印下一個(gè)字符TO_STOP: ;停止打印處理4.2.1 概述4.2.2 DOS系統(tǒng)功能調(diào)用4.2.3 BIOS中斷調(diào)用4.2.3 BIOS中斷調(diào)用在80X86微型計(jì)算機(jī)中,從內(nèi)存地址0FE000H 開始的8KB存儲(chǔ)空間中,用EPROM固化了ROM BIOS程序。(現(xiàn)代的PC機(jī)用的是EEPROM)ROM BIOS模塊包含了系統(tǒng)加電自檢程序、引導(dǎo)裝入程序、基本I/O設(shè)備驅(qū)動(dòng)程序以及接口控制等功能模塊,它們以中斷服務(wù)程序的形式向程序員開放。有些DOS系統(tǒng)功能調(diào)用和BIOS中斷調(diào)用能完成同樣的功能。例如,要打印一個(gè)字符,可以用INT 21
12、H的5號(hào)DOS功能調(diào)用,也可用BIOS的INT 17H的0號(hào)中斷調(diào)用。由于BIOS更接近硬件,使用起來(lái)要復(fù)雜一些,盡量使用DOS系統(tǒng)功能調(diào)用。有些情況下,必須使用BIOS中斷調(diào)用。例如,INT 17中斷的2號(hào)調(diào)用為讀打印機(jī)狀態(tài),DOS功能調(diào)用無(wú)這種功能,只能使用BIOS中斷調(diào)用。ROM BIOS中斷調(diào)用的方法與DOS系統(tǒng)功能調(diào)用法類似,不過(guò)每個(gè)中斷調(diào)用可能會(huì)包含多個(gè)子功能,用功能號(hào)來(lái)區(qū)分它們。BIOS中斷調(diào)用的基本步驟為:1)功能號(hào)送AH2)設(shè)置入口參數(shù)3)執(zhí)行INT n指令4)分析出口參數(shù)及狀態(tài)下面介紹幾種BIOS中斷調(diào)用。1.鍵盤中斷調(diào)用INT 16H這種類型的中斷調(diào)用有3種功能,功能號(hào)為
13、0,1,2,調(diào)用前,需將功能號(hào)送到AH中。1)0號(hào)功能調(diào)用 功能:從鍵盤讀入一個(gè)字符。例4.27 編寫從鍵盤讀入一個(gè)字符的程序段。 MOV AH,0 ;功能號(hào)0INT 16H ;等待鍵盤輸入1.鍵盤中斷調(diào)用INT 16H鍵盤上的鍵用2個(gè)8位數(shù)值進(jìn)行標(biāo)記:最高位b7決定該鍵是壓下還是松開,b7=0,表示該鍵壓下,b7=1,表示鍵已松開。后7位是這樣定義的:對(duì)于有ASCII碼的鍵來(lái)說(shuō),第一字節(jié)為ASCII碼,第二字節(jié)為鍵盤掃描碼,后者由系統(tǒng)根據(jù)鍵的位置確定;對(duì)于無(wú)ASCII碼的鍵來(lái)說(shuō),第一字節(jié)為0,第二字節(jié)為擴(kuò)展碼。這樣,利用INT 16H的0號(hào)功能調(diào)用,就可知道是哪個(gè)鍵壓下了或松開了。1.鍵盤中
14、斷調(diào)用INT 16H2)1號(hào)功能調(diào)用 查詢鍵盤緩沖區(qū),對(duì)鍵盤掃描,但不等待。例4.28 編程查看鍵盤緩沖區(qū)。 MOV AH,1 ;功能號(hào)1INT 16H 調(diào)用結(jié)果:ZF=0,鍵盤緩沖區(qū)不空,有鍵按了,AL=鍵入字符ASCII碼,AH=掃描碼;ZF=1,緩沖區(qū)空。1.鍵盤中斷調(diào)用INT 16H3)2號(hào)功能調(diào)用 檢查鍵盤上各特殊功能鍵的狀態(tài)。例4.29 檢查特殊功能鍵的狀態(tài)。 MOV AH,2 ;功能號(hào)2INT 16H 調(diào)用結(jié)果:AL=鍵盤狀態(tài)字節(jié)KB_Flag,每1位對(duì)應(yīng)一個(gè)特殊功能鍵,如圖:2.打印機(jī)中斷調(diào)用INT 17H這類中斷調(diào)用也有0、1、2等3種。調(diào)用前,AH功能號(hào),DX打印機(jī)號(hào)(02
15、)。1)0號(hào)功能 在打印機(jī)上打印1個(gè)字符,AH打印機(jī)狀態(tài)。調(diào)用前AL=待打印字符的ASCII碼。例4.30 在打印機(jī)上打印一個(gè)字符“$”。 MOVAL,$;AL 待打印字符$的ASCII碼 MOVDX,02H;打印機(jī)號(hào) MOVAH,0;功能號(hào) INT17H;打印$符,AH 打印機(jī)狀態(tài)2.打印機(jī)中斷調(diào)用INT 17H2)1號(hào)功能 初始化打印機(jī),AH中返回打印機(jī)狀態(tài)。例4.31 初始化指定的打印機(jī)。 MOVDX,00H; 打印機(jī)號(hào) MOVAH,01H; 功能號(hào) INT17H; 結(jié)果:初始化打印機(jī); AH 打印機(jī)狀態(tài)2.打印機(jī)中斷調(diào)用INT 17H3)2號(hào)功能 返回打印機(jī)狀態(tài)到AH中。例4.32 返回指定打印機(jī)的狀態(tài)字。 MOVDX,01H;打印機(jī)號(hào) MOVAH,02H;功能號(hào) INT17H;結(jié)果: AH 打印機(jī)狀態(tài)02號(hào)調(diào)用返回的打印機(jī)狀態(tài)字見(jiàn)下頁(yè)。2.打印機(jī)中斷調(diào)用INT 17H圖4.7 打印機(jī)狀態(tài)字各位意義3.顯示中斷調(diào)用INT 10H控制系統(tǒng)中的視頻顯示,也稱視頻服務(wù)中斷。視頻ROM BIOS位于顯卡上,不同顯卡能提供的視頻服務(wù)功能也不一樣,INT 10H能支持多種服務(wù)功能,由A
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大學(xué)課題申報(bào)書 網(wǎng)盤
- 社科基金課題申報(bào)書模板
- 計(jì)算機(jī)科普課題申報(bào)書
- 氫能產(chǎn)業(yè)發(fā)展課題申報(bào)書
- 歷史課題申報(bào)書怎么寫好
- 學(xué)困生課題申報(bào)書范例
- 申報(bào)書課題導(dǎo)師意見(jiàn)
- 幼兒園野趣課題申報(bào)書
- 南京科研課題申報(bào)書
- 代銷代賣合同范本
- 市政工程施工安全檢查標(biāo)準(zhǔn)
- 銀行整村授信工作經(jīng)驗(yàn)材料工作總結(jié)匯報(bào)報(bào)告2篇
- 2023年全國(guó)各省高考詩(shī)歌鑒賞真題匯總及解析
- 陜西省2023第二屆長(zhǎng)安杯大中小學(xué)國(guó)家安全知識(shí)競(jìng)賽題庫(kù)及答案
- 全國(guó)2017年4月自考00043經(jīng)濟(jì)法概論(財(cái)經(jīng)類)試題及答案
- 東鄉(xiāng)族學(xué)習(xí)課件
- 基建礦井應(yīng)急救援預(yù)案之綜合應(yīng)急預(yù)案匯編(完整版)資料
- GA/T 830-2021尸體解剖檢驗(yàn)室建設(shè)規(guī)范
- 《PEP英語(yǔ)六年級(jí)下冊(cè)Unit3Readandwrite》東城虎英小學(xué)王曉惠
- GB/T 9846-2015普通膠合板
- GB/T 3778-2021橡膠用炭黑
評(píng)論
0/150
提交評(píng)論