- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
和春技術學院資訊管理系九十三學年度第一學期系統程式教學投影片課程網頁講師:毛立仁 第十一章 巨集處理器 11-1 巨集指令之功能 11-2 巨集撰寫之格式 11-3 巨集處理器 11-1 巨集指令之功能 巨集指令 (Macro Instruction) - 將一群常用的指令予以適當的組合,並定義一條指令用以替代該群指令,此一替代的指令稱之為巨集指令。 如 ADD5 即是程式設計者所定義之巨集指令,用以替代 (1)、(2) 及 (3) 三條指令。 巨集展開 (Macro Expansion) - 程式設計師於程式中直接使用自行定義的巨集指令。當所設計之程式經由巨集處理器 (Macro Processor) 處理時,巨集處理器會將程式中的巨集指令轉換為原來的指令群,此動作稱之為巨集展開。 範例: 使用巨集指令優點 - (1)減輕程式設計者之負擔,縮短程式設計的時間。 (2)巨集指令可視為高階程式語言指令,具有如同使用高階程式言的優點,卻又不失去組合語言之精神。 (3)巨集指令能促進程式的標準化、減輕程式除錯、修改與維護之負擔。 (4)巨集指令可以讓計算機內的系統軟體更具有彈性。 11-2 巨集撰寫之格式 巨集指令之格式 - 巨集指令參數傳遞-巨集指令的參數傳遞方式可分成兩種: (1) 位置參數法:憑藉虛擬參數 於參數串列中的位置,使實際參數與虛擬參數逐一對應。將要引用之虛擬參數與實際參數的位置相互對應,不想引用之虛擬參數則於實際參數串列中以空白取代 (2) 關鍵字參數法:直接將要引用之虛擬參數與所對應的實際參數例出,不想引用者,則不列出。 範例:位置參數法 範例:關鍵字參數法 巨集指令之址標引用 - 在巨集指令之本體中可能會有址標的出現,若該巨集指令經多次呼叫展開後,則會使該址標於程式中多次的出現,產生了符號多重定義的錯誤。解決此種問題的方法便是巨集處理器利用一個計數器來記錄巨集指令呼叫展開之次數,並將此次數值附加於址標之後。 範例: 巢狀式巨集 - 所謂狀式巨集 (Nested Marco) 即是巨集定義內又含有巨集呼叫。巨集定義內含有巨集呼叫,則於巨集展開時會去呼叫另一個巨集。於是在展開一個巨集的當中,它又會去展開另一個巨集。如果巨集定義內之巨集呼叫為呼叫巨集本身,則會形成遞迴呼叫。 範例: 巨集定義內含巨集定義 - 在巨集定義內含有巨集定義的情況中,巨集定義之名稱亦可視為是參數。於內層的巨集定義必須被外層的巨集呼叫才會有效,不可於程式中直接單獨呼叫內層的巨集定義。 範例: 此範例中,MAIN 為外層巨集定義,而 ROUTINE 為內層巨集定義,ROUTINE 僅可被 MAIN 呼叫,不能在主程式中直接被呼叫。 條件式巨集展開 - 於巨集處理中,AIF 與 AGO 是兩個非常重要之虛擬指令,能依其條件滿足與否,做適當的巨集展開。但是展開後,AIF 與 AGO 並不會出現在展開的程式片斷中。提供條件式巨集展開將使得程式更具有彈性與效率。 (1) AIF 指令: AIF 指令有如高階語言中的 IF 指令,為一條有條件跳躍之虛擬指令。其指令架構如下: AIF (測試條件) 巨集址標 此敘述表示如果測試條件滿足,則跳躍至址標處執行。 (2) AGO 指令: AGO 指令有如高階語言中的 GOTO 指令,為一條無條件跳躍之虛擬指令。其指令架構如下: AGO 巨集址標 此敘述表示遇到 AGO 指令時,則無條件跳躍至址標處執行。 註:條件式巨集指令中之址標於展開後,並不會出現出在主程式中。 範例: 11-3 巨集處理器 巨集處理器主要的四項功能為: (1) 巨集定義之辨識 (2) 巨集定義之儲存 (3) 巨集呼叫之辨識 (4) 巨集呼叫之展開與參數置換 巨集處理器之分類 (1) 兩次處理巨集處理器 (Two-Pass Macro Processor) (2) 一次處理巨集處理器 (One-Pass Macro Processor) (3) 巨集組合程式 (Macro Assembler) 兩次處理巨集處理器 ? 功能:於第一次處理時,處理所有的巨集定義。在第二次處理時,則展開所有的巨集呼叫。 ? 限制:巨集定義內不可有巨集定義或巨集呼叫。 1. 第一次處理 :巨集定義的辨認並儲存巨集定義。 使用到的資料庫 : (a) 輸入 :始程式。 (b) 處理過程中使用到的資料結構: (i) 巨集定義表計數器 (MDTC):用以指向下一個將會被使用的巨集定義表 (MDT)。 (ii) 巨集名稱表計數器 (MNTC):用以指向下一個將會被使用的巨集名稱表 (MNT)。 (iii) 參數陣列 (ALA):用以儲存巨集指令引用
您可能关注的文档
最近下载
- 委外加工单范本.pdf VIP
- DBJ51T 040-2021 四川省工程建设项目招标代理操作规程-四川省工程建设地方标准.pdf VIP
- (正式版)-B 4706.8-2008 家用和类似用途电器的安全 电热毯、电热垫及类似柔性发热器具的特殊要求.docx VIP
- 研究与实践了解汽车尾气的治理(步步高)第二节第5课时化学平衡图像第二章化学反应速率与化学平衡课件(内嵌音频+视频).pptx VIP
- 2025年新苏教版数学二年级上册全册教案.docx
- 九年级数学三角函数全章知识点整理 .pdf VIP
- 低空智联网技术体系白皮书 2024 .docx
- 第五单元倍的认识(单元测试)-三年级上册数学人教版.docx VIP
- 小学体育与健康健康饮食教学.ppt VIP
- 光的干涉与光的衍射.pptx VIP
文档评论(0)