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

正文內(nèi)容

模塊化程序設(shè)計與混合編程-展示頁

2025-01-16 21:46本頁面
  

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