版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東常規(guī)跨徑公路鋼橋典型安裝工藝示意
- 2023年啶蟲咪投資申請報告
- Python程序設(shè)計實踐- 習(xí)題及答案 ch15 實驗11 調(diào)試和異常處理
- 類文本閱讀-傳記-2021年高考語文復(fù)習(xí)學(xué)案
- 專項24-圓周角定理-重難點題型
- 高級硬件工程師工作崗位職責(zé)說明(33篇)
- 快遞工作總結(jié)
- 語法專題八 情態(tài)動詞【考點精講精練】-2023年中考語法一點通(學(xué)生版)
- 千與千尋觀后感15篇
- 橫店影視城導(dǎo)游詞(31篇)
- 科技成果評估規(guī)范
- 2024年內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- 口腔頜面部血管瘤的診斷與治療
- 校園文創(chuàng)產(chǎn)品設(shè)計方案(2篇)
- MH 5006-2015民用機場水泥混凝土面層施工技術(shù)規(guī)范
- 中國特色社會主義期末測試題中職高教版
- 新能源電動汽車充換電站設(shè)施建設(shè)項目可行性研究報告
- 醫(yī)院培訓(xùn)課件:《危急值報告管理制度》
- 宣講《鑄牢中華民族共同體意識》全文課件
- 國開2024年《鋼結(jié)構(gòu)(本)》階段性學(xué)習(xí)測驗1-4答案
- GB/T 2471-2024電阻器和電容器優(yōu)先數(shù)系
評論
0/150
提交評論