




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1第六章 子程序結構 三、子程序參數(shù)傳遞參數(shù):入口參數(shù): 在子程序中被處理的數(shù)據(jù)出口參數(shù): 表示子程序處理結果的數(shù)據(jù) (1) 通過寄存器傳送參數(shù)(2) 通過存儲器傳送參數(shù)(3) 通過堆棧傳送參數(shù)或參數(shù)地址(4)*多個模塊之間的參數(shù)傳送軟延時:指利用CPU執(zhí)行指令需要耗費一定時間的特點實施的延時,常用減1循環(huán)來實現(xiàn)。例:8088CPU,主頻4.77M,每個時鐘周期為:1/4.77M = 0.21s。循環(huán)指令LOOP,當CX不為零時,執(zhí)行循環(huán)轉移分支,占用17個時鐘周期;當CX為零時,退出循環(huán),占用5個時鐘周期。如果CX初值是2801時,執(zhí)行指令WAIT1:LOOP WAIT1,所需時間為:(0.
2、21×2801)×17 + 0.21 ×5 10ms子程序調用,實現(xiàn)100ms、550延時CSEG SEGMENTASSUME CS:CSEG,MAIN PROC FARPUSH DSSUB AX,AXPUSH AXMOV BX,10 ;延時100ms,參數(shù)賦值CALL DELAY ;調用延時子程序MOV BX,55 ;延時550ms,參數(shù)賦值CALL DELAY ;調用延時子程序RETMAIN ENDP例:十六進制到十進制的轉換(通過寄存器傳送參數(shù))hexidec segment ; 16®10assume cs: hexidecmain proc f
3、arstart: push dssub ax, axpush axrepeat:call hexibin ; 16®2call crlfcall binidec ; 2®10call crlfjmp repeatretmain endphexidec endsend start如果數(shù)據(jù)段定義如下:data segmentary dw 1,2,3,4,5,6,7,8,9,10count dw 10sum dw ?ary1 dw 10,20,30,40,50,60,70,80,90,100count1 dw 10sum1 dw ?data ends如果直接訪問內(nèi)存變量,那么累加
4、數(shù)組ary和數(shù)組ary1中的元素不能用同一個子程序 proadd。18例:累加數(shù)組中的元素(通過地址表傳送參數(shù)地址)data segmentary dw 10,20,30,40,50,60,70,80,90,100count dw 10sum dw ?table dw 3 dup (?) ; 地址表data endscode segmentmain proc farassume cs:code, ds:datapush dssub ax, axpush axmov ax, datamov ds, axmov table, offset arymov table+2, offset countm
5、ov table+4, offset summov bx, offset tablecall proaddretmain endp例:累加數(shù)組中的元素(通過堆棧傳送參數(shù)地址)data segmentary dw 10,20,30,40,50,60,70,80,90,100count dw 10sum dw ?data endsstack segmentdw 100 dup (?)tos label wordstack ends21code1 segmentmain proc farassume cs:code1, ds:data, ss:stackstart:mov ax, stackmov
6、ss, axmov sp, offset tosmov ax, datamov ds, axmov bx, offset arypush bxmov bx, offset countpush bxmov bx, offset sumpush bxcall far ptr proaddmov ax, 4c00hint 21hmain endpcode1 ends多個模塊之間的參數(shù)傳送:局部符號:在本模塊中定義,在本模塊中引用的符號外部符號:在某一模塊中定義,在另一模塊中引用的符號例:; proadd1.asmextrn proadd : fardata segment commonary dw
7、1,2,3,4,5,6,7,8,9,10count dw 10sum dw ?data endscode1 segmentmain proc farassume cs:code1, ds:datastart:mov ax, datamov ds, axcall far ptr proaddmov ah, 4chint 21hmain endpcode1 endsend start25; proadd2.asmpublic proadddata segment commonary dw 1,2,3,4,5,6,7,8,9,10count dw 10sum dw ?data endscode2 s
8、egmentproadd proc farassume cs:code2,ds:datamov ax, datamov ds, axpush axpush cxpush silea si, arymov cx, countxor ax, axnext: add ax, siadd si, 2loop nextmov sum,axpop sipop cxpop axretproadd endpcode2 endsend code segmentmain proc farassume cs:code, ds:data, ss:stackstart:mov ax, stack ;用戶堆棧地址mov
9、ss, axmov sp, offset tospush ds ;保存返回DOS地址sub ax, axpush axmov ax, data ;數(shù)據(jù)段地址mov ds, axmov bx, offset result ; 結構數(shù)據(jù)入棧push bxmov bx, n_vpush bxcall far ptr factretmain endpcode ends 第六章作業(yè)Page 240 6.1 6.76.3 6.4 6.8三、 系統(tǒng)功能調用PC-DOS系統(tǒng)中設置兩層內(nèi)部子程序供用戶使用,即DOS功能模塊和基本輸入輸出子程序BIOS。1.DOS功能調用( DOS中斷調用)磁盤操作系統(tǒng)DOS (
10、disk operating system )共提供了近80個功能調用,大致分為:設備管理、文件管理和目錄管理等幾類。一般,調用系統(tǒng)功能時總是先采用DOS層功能模塊,如果這層模塊內(nèi)容達不到要求,再進一步調用BIOS層的子程序。DOS功能調用通過INT 21H指令來實現(xiàn)。(而不是用CALL)BIOS中斷調用BIOS(Basic Input/Output System)是IBM-PC機的監(jiān)控程序,它固化在微型機主板的ROM中,其內(nèi)容主要有系統(tǒng)測試程序(Post)、初始化引導程序(Boot)、I/O設備的基本驅動程序和許多常用程序模塊,它們一般以中斷服務程序的形式存在。例如,負責顯示輸出的顯示I/O
11、程序為10H號中斷服務程序;負責打印輸出的打印I/O程序為17H中斷服務程序等。圖8.5 用戶程序和操作系統(tǒng)關系示意圖上圖是用戶程序和操作系統(tǒng)關系示意圖,由圖可見BIOS程序直接建立在硬件基礎上,磁盤操作系統(tǒng)(disk operating system DOS)建立在BIOS基礎上,各種高級語言則建立在操作系統(tǒng)基礎上。用戶程序可以使用高級語言,也可以調用DOS或其他操作系統(tǒng),還可以調用BIOS,甚至直接指揮硬件設備。通常應用程序調用DOS提供的系統(tǒng)功能,完成輸入/輸出或其他操作,這樣做用戶可以少考慮硬件,實現(xiàn)起來容易。DOS功能調用如何用DOS功能調用實現(xiàn):通過顯示器輸出一個字符; DOS顯示
12、功能調用通過鍵盤輸入一個字符; DOS鍵盤功能調用通過顯示器輸出一個字符串;DOS顯示功能調用通過鍵盤輸入一個字符串; DOS鍵盤功能調用子程序參數(shù)傳遞方法:方法一: 寄存器方法二: 內(nèi)存方法三: 堆棧參數(shù):入口參數(shù):在子程序中被處理的數(shù)據(jù)出口參數(shù):表示子程序處理結果的數(shù)據(jù)DOS功能調用方法(1)根據(jù)需要的功能調用設置入口參數(shù)。(2)把功能調用號送AH寄存器。(共80個功能)(3)發(fā)軟中斷指令“INT 21H”。(4) 獲取得出口參數(shù)。 (可根據(jù)有關功能調用的說明) (舉例)2.BIOS功能調用方法BIOS常駐ROM,獨立于DOS,可與任何操作系統(tǒng)一起工作。它的主要功能是驅動系統(tǒng)所配置的外部設備,如磁盤驅動器、顯示器、打印機及異步通訊接口等。通過INT 10HINT 1AH向用戶提供服務程序的入口,使用戶無需對硬件有深入了解,就可完成對I/O設備的控制與操作。BIOS的中斷調用與DOS功能調用類似。DSEG SEGMENTbuff1 db ?db ?db 10 dup(0)DSEG ENDSCSEG
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《做個受歡迎的人》(教學設計)安徽大學版三年級下冊綜合實踐活動
- 18 古詩三首(教學設計)-2024-2025學年統(tǒng)編版語文六年級上冊
- 人教版歷史與社會七年級上冊教學設計
- Unit2 Mocky had a bad day(教學設計)-2024-2025學年北師大版(一起)英語五年級上冊
- 2024年高中歷史 第三單元 從人文精神之源到科學理性時代 第16課 綜合探究:破解“李約瑟難題”教學實錄 岳麓版必修3
- 法院單位表態(tài)發(fā)言稿范本
- 九年級化學上冊 第二單元 課題3 制取氧氣教學實錄 (新版)新人教版
- 22文言文二則 書戴嵩畫牛 教學設計-2024-2025學年語文六年級上冊統(tǒng)編版
- 10《傳統(tǒng)美德源遠流長》第1課時 教學設計-2024-2025學年道德與法治五年級上冊統(tǒng)編版
- 江西省九江市少年宮科學動力機械課程(教學設計)-吊橋
- 中國近現(xiàn)代史綱要學習心得體會與文化自信
- 安保部績效考核方案
- 2025年上半年四川省德陽市事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年民辦合肥經(jīng)濟技術職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2025年背光源導光板市場分析現(xiàn)狀
- 2025年太平洋保險北京分公司招聘筆試參考題庫含答案解析
- 口腔消毒隔離知識培訓
- 《特種設備安全管理員》考試通關題庫(600題 含參考答案)
- 2023-2024學年江蘇南京秦淮區(qū)七年級下冊語文期中試卷及答案
- Excel高效辦公應用與技巧知到智慧樹章節(jié)測試課后答案2024年秋四川職業(yè)技術學院
- 廢舊輪胎資源化利用項目可行性研究報告
評論
0/150
提交評論