




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、3.4 3.4 匯編語言程序的基本形式匯編語言程序的基本形式ORG / END / DB / DW / BITEQU / DATA程序框架程序框架pORG 0000Hp LJMP MAIN ;跳轉至主程序跳轉至主程序pORG 0003Hp LJMP INT0_INT ;跳轉至外部中斷跳轉至外部中斷0的中斷服務程序的中斷服務程序pORG 000BHp LJMP T0_INT ;跳轉至定時器跳轉至定時器0的中斷服務程序的中斷服務程序pORG 0013Hp LJMP INT1_INT ;跳轉至外部中斷跳轉至外部中斷1的中斷服務程序的中斷服務程序ppORG 0030HpMAIN: ;開始寫主程序開始寫
2、主程序p END中斷入口地址中斷入口地址主程序開始主程序開始3.4 3.4 匯編語言程序的基本形式匯編語言程序的基本形式p3.4.1 3.4.1 匯編語言程序設計概述匯編語言程序設計概述p3.4.2 3.4.2 匯編語言程序設計步驟匯編語言程序設計步驟p3.4.3 3.4.3 偽指令偽指令3.4.1 3.4.1 匯編語言程序設計概述匯編語言程序設計概述p單片機單片機n面向面向最底層最底層硬件硬件接口接口pPCPC機機n可以可以調用調用操作系統的操作系統的中斷功能或中斷功能或 WINDOWS WINDOWS 的的 API 函數函數匯編語言程序設計中的匯編語言程序設計中的 數數p計算機計算機只能只
3、能識別識別n二進制數二進制數機器指令機器指令n十六進制數、十進制數:不識別十六進制數、十進制數:不識別p機器指令機器指令/ /目標代碼目標代碼n由由 0/1 0/1 代碼組成的操作碼與操作數代碼組成的操作碼與操作數p二進制數二進制數n由由0/10/1組成、組成、“逢逢2 2進進1”1”的數制的數制p如:如:01011110B 01011110B (0 01 1后綴:后綴:B/b)p十六進制數十六進制數n二進制數的簡寫形式二進制數的簡寫形式便于讀寫記憶便于讀寫記憶p0 09 9,A AF F,后綴:,后綴:H/hpBCDBCD碼碼n用二進制數表達的用二進制數表達的十進制數十進制數p0 09 9表
4、示為表示為:0000:00001001B1001B,后綴,后綴: :B/b、H/h匯編語言編程基本規(guī)則匯編語言編程基本規(guī)則p匯編語言匯編語言n用用助記符描述助記符描述的的指令指令的集合的集合n匯編語言編寫的程序匯編語言編寫的程序借助編譯工具借助編譯工具編譯成為編譯成為目目標代碼標代碼,計算機才能識別,計算機才能識別p匯編匯編n把把 匯編指令編寫的程序匯編指令編寫的程序 轉換成機器程序:手工、自動轉換成機器程序:手工、自動p匯編程序匯編程序n即:編譯工具即:編譯工具匯編程序匯編程序 軟件軟件 工具工具工具軟件工具軟件應用程序應用程序p匯編語言指令格式匯編語言指令格式 標號標號:操作碼操作碼 目的
5、操作數目的操作數,源操作數源操作數;注釋注釋 n注意:注意:pAF AF 開頭的十六進制數前面必須添一個開頭的十六進制數前面必須添一個 “ “0”0”p二進制數必須帶后綴二進制數必須帶后綴“B”B”或或“b”b”p十六進制數必須帶后綴十六進制數必須帶后綴“H”H”或或“h”h”p十進制數的后綴是十進制數的后綴是“D”D”或或“d”d”或無或無3.4.2 3.4.2 匯編語言程序設計步驟匯編語言程序設計步驟p(1) (1) 分析題意,明確要求分析題意,明確要求p(2) (2) 確定算法確定算法p(3) (3) 畫程序流程圖,描述、說明解題步驟畫程序流程圖,描述、說明解題步驟p(4) (4) 分配
6、內存工作單元,確定程序與數據的存放地址分配內存工作單元,確定程序與數據的存放地址p(5) (5) 編寫源程序編寫源程序p(6) (6) 程序優(yōu)化程序優(yōu)化p(7) (7) 上機調試、修改和最后確定源程序上機調試、修改和最后確定源程序3.4.3 3.4.3 偽指令偽指令p機器語言機器語言n二進制二進制( (可縮寫為十六進制可縮寫為十六進制) )代碼代碼p表示指令和數據表示指令和數據p偽指令偽指令n不進行具體的操作,不進行具體的操作,沒有沒有機器碼機器碼n功能:控制匯編程序功能:控制匯編程序p告訴匯編程序在翻譯應用程序時告訴匯編程序在翻譯應用程序時 如:匯編時,確定哪些是數據、數據的狀態(tài),程如:匯編
7、時,確定哪些是數據、數據的狀態(tài),程序的起始和終了地址等等序的起始和終了地址等等告訴計算機告訴計算機如何如何操作操作以及做以及做何種何種操作操作( (真真) )指令指令p1 1定位偽指令定位偽指令 ORGORGp2 2匯編結束偽指令匯編結束偽指令 ENDENDp3 3字節(jié)字節(jié)數據定義偽指令數據定義偽指令 DBDBp4. 4. 字字數據定義偽指令數據定義偽指令 DWDWp5 5賦值偽指令賦值偽指令 EQUEQUp6 6位地址符號定義偽指令位地址符號定義偽指令 BITBITp7 7數據地址賦值偽指令數據地址賦值偽指令 DATADATAp8 8定義空間指令定義空間指令 DSDS1 1定位偽指令定位偽指
8、令 ORGORGp格式格式 ORG ORG 表達式表達式n表達式:表達式:1616進制進制地址或地址或已定義已定義的的標號地址標號地址p功能功能n說明下面的說明下面的程序段程序段或或數據段數據段存放的存放的起始起始地址地址p注意注意n若若源程序源程序首首省略省略 ORGORG,則,則p源程序段源程序段 從從 ROM 的的 0000H單元單元 開始開始存放存放n在一個源程序中在一個源程序中p可可多次多次用用ORGORGp地址值地址值由由小小到到大大依序排列,依序排列,不不允許空間允許空間重疊重疊2 2匯編結束偽指令匯編結束偽指令 ENDENDp格式格式 ENDENDp功能功能n遇到遇到ENDEN
9、D結束匯編結束匯編p注意注意nENDEND之后之后的程序將的程序將不處理不處理3 3字節(jié)字節(jié)數據定義偽指令數據定義偽指令 DBDBp格式格式 標號:標號: DB DB 字節(jié)數據表字節(jié)數據表n字節(jié)數據表字節(jié)數據表p數值數值0000FFH(FFH(十進制十進制/ /十六進制十六進制/ /二進制等二進制等) )負數負數:補碼補碼存入存入p字符字符引號引號(“ ”“ ”/ / )括起來,)括起來,ASCII碼碼存入存入p功能功能n從從標號標號指定指定地址地址開始開始,在,在ROM中存中存字節(jié)字節(jié)數據數據p 例例 ORGORG1000H1000HTAB:TAB: DBDB-2,A,100,30H-2,A
10、,100,30H-2-2的補碼的補碼字符字符AA的的ASCIIASCII碼碼0FEH41H64H30H100100地址增加4. 4. 字字數據定義偽指令數據定義偽指令 DWDWp格式格式 標號:標號: DW DW 字數據表字數據表p功能功能n在在ROMROM中,從中,從標號標號指定指定的的地址地址開始開始存存字字數據數據p注意注意n1616位位p高高8 8位位 低低地址單元地址單元p低低8 8位位 高高地址單元地址單元高高8 8位位 低低地址單元地址單元低低8 8位位 高高地址單元地址單元字數據存放時:字數據存放時:p 例例11ORGORG1000H1000HTAB:TAB: DW 1234H
11、,0ABH,10DW 1234H,0ABH,10 34H00H0ABH00H0AH12H與微機原理中與微機原理中相反相反!p 例例22ORGORG1000H1000HTAB:TAB: DW 1234H,0ABH,10DW 1234H,0ABH,10TA1:TA1: DWDWTABTABTA2:TA2: DWDWTA1,TA2TA1,TA2DBDB55H,TA255H,TA2 34H00H0ABH00H0AH12HTABTA110H00HTA210H06H10H08H55H08H注意注意5 5賦值偽指令賦值偽指令 EQUEQUp格式格式 符號名符號名 EQU EQU 表達式表達式p 例例 SGS
12、GEQUEQUR0R0;SG;SG與與R0R0等值等值DEDEEQUEQU40H40H;DE;DE與與40H40H等值等值MOVMOVA, SGA, SGMOVMOVR7, #DER7, #DE; ;(A A)(R0R0); ;(R7R7) #40H #40H6 6位位地址地址符號定義偽指令符號定義偽指令 BITBITp格式格式 符號名符號名 BIT BIT 位地址表達式位地址表達式n位地址表達式位地址表達式p絕對地址絕對地址 或或 符號地址符號地址p 例例 MNMNBITBITP1.7P1.7G5G5BITBIT02H02H匯編匯編后:位地址后:位地址 P1.7 MNP1.7 MN 位地址位
13、地址 02H G502H G5等價等價等價等價7 7數據數據地址地址賦值偽指令賦值偽指令 DATADATAp格式格式 符號名符號名 DATA DATA 數數 或或 表達式表達式pDATADATA 與與 EQUEQU 類似,類似,差別差別是是n定義的位置定義的位置pDATADATA:可以:可以 “ “ 先先 使用使用 后后 定義定義”pEQUEQU:必須:必須 “ “ 先先 定義定義 后后 使用使用”由具體仿真環(huán)境決定由具體仿真環(huán)境決定n符號名符號名pEQUEQU匯編符號匯編符號 符號名符號名數值數值 符號名符號名pDATADATA只能只能數據數據 符號名符號名表達式表達式( (可計算的可計算的) ) 符號名符號名X1 EQU R0X2 EQU 12HX3 DATA R1X4 DATA 15HX5 DATA 12H+13H X6EQU 12H+13HX7 DATA #12HX8 EQU #33H ?p 例例 不能是匯編符號不能是#8 8定義空間指令定義空間指令 DSDSp格式格式 標號:標號: DS DS 表達式表達式p功能功能n在匯編后,根據表達式的值,從指定地址開始在匯編后,根據表達式的值,從指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論