- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
80C51的組合語言程式設計2024-6-23*單片機應用系統由硬體系統和應用程式構成組合語言高級語言應用程式設計方法組合語言,生成的目標程式占記憶體空間少、運行速度快,具有效率高、即時性強。高級語言,對系統的功能描述與實現簡單,程式閱讀、修改和移植方便,適合於編寫複雜的程式。2024-6-23*4.1程式編制的方法和技巧4.1.1程式編制的步驟明確任務:功能要求、技術指標運行環境調研任務分析將實際問題轉化為電腦處理的程式演算法演算法比較與優化(記憶體需求與運行速度)演算法設計2024-6-23*流程描述流程圖符號“超級迴圈”框架2024-6-23*強化模組觀念使程式佔用空間減少、結構清晰迴圈初值和結束條件,避免“死機”現象副程式的現場保護(注意棧平衡、寄存器內容)程式模組(主程序模組、各種副程式模組)模組化優點:分塊設計、便於閱讀、調試方便4.1.2程式編制的方法和技巧採用迴圈和副程式對中斷副程式還有注意保護PSW的內容2024-6-23*4.1.3組合語言的語句格式非數字字元開頭,後跟字母、數字、“-”、“?”等不能用已定義的保留字(指令助記符、偽指令等)後跟英文冒號“:”Keil的彙編器A51可以識別的語句形式為:標號(即符號地址)[標號:]指令助記符[運算元1,][運算元2,][運算元3,][;注釋]指令助記符是指令功能的英文縮寫。2024-6-23*數據:二進位(B)十進位(D或省略D)十六進制(H),注意A~F開頭時要加“0”ASCII碼,如‘A’,‘1245’符號:符號名、標號或“$”(PC的當前值)運算式:由運算符和數據構成(見表4.1)運算元注釋英文分號“;”開頭2024-6-23*優先順序運算符功能運算式及其結果示例高↓↓↓↓↓↓↓低·()括弧4*(5+6)即44NOT、HIGH、LOW取反、取高位元組、取低位元組NOT55H即AAH;HIGH1234H即12H+、-正號、負號+5、-6*、/、MOD乘、除(取商)、取餘數17/5即3;17MOD5即2+、-加、減5+4即9;5-4=即1SHL、SHR左移、右移2SHL2即8;8SHR2即2AND、OR、XOR與、或、異或45HAND0FH即05H、、=、、=、=比較運算符MOVA,X8;若X8為真,則為MOVA,01H若X8為假,則為MOVA,00H表4.12024-6-23*4.2根源程式的編輯和彙編目標程式的產生過程如下圖:2024-6-23*4.2.1根源程式的編輯和彙編根源程式的編輯ORG0000HLJMPMAINORG0040HMAIN:MOVR7,#16MOVR0,#60HMOVA,#55HLOOP:MOV@R0,AINCR0DJNZR7,LOOPSJMP$END依據組合語言規則用好偽指令符號不用中文SJMP$用於調試以.ASM存盤2024-6-23*根源程式的彙編彙編根源程式轉為目標程式的過程叫彙編彙編通常在Windows下的集成開發環境完成用A51.EXE彙編生成.OBJ、.LIB及.LST目標程式的連接.OBJ、.LIB經BL51.EXE生成無擴展名的絕對地址目標檔絕對地址目標檔可以用於仿真器調試調試無誤的目標檔用OH51.EXE轉換為.HEX檔.HEX檔經編程器寫入單片機記憶體2024-6-23*4.2.2偽指令偽指令,也叫彙編命令。僅對彙編過程進行指示偽指令無對應的單片機可執行代碼起始地址設定偽指令ORGORG運算式運算式通常為十六進制地址,例:ORG8000HSTART:MOVA,#30H……ORG可多次使用,但地址值的順序要由小到大結束彙編偽指令ENDEND該偽指令位於根源程式的最後一行。2024-6-23*定義位元組數據表偽指令DB定義字數據表偽指令DW1000H[標號:]DB位元組數據表如:ORG1000HDB-2,-4,-6,8,10,18FEHFCHFAH08H0AH12
文档评论(0)