网站大量收购独家精品文档,联系QQ:2885784924

组合语言和程式范例.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

參數程序呼叫*呼叫程序使用r1到r8,來傳輸引數。函數呼叫指令*函數和程序有些相似函數會有傳回值程序不會有傳回值傳回值有多種建構的觀念,比如:運用堆疊建立專用暫存器使用通用暫存器當函數執行ret指令,函數會把傳回值放到以上所指定的位置,等到結束函數後,呼叫程式才能取回該傳回值。組合語言和高階語言的互動*高階程式可以直接呼叫組合語言所撰寫的程序或函數;組合語言程式也可以呼叫高階語言所撰寫的程序或函數。為什麼要混合組合語言碼和高階程式碼呢?可能的原因:底層電路硬體無法使用高階語言進行規劃改善效能瓶頸常見的情況就是:使用組合語言撰寫程序或函數,其它大部分程式則保留高階語言撰寫,最後由高階程式直接呼叫該組合語言所撰寫的程序或函數。010302實作取捨*因為使用組合語言來撰寫應用程式,實在非常沒有開發效率,過程也相當複雜,因此大部分的情況下,組合語言只是輔助高階語言,局部強化某些不足的功能或進行效能的改善。變數儲存指令*大部分的組合語言能讓程式設計師自行定義資料項目。比如:宣告啟始變數或非啟始變數:.word.byte或.char.long0102等效宣告範例*寫入初始值*.word和.long並非一般傳統的指令這種變數儲存指令可以控制組譯器保留變數的儲存位置,寫入初始值,比如:x: .word 94912*第8章

組合語言和程式範例程式規劃語言*高階語言低階語言高階語言特點*多對一翻譯硬體獨立性應用導向通用階層概念低階語言特點*硬體相依性專用一對一翻譯系統導向無階層概念階層概念*低階語言沒有明顯的階層概念。低階語言想要建立階層概念,必須逐步地建構自己的階層機制。電腦科學家AlanPerlis曾經說過:因為大多數的應用程式無法直接控制底層硬體,所以某些程式規劃若涉及硬體細節時,就表示:使用的程式語言必須是低階語言,但低階語言會增加整體程式規劃的複雜度。專用術語*低階語言專用於特定的處理器組合語言將組合語言翻譯成電腦硬體所認識的二進位碼可與編譯器作一下比較組譯器重要觀念*組合語言是低階語言,可以指出各種不同處理器的特點,比如:指令集、運算元定址、暫存器、…等,因此存在多少種處理器,就會存在多少種組合語言。組合語言*想要把組合語言的程式,從某個處理器移植到另一個處理器時,必須改寫成另一種組合語言。還好!大部分的組合語言都遵循著電腦結構的基本圖像,因此可以在最短的時間內,快速地學會其它的組合語言。敘述格式*01040203組譯器要求一行只能輸入一個指令,指令格式如下:標記:操作碼 運算元1,運算元2,…標記(選項)用來標示敘述的位置操作碼指出該指令想要執行的運算運算元則指出參與運算的數值大部分組合語言使用英文簡寫,當作操作碼,比如:操作碼名稱*1加法指令,英文全名為addition,組合語言簡寫為add。2分支指令,英文全名為branch,組合語言簡寫為b或br。3副程式呼叫指令,英文全名為jumptoasubroutine,組合語言簡寫為jsr。註解方式*為了增加這些指令的可讀性,設計師會適當地加入註解,來加以說明。註解符號比如:井字號(#)分號(;)雙斜線(//)12註解類型*註解可以是中文,也可以是英文。01通常有兩種類型:區塊註解說明每一段程式碼的目的;行註解則在每一行指令後,註記該行的細節。02區塊註解*##################################################### Searchlinkedlistoffreememoryblockstofindablock ## ofsizeNbytesorgreater.Pointertolistmustbein ## register3,andNmustbeinregister4.Thecodealso ## destroysthecontentsofregister5,whichisusedto ## walkthelist #####################################################行註解*ld r5,r3 #載入表單位址到r5loop_1: cmp r5,r0 #測試表單是否已經達末端bz notfnd #如果確實到達末端

您可能关注的文档

文档评论(0)

135****2083 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档