组合语言和程式范例

组合语言和程式范例

ID:27696720

大小:670.51 KB

页数:48页

时间:2018-12-03

组合语言和程式范例_第1页
组合语言和程式范例_第2页
组合语言和程式范例_第3页
组合语言和程式范例_第4页
组合语言和程式范例_第5页
资源描述:

《组合语言和程式范例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章 組合語言和程式範例1程式規劃語言高階語言低階語言2高階語言特點多對一翻譯硬體獨立性應用導向通用階層概念3低階語言特點一對一翻譯硬體相依性系統導向專用無階層概念4階層概念低階語言沒有明顯的階層概念。低階語言想要建立階層概念,必須逐步地建構自己的階層機制。電腦科學家AlanPerlis曾經說過:因為大多數的應用程式無法直接控制底層硬體,所以某些程式規劃若涉及硬體細節時,就表示:使用的程式語言必須是低階語言,但低階語言會增加整體程式規劃的複雜度。5專用術語組合語言低階語言專用於特定的處理器組譯器將組合

2、語言翻譯成電腦硬體所認識的二進位碼可與編譯器作一下比較6重要觀念組合語言是低階語言,可以指出各種不同處理器的特點,比如:指令集、運算元定址、暫存器、…等,因此存在多少種處理器,就會存在多少種組合語言。7組合語言想要把組合語言的程式,從某個處理器移植到另一個處理器時,必須改寫成另一種組合語言。還好!大部分的組合語言都遵循著電腦結構的基本圖像,因此可以在最短的時間內,快速地學會其它的組合語言。8敘述格式組譯器要求一行只能輸入一個指令,指令格式如下:標記:操作碼運算元1,運算元2,…標記(選項)用來標示敘述的

3、位置操作碼指出該指令想要執行的運算運算元則指出參與運算的數值9操作碼名稱大部分組合語言使用英文簡寫,當作操作碼,比如:加法指令,英文全名為addition,組合語言簡寫為add。分支指令,英文全名為branch,組合語言簡寫為b或br。副程式呼叫指令,英文全名為jumptoasubroutine,組合語言簡寫為jsr。10註解方式為了增加這些指令的可讀性,設計師會適當地加入註解,來加以說明。註解符號比如:井字號(#)分號(;)雙斜線(//)11註解類型註解可以是中文,也可以是英文。通常有兩種類型:區塊註

4、解說明每一段程式碼的目的;行註解則在每一行指令後,註記該行的細節。12區塊註解#####################################################Searchlinkedlistoffreememoryblockstofindablock##ofsizeNbytesorgreater.Pointertolistmustbein##register3,andNmustbeinregister4.Thecodealso##destroysthecontentsofreg

5、ister5,whichisusedto##walkthelist#####################################################13行註解ldr5,r3#載入表單位址到r5loop_1:cmpr5,r0#測試表單是否已經達末端bznotfnd#如果確實到達末端,則前往notfnd標記處14運算元順序不同的組合語言可能有不同的排列順序範例如下:load把r3內容複製到r5,可能有二種排列:ldr5,r3#右到左排列ldr3,r5#左到右排列程式設計師往往必須看過

6、組合語言手冊,才能瞭解某些指令的運算元順序。15運算元直譯組譯器會把組合語言翻譯成二進位碼。本質上,”左至右”直譯法和”右到左”直譯法並沒有什麼差別,因為在翻譯期間,再重新排序運算元,即可。16暫存器名稱暫存器名稱並沒有通用的標準。常見的方式是使用r(或$)字母開頭,隨後加上數字,來編號暫存器,比如,暫存器10的表示法:reg10r10R10$1017自行定義暫存器名稱有些更彈性,組譯器可以讓程式設計師自行選擇暫存器名稱範例:##自行定義暫存器名稱#r1register1#定義r1等於暫存器1r2reg

7、ister2#定義r2等於暫存器2r3register3#定義r3等於暫存器3r4register4#定義r4等於暫存器418有意義的暫存器名稱程式設計師不一定使用制式名稱(像是r6),可以自行命名對自己程式更有意義的暫存器名稱,如下:##自行定義連結串列程式的暫存器名稱#listhdregister6#定義listhd等於暫存器6listptrregister7#定義listptr等於暫存器719運算元型態大部分的處理器會提供多重運算元型態,比如:暫存器內容、立即值、記憶體參考、間接記憶體參考。運算元

8、型態可以使用特定的字元或符號,來指定記憶體或常數。movr2,r1#複製r1的內容到r2movr2,(r1)#把r1當作記憶體指標,並且把其指向#的記憶體內容複製到r220程式範例和習慣用語大部分高階語言具有明顯的型式要求但低階的組合語言沒有任何的限制組合語言空間廣泛,卻存有幾許繁瑣的枝微細節。有經驗的程式設計師瞭解:一致性和清晰度的重要性。21條件指令22另一種條件指令23有限迴圈指令24無限迴圈指令25程序呼叫指令26引數傳輸在組合語言

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。