版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
3.9DOS系統(tǒng)功能調(diào)用DOS微型計算機磁盤操作系統(tǒng)。系統(tǒng)功能調(diào)用是DOS為用戶提供的一組常用子程序,它們的主要功能是驅(qū)動外部設(shè)備、進行I/O設(shè)備管理、文件管理及目錄管理。3.9.1DOS系統(tǒng)功能調(diào)用方法
1、設(shè)置入口參數(shù)
2、將子程序編號送AH寄存器—MOVAH,子程序編號3、執(zhí)行中斷指令I(lǐng)NT21H 調(diào)用后有出口參數(shù)時,一般在規(guī)定的寄存器中。有些調(diào)用結(jié)束后會在屏幕上看到結(jié)果。3.9.2常用DOS系統(tǒng)功能調(diào)用舉例1、從鍵盤輸入單個字符(1號調(diào)用)
調(diào)用格式:MOVAH,1INT21H
功能:等待從鍵盤輸入一個字符,將其ASCII碼送AL寄存器并送顯示器顯示。2、顯示輸出單個字符(2號調(diào)用)
調(diào)用格式:MOVDL,輸出字符ASCII碼MOVAH,2INT21H
功能:將DL中的字符送顯示器顯示。3、顯示輸出字符串(9號調(diào)用)
調(diào)用格式:LEADX,字符串首地址MOVAH,9INT21H
功能:將緩沖區(qū)中一組以‘$’結(jié)尾的字符串送顯示器顯示。例3.30DATASEGMENT
BUFDB‘IWISHYOUSUCCESS!$’DATAENDSCODESEGMENT....LEADX,BUFMOVAH,9INT21H….CODEENDS執(zhí)行上述程序段后,屏幕顯示:
IWISHYOUSUCCESS!4、鍵盤輸入字符串(10號調(diào)用)
調(diào)用格式:LEADX,輸入緩沖區(qū)首地址MOVAH,10INT21H
功能:從鍵盤輸入一串字符,存入指定的內(nèi)存緩沖區(qū)。說明:①事先要定義內(nèi)存緩沖區(qū),并注意:
第1字節(jié)定義最多輸入的字符個數(shù);
第2字節(jié)保留,調(diào)用結(jié)束時由系統(tǒng)寫入實際輸入字符的個數(shù);
從第3字節(jié)開始預(yù)留內(nèi)存空間,存放鍵入字符的ASCII碼。②輸入字符串以回車鍵表示結(jié)束。例3.31從鍵盤輸入最多達50個字符的字符串,存入BUF 開始的輸入緩沖區(qū)。DATASEGMENT
BUFDB50DB?DB50DUP(?)DATAENDSCODESEGMENT…LEADX,BUFMOVAH,10INT21H…CODEENDS5、返回操作系統(tǒng)(4CH調(diào)用)
調(diào)用格式:MOVAH,4CHINT21H
功能:結(jié)束當(dāng)前正在執(zhí)行的程序,返回操作系統(tǒng)。例.從鍵盤輸入字符串并回顯。
Ⅰ.顯示‘Doyouwanttoinputastring?(Y/N)’;(09H功能)
Ⅱ.從鍵盤輸入一個字符(Y/N),若是‘y’或‘Y’則執(zhí)行Ⅲ,否則到Ⅶ結(jié)束;(01H功能)
Ⅲ.顯示‘Pleaseinputstring!’;(09H功能)
算法Ⅳ.輸入字符串到緩沖區(qū)(0AH功能);Ⅴ.在緩沖區(qū)輸入的字符串后加結(jié)束符‘$’;Ⅵ.回顯輸入的字符串(09H功能);Ⅶ.結(jié)束。
注:回車——CR,0DH,使光標(biāo)指向(本行)的首列;
換行——LF,0AH,使光標(biāo)指向下一行。DATASEGMENTSTR1DB‘Doyouwanttoinputastring?(Y/N)’,0DH,0AH,‘$’
STR2DB‘Pleaseinputstring!’,0DH,0AH,‘$’;BUFFDB20H,00H,20HDUP(?);DATAENDSCODESEGMENT ASSUME CS:CODE,DS:DATASTART:MOVAX,DATA; MOVDS,AX;
MOVDX,OFFSETSTR1; MOVAH,09H; INT21H;
MOVAH,01H; INT 21H; CMP AL,’Y’; JE NEXT; CMP AL,’y’; JNE DONE;NEXT:MOV DX,OFFSETSTR2; MOV AH,09H; INT 21H;
MOV DX,OFFSETBUFF; MOV AH,0AH; INT 21H; MOV AL,BUFF+1;讀字符串實長 MOVAH,0;擴展為字 LEA SI,BUFF+2;取字符串的首地址ADD SI,AX;指向字符串末單元 MOV BYTEPTR[SI],’$’;加結(jié)束符號
MOV DX,OFFSETBUFF+2; MOV AH,09H; INT 21H;DONE:MOVAH,4CH; INT 21H;CODE ENDS; END START;謝謝!
3.9DOS系統(tǒng)功能調(diào)用在DOS系統(tǒng)中,將那涉及設(shè)備驅(qū)動和文件管理等程序編寫成相對獨立的程序模塊,存放在DOS系統(tǒng)中,并編上號。用戶只要按照某種規(guī)定的格式進行調(diào)用,就可以很方便的使用這些子程序為自己編程服務(wù)。這些編了號的子程序就是DOS系統(tǒng)功能調(diào)用模塊,調(diào)用這些模塊就是DOS系統(tǒng)功能調(diào)用一.
DOS系統(tǒng)功能調(diào)用的格式
入口參數(shù);由系統(tǒng)規(guī)定。
MOVAH,nn1;nn1為功能號, 規(guī)定調(diào)用的功能。INT21H;
21H為系統(tǒng)功能調(diào)用類型碼,規(guī)定調(diào)用的類型為DOS系統(tǒng)功能調(diào)用。出口參數(shù);由系統(tǒng)規(guī)定。例如:在屏幕上顯示一個字符(如7)
MOVDL,37H
;入口參數(shù)
MOVAH,02H;02H為功能號,規(guī)定顯示DL內(nèi)的字符INT21H;結(jié)果在屏幕上顯示字符‘7’,屏幕就是出口參數(shù)注意在執(zhí)行DOS系統(tǒng)功能調(diào)用前,根據(jù)規(guī)定,看是否需要提供必要的入口參數(shù)。對于功能號,可參考書上361頁附錄4。這些功能號實際上就是DOS層功能模塊所提供的子程序的編號。需要使用INT中斷類型號(即21H),才能調(diào)用DOS提供的這些子程序,實際上這里用到了所謂的軟中斷指令I(lǐng)NT。有些DOS子程序在執(zhí)行后可能返回有關(guān)參數(shù),即為出口參數(shù),這些出口參數(shù)存放在一些指定的寄存器或者存儲單元中。二.
DOS系統(tǒng)功能調(diào)用(類型碼:21H)功能號功能 入口參數(shù)出口參數(shù)00H程序終止 無 無01H鍵盤輸入并回顯 無AL=輸入字符02H顯示字符 DL=輸出字符03H異步通信輸入 AL=輸入字符04H異步通信輸出DL=輸出字符05H 打印機輸出 DL=輸出字符More..06H 直接控制臺I/O二.
DOS系統(tǒng)功能調(diào)用(類型碼:21H)功能號 功能 入口參數(shù)出口參數(shù)07H 鍵盤輸入無回顯 AL=輸入字符08H 同上但要檢測Ctrl-Break
09H顯示字符串 DS:DX=串地址 ‘$’為字符串結(jié)束0AH 字符串輸入 (見說明)4CH 返回DOS操作系統(tǒng)
Back..①AH=09H為顯示字符串功能。
例如,顯示STRING中字符串:
STRINGDB‘ABOY’,’$’;
則相關(guān)的程序段為:
MOVDX,OFFSETSTRING;取STRING的偏移地址
MOVAH,09H;
INT21H;DS:DX輸出緩沖區(qū)
結(jié)束字符
‘A’‘’‘B’‘O’‘Y’‘$’三.重點強調(diào):程序形式:datasegmentstringdb‘a(chǎn)ssemblelanguage!’,‘$’dataendscodesegmentassumecs:code,ds:datastart:……movdx,offsetstringmovah,09Hint21H……
②AH=0AH為從鍵盤輸入字符串(P97)
入口參數(shù):DS:DX=輸入緩沖區(qū)首地址,而[DS:DX]的內(nèi)容還表示輸入緩沖區(qū)的總長;出口參數(shù):[DS:DX+1]為輸入字符串的實長(字符個數(shù))DS:DX+0輸入緩沖區(qū)+1+2實際輸入的字符總長實長
算法例2,密碼輸入程序。a.提示“PleaseInputYourPassword.”b.用輸入字符不回顯方式一個一個輸 入密碼,每輸入1位密位顯示一個“*” 號;密位可以1~8位,不足8位時以 “回車”結(jié)束,滿8位時自動結(jié)束。c.比較輸入的密碼。例2,密碼輸入程序。
算法密碼錯誤,顯示“Wrong,Again!”
重新輸入輸入密碼。e.密碼正確,轉(zhuǎn)操作程序(以顯示 “OK!”結(jié)束)。g.密碼輸入最多3次,3次均為錯誤 時顯示“NO!”退出。BACK?主程序BL←03HSI←BUFF1偏輸入密碼(SUB1)比較密碼(SUB2)密碼對?BL-1≠0?顯示“NO!”顯示“OK!”顯示“Wrong,Again!”ENDLOPYYNNDONEAGAINSUB1DI←BUFF2偏CX←08H輸入字符存字符是否回車?DI←DI+1顯示‘*’號CX-1≠0?RET輸入密碼子程序LOP1YNYDONE1NSUB2DI←BUFF2偏CX←取密位比較1個字符DI←DI+1是否不相同?SI←SI+1AL←00HCX-1≠0?RET比較密碼子程序LOP2YNYDONE2NAL←0FFHSTACKSEGMENTSTACK DW256DUP(?);
TOPLABELWORD;STACKENDS;DATASEGMENTSTR1DB‘Pleaseinputyourpassword.’,0dh,0aH,‘$’;STR2DB‘Wrong,Again!’,0DH,0AH,‘$’;STR3DB‘OK!’,0DH,0AH,’$’;STR4DB‘NO!’,0DH,0AH,’$’;DAT1DW08H;密位BUFF1DB‘12345678’;密碼BUFF2DB08HDUP(?);輸入緩沖區(qū)DATAENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA; MOV DS,AX; MOV AX,STACK; MOV SS,AX; MOV SP,OFFSETTOP; MOV BL,03H; MOV SI,OFFSETBUFF1;LOP: MOVDX,OFFSETSTR1; MOVAH,09H; INT21H; CALL SUB1;調(diào)密碼輸入子程序 CALL SUB2;調(diào)密碼
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年三明市交發(fā)物業(yè)服務(wù)有限公司人員招聘筆試真題
- 2024年城市排水管網(wǎng)土方運輸服務(wù)合同樣本3篇
- 美麗鄉(xiāng)村建設(shè)項目招標(biāo)通知
- 工程項目邀請招標(biāo)招標(biāo)文件深度剖析
- 企業(yè)還款保證書格式
- 農(nóng)村房屋買賣條款
- 技術(shù)研發(fā)與合作合同
- 監(jiān)理合同終止協(xié)議書樣本
- 酒品購買合同示范
- 服務(wù)購銷合同的退貨政策
- -腹腔鏡下肝部分切除術(shù)的護理查房
- 消防工程施工方案
- 2025年三支一扶考試基本能力測驗試題及解答參考
- 生態(tài)雞養(yǎng)殖項目建議書
- 東北三省精準(zhǔn)教學(xué)2024年12月高三聯(lián)考語文試卷(含答案詳解)
- 【MOOC】信號與系統(tǒng)-南京郵電大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年競聘公司經(jīng)理演講稿模版(3篇)
- 統(tǒng)編版(2024)七年級上冊道德與法治第四單元追求美好人生測試卷(含答案)
- 《Python程序設(shè)計》課件-2:變量和數(shù)據(jù)類型
- 《住院患者身體約束的護理》團體標(biāo)準(zhǔn)解讀課件
- 大學(xué)美育(同濟大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論