- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
迴圈程式在解決實際問題過程中,往往需要重複地做某些工作,因此在編程式時可採用迴圈結構結構實現。而在迴圈結構結構程式中,某些指令重複執行多次,可使程式長度大為縮短。迴圈程式在結構上包括迴圈初始化、循環體和迴圈控制三個部分。在形式上有兩種,一是先執行循環體,再判斷條件看是否繼續迴圈(如圖4.8(a)所示);二是先檢查條件是否滿足,滿足則執行循環體,否則就退出(如圖4.8(b)所示)。段定義偽指令組合語言根源程式是用分段的方法來組織程式、數據和變數的。一個組合語言根源程式由若干個邏輯段組成。段定義偽指令用來定義組合語言根源程式中的邏輯段。其格式為:段名SEGMENT[定位類型][組合類型][‘類別’]…段名ENDS根源程式中的每個邏輯段由SEGMENT語句開始,到ENDS語句結束。二者總是成對出現,缺一不可。1.定位類型(align)定位類型告訴組合語言程式如何確定邏輯段的地址邊界,定位類型有4種。(1)PARA(paragraph)說明邏輯段從一個節的邊界開始。16個位元組稱為一個節,所以段的起始地址應能被16整除,也就是段起始物理地址應為****0H。在缺省情況下,定位類型默認為PARA。(2)BYTE說明邏輯段從位元組邊界開始,即可以從任何地址開始。此時本段的起始地址緊接在前一個段的後面。(3)WORD說明邏輯段從字邊界開始。即本段的起始地址必須是偶數。(4)PAGE說明邏輯段從頁邊界開始。256B(位元組)稱為一頁,故本段的起始物理地址應為***00H。2.組合類型(combine)組合類型主要用在具有多個模組的程式中,一個邏輯段裝入記憶體時與其他段如何進行組合。組合類型共有以下6種:(1)NONE表示本段與其他邏輯段不組合。(2)PUBLICPUBLIC表示,對於不同程式模組中用PUBLIC說明的具有相同段名的邏輯段,彙編時將它們組合在一起,構成一個大的邏輯段。(3)STACK組合類型為STACK時,其含義與PUBLIC基本一樣,但僅限於作為堆疊的邏輯段使用。(4)COMMON表示對於不同程式模組中用COMMON說明的同名邏輯段,連接時從同一個地址開始裝入,即各個邏輯段重疊在一起。(5)MEMORY表示當幾個邏輯段連接時,本邏輯段定位在地址最高的地方。如果被連接的邏輯段中有多個段的組合類型都是MEMORY,則組合語言程式只將首先遇到的段作為MEMORY段,而其餘的段均當做COMMON段處理。(6)AT運算式這種組合類型表示本邏輯段根據運算式求值的結果定位段地址。例如AT8000H,表示本段的段地址為8000H,即本段的起始物理地址為8000H。3.類別(class)類別是用單引號括起來的字串。如代碼段(‘CODE’)、堆疊段(‘STACK’)等。設置類別的作用是在當幾個程式模組進行連接時,將具有相同類別名的邏輯段裝入連續的記憶體區內。類別名相同的邏輯段,按出現的先後順序排列。沒有類別名的邏輯段,與其他無類別名的邏輯段一起連續裝入記憶體。上述3個可選項主要用於多個程式模組的連接。若程式只有一個模組,即只包括代碼段、數據段、附加段和堆疊段時,除堆疊段建議用組合類型STACK說明外,其他段的組合類型各類別均可省略。定位類型一般採用默認值PARA。【例4-2】將兩個模組中的同名段進行組合。模組1:STACKSEGMENTSTACKDB100DUP(0)STACKENDSDATASEGMENTCOMMONAREA1DB1024DUP(0)DATAENDSCODESEGMENTPUBLIC…CODEENDS模組2:STACK SEGMENTSTACKDB50DUP(0)STACK ENDSDATA SEGMENTCOMMONAREA1 DB8192DUP(0)DATA ENDSCODE SEGMENT PUBLIC…CODE ENDSEND彙編連接後,記憶體中的分配情況如圖4.4所示。這裏,兩個模組中的代碼段的名字相同,組合類型為PUBLIC,故將它們連接成一個大的代碼段;數據段的名字也相同,用COMMON說明,則將它們重疊,因為模組2的數據段比模組1的長,所以數段長度為8192B;同理,堆疊段組合成為一個大的堆疊區,共150B。圖4.4
您可能关注的文档
- 汇率决定理论课件.ppt
- 汇率决定理论课件.ppt
- 汇率理论课件.ppt
- 汇率与宏观经济政策课件.ppt
- 汇率政策课件.ppt
- 表外业务管理课件.ppt
- 表外业务课件.pptx
- 表外业务课件.ppt
- 补体系统课件.ppt
- 蚕丝织物的前处理和整理课件.ppt
- 2024年贵州省铜仁地区德江县煎茶镇招聘社区工作者真题及参考答案详解.docx
- 2024年贵州省毕节地区金沙县太平乡招聘社区工作者真题含答案详解.docx
- 2024年贵州省毕节地区大方县长石镇招聘社区工作者真题附答案详解.docx
- 2024年贵州省贵阳市花溪区青岩镇招聘社区工作者真题及答案详解1套.docx
- 2024年贵州省遵义市赤水市长沙镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年贵州省安顺市平坝县城关镇招聘社区工作者真题带答案详解.docx
- 2024年贵州省毕节地区织金县以那镇招聘社区工作者真题带答案详解.docx
- 2024年贵州省遵义市遵义县沙湾镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年贵州省安顺市关岭自治县关索镇招聘社区工作者真题带答案详解.docx
- 2024年贵州省遵义市习水县大坡乡招聘社区工作者真题及答案详解1套.docx
文档评论(0)