freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

模塊化程序設(shè)計(jì)與混合編程(已修改)

2025-01-19 21:46 本頁(yè)面
 

【正文】 高等 教 育出版社 王成端 主 編 匯編語(yǔ) 言程序 設(shè)計(jì) (第 2版) 普通高等 教 育 “十一五 ”國(guó) 家 級(jí)規(guī)劃教 材 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 模塊化技術(shù)是大型軟件開(kāi)發(fā)的基本技術(shù),高、低級(jí)語(yǔ)言間的混合編程是大型軟件常用的另一技術(shù)。本章詳述這兩種技術(shù),應(yīng)重點(diǎn)掌握二個(gè)匯編語(yǔ)言模塊間的代碼調(diào)用與數(shù)據(jù)交換方法,以及編寫(xiě)能夠被 C語(yǔ)言調(diào)用的匯編語(yǔ)言模塊的方法。 模塊化程序設(shè)計(jì) 匯編語(yǔ)言與高級(jí)語(yǔ)言的接口 實(shí)訓(xùn)一 鍵盤(pán)錄入數(shù)據(jù)的轉(zhuǎn)換與顯示 實(shí)訓(xùn)二 C語(yǔ)言調(diào)用匯編語(yǔ)言子程序進(jìn)行數(shù)據(jù)傳遞與顯示 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 模塊化的程序設(shè)計(jì) 模塊化設(shè)計(jì)原則 模塊之間組合與通信 模塊化設(shè)計(jì)舉例 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 對(duì)于一個(gè)大而復(fù)雜的任務(wù),我們一般把整個(gè)程序分成若干個(gè)子任務(wù)或模塊,稱(chēng)為“模塊化程序設(shè)計(jì)”。模塊化設(shè)計(jì)的難題是:如何把程序分成模塊,以及如何再裝配起來(lái)。 1. 模塊化的優(yōu)點(diǎn) ?單個(gè)的模塊易于編寫(xiě)、調(diào)試、修改。 ?一個(gè)模塊可以在多個(gè)地方或多個(gè)程序中使用。 ?可以直接利用已有的模塊。 ?多個(gè)程序員可以并行工作。 模塊化設(shè)計(jì)原則 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 2. 模塊化的缺點(diǎn) ?增加了模塊的劃分工作。 ?模塊的裝配也是難題,尤其是合并多人編寫(xiě)的程序時(shí)。 ?為調(diào)試一個(gè)模塊,需要額外地為其準(zhǔn)備調(diào)試數(shù)據(jù)、專(zhuān)用程序等 模塊化程序設(shè)計(jì)的關(guān)鍵是模塊的劃分,層次圖和模塊說(shuō)明是模塊劃分的主要描述工具。層次圖是一個(gè)方塊圖,用來(lái)表示模塊與模塊之間的調(diào)用關(guān)系,如 圖 91所示。模塊說(shuō)明是模塊功能的文字描述,應(yīng)簡(jiǎn)要寫(xiě)出模塊的功能、所用基本算法、入口參數(shù)、出口參數(shù)、所調(diào)用到的其它模塊、調(diào)用注意事項(xiàng)等信息。 3. 模塊的描述 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 圖 91 層次圖 主控模塊 模塊 A 模塊 B 模塊 C 模塊 E 模塊 F 模塊 G 模塊 H 模塊 D ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 4. 模塊的劃分原則 模塊的劃分無(wú)固定的規(guī)則,應(yīng)視情況靈活確定,但應(yīng)遵循如下基本原則: ①模塊間的調(diào)用關(guān)系盡可能簡(jiǎn)單。盡量避免從多個(gè)入口點(diǎn)進(jìn)入模塊或從多個(gè)出口點(diǎn)退出,否則模塊不易調(diào)試。 ②模塊間的數(shù)據(jù)耦合應(yīng)盡量小,即盡量減少數(shù)據(jù)傳遞,對(duì)于需要傳遞參數(shù)個(gè)數(shù)較多的模塊,可考慮合并成一個(gè)模塊。 ③模塊的大小適中,若一個(gè)模塊太大,則編寫(xiě)調(diào)試因難;若太小,模塊間的調(diào)用、連接開(kāi)銷(xiāo)則太大,一般一個(gè)模塊長(zhǎng)度在 50至 500行內(nèi)為宜。 返回本章首頁(yè) 返回本節(jié)首頁(yè) ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 一個(gè)大程序劃分為若干模塊后,各個(gè)模塊分別編寫(xiě)并匯編成目標(biāo)模塊文件( .OBJ文件),然后由鏈接程序(如 TLINK.EXE等)將各個(gè)模塊組合在一起,成為一個(gè)可執(zhí)行文件( .EXE文件)。模塊間的組合,主要由鏈接程序完成。一個(gè)模塊中往往有多個(gè)段,多個(gè)模塊則有更多的段,這些段在鏈接時(shí)有的需要合并成一個(gè),有的則需要相互重疊,有的則不與其它段發(fā)生聯(lián)系。要想使鏈接程序按預(yù)想的方案組合各個(gè)段,關(guān)鍵是在各個(gè)模塊編寫(xiě)前約定好段名、組合類(lèi)型、定位類(lèi)型、類(lèi)別等參數(shù),其中組合類(lèi)型指定各個(gè)模塊間的同名段該如何處理(各自獨(dú)立?相互合并?相互重疊?),而定位類(lèi)型決定段的地址要求,它關(guān)系到段間是否留有空隙的問(wèn)題,類(lèi)別則會(huì)導(dǎo)至調(diào)整段的先后次序。其中主要的參數(shù)是組合類(lèi)型。 返回本章首頁(yè) 返回本節(jié)首頁(yè) ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 由于各個(gè)模塊被單獨(dú)匯編,所以 A模塊要想調(diào)用 B模塊內(nèi)定義的符號(hào)(變量、過(guò)程等),那么 A模塊必須通知匯編程序指定的符號(hào)在別的模塊內(nèi),否則匯編時(shí)會(huì)出錯(cuò)。另外, B模塊內(nèi)也必須通知匯編程序某個(gè)符號(hào)將被其它模塊調(diào)用,否則匯編程序不會(huì)把它寫(xiě)入目標(biāo)文件中,最后導(dǎo)致鏈接失敗。 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 模塊化設(shè)計(jì)舉例 1. 模塊間代碼的轉(zhuǎn)移 一個(gè)模塊調(diào)用另一個(gè)模塊的代碼時(shí),若調(diào)用者所在的段與位于另一模塊內(nèi)的被調(diào)用者所在的段鏈接后能合并成一個(gè)段,則調(diào)用相當(dāng)于段內(nèi)調(diào)用,轉(zhuǎn)移采用近轉(zhuǎn)移即可;若不能合并成一個(gè)段,則必須采用遠(yuǎn)轉(zhuǎn)移。 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 【 例 】 某系統(tǒng)由 A、 B二個(gè)模塊構(gòu)成, A模塊要調(diào)用到 B模塊的一個(gè)過(guò)程 disp,以顯示一個(gè)字符。二個(gè)模塊如下: 模塊 A: EXTRN DISP: NEAR .MODEL SMALL .CODE START: CALL DISP MOV AH, 4CH INT 21H END START ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 模塊 B: PUBLIC DISP .MODEL SMALL .CODE DISP PROC NEAR MOV DL, 39。A39。 MOV AH, 2 INT 21H RET DISP ENDP END ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 假設(shè)模塊 A存盤(pán)后文件名為 ,模塊 B存盤(pán)后文件名為 SM,則可用以下命令行分別匯編,然后鏈接合并。 MASM A。 MASM B。 LINK A+B。 最后得到可執(zhí)行文件 。執(zhí)行該文件,可在屏幕上顯示字符 A。 在這個(gè)例子中,兩個(gè)模塊存儲(chǔ)模式相同,并且都是用 .CODE偽指令指定代碼段,則二個(gè)模塊內(nèi)代碼段的段名、定位類(lèi)型、組合類(lèi)型、類(lèi)別等都由匯編程序自動(dòng)生成(分別為: TEXT、 WORD、PUBLIC、‘ CODE’ ),由于二個(gè)段是同名段,且都為 PUBLIC組合類(lèi)型,故鏈接程序最后將其合并為一個(gè)段,因而模塊 A對(duì)模塊 B內(nèi)disp的調(diào)用為段內(nèi)調(diào)用。 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 【 例 】 段間調(diào)用。對(duì)例 91中的二個(gè)模塊作如下修改: EXTRN DISP: FAR .MODEL SMALL .CODE START: CALL DISP MOV AH, 4CH INT 21H END START 模塊 A: 模塊 B: PUBLIC DISP CODE SEGMENT ASSUME CS: CODE DISP PROC FAR MOV DL, 39。A39。 MOV AH, 2 INT 21H RET DISP ENDP END ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 在這個(gè)例子中,由于模塊 B中代碼段的段名與模塊 A中的不再一致,故二個(gè)段是各自獨(dú)立的代碼段,調(diào)用成為段間調(diào)用, disp不論在模塊 A中的外部符號(hào)聲明還是在模塊 B中的類(lèi)型定義,都必須為 FAR類(lèi)型。 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 2. 模塊間數(shù)據(jù)的訪問(wèn) 兩個(gè)模塊之間若要相互交換數(shù)據(jù),可用如下幾種辦法實(shí)現(xiàn): a. 通過(guò)寄存器傳遞 b. 通過(guò)堆棧傳遞 c. 互訪對(duì)方變量或數(shù)據(jù)區(qū) a、 b二種方法較為簡(jiǎn)單,因?yàn)椴徽撛谕荒K內(nèi)的各個(gè)過(guò)程間,還是在不同模塊內(nèi)的各個(gè)過(guò)程間,都中在共用相同的 CPU寄存器和堆棧段,所以這種況下調(diào)用在模塊內(nèi)還是在模塊外情況并無(wú)差別。下面主要討論模塊間互訪對(duì)方變量或數(shù)據(jù)區(qū)的方法。 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 3. 模塊間互訪對(duì)方變量或數(shù)據(jù)區(qū)的方法 一個(gè)模塊要訪問(wèn)另一個(gè)模塊內(nèi)的數(shù)據(jù),關(guān)鍵是調(diào)整數(shù)據(jù)段寄存器使之存儲(chǔ)被訪問(wèn)數(shù)據(jù)所在段的段地址。 【 例 】 演示一個(gè)模塊內(nèi)訪問(wèn)另一模塊內(nèi)變量或數(shù)據(jù)區(qū)的方法。 某工程由如下二個(gè)模塊組成。 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 模塊 A: EXTRN SET: FAR PUBLIC BUF1 .MODEL SMALL .DATA BUF1 DB 3 .CODE START: MOV AX, @DATA MOV DS, AX CALL SET MOV DL, BUF1 MOV AH, 2 INT 21H MOV AH, 4CH INT 21H END START ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 模塊 B: EXTRN BUF1:BYTE PUBLIC SET CODE SEGMENT ASSUME CS: CODE SET PROC FAR MOV BUF1, 39。839。 RET SET ENDP CODE ENDS END 在這個(gè)例子中,當(dāng)控制從模塊 A轉(zhuǎn)到模塊 B后, DS寄存器仍指向模塊 A的數(shù)據(jù)段,所以模塊 B中可用 DS直接訪問(wèn)模塊 A中的數(shù)據(jù),這種情況相當(dāng)于在一個(gè)模塊中有二個(gè)代碼段一個(gè)數(shù)據(jù)段的情況,不論控制在哪個(gè)代碼段內(nèi),都可直接訪問(wèn)數(shù)據(jù)段。 ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 【 例 】 二個(gè)模塊都有自己的數(shù)據(jù)段時(shí)從一個(gè)模塊訪問(wèn)另一個(gè)模塊數(shù)據(jù)區(qū)的方法。對(duì)例 : EXTRN SET: FAR PUBLIC BUF1 .MODEL SMALL .DATA BUF1 DB 3 .CODE START: MOV AX, @DATA MOV DS, AX CALL SET MOV DL, BUF1 MOV AH, 2 INT 21H MOV AH, 4CH INT 21H END START 模塊 A: ?第 9章 模塊化程序設(shè)計(jì)與混合編程 匯編語(yǔ) 言程序 設(shè)計(jì) 高等 教 育出版社 模塊 B: EXTRN BUF1:BYTE PUBLIC SET DATA SEGMENT BUF2 DB 39。539。 DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA SET PROC FAR PUSH DS MOV AX, DATA MOV DS, AX MOV BL, BUF2 MOV
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1