單片機的匯編指令_第1頁
單片機的匯編指令_第2頁
單片機的匯編指令_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、本文格式為Word版,下載可任意編輯單片機的匯編指令 學習了指令系統后就可以編寫一些簡潔的匯編程序。 一、匯編程序功能 匯編語言編寫的程序不能直接被機器執行,需要翻譯成機器碼組成的目標程序,這個過程就是匯編。目標文件雖然已經是二進制文件,但它還不能直接運行,需要通過連接程序把目標文件和其他目標文件連接在一起形成可執行文件。這個文件才能在機器上運行。因此,要在計算機上運行匯編語言程序的步驟是: (1)用編輯程序建立源文件ASM; (2)用匯編程序把ASM文件轉換成OBJ文件; (3)用連接程序LINK把OBJ文件轉換成EXE文件; (4)執行該程序。 二、匯編語言源程序的格式 匯編語言源程序有肯

2、定的書寫格式。一般由左到右按序至少包括下列四項內容: 名字操作操作數;解釋 名字項是指一個標號或變量。 操作項是一個操作碼的助記符,它可以是指令、偽指令或宏指令名。 操作數項由一個或多個表達式組成,它供應為執行所要求的操作而需要的信息。操作數項可以是常數、寄存器、標號、變量或由表達式組成。 解釋項用來說明程序或語句的功能。“;”為識別解釋項的開頭?!?;”也可以從一行的第一個字符開頭,此時整行都是解釋,常用來說明下面一段程序的功能。 上面四項中帶方括號的兩項是可選項。各項之間必需用“空格”(space)或“水平制表”(Tab)符隔開。 三、匯編程序設計的步驟與方法 1匯編語言程序設計的基本步驟

3、對于一個單片機應用系統,在經過系統總體方案論證、硬件組成設計基本定型的基礎上,即可著手應用軟件的設計。一個完整的程序大致可以分為以下幾個步驟: (1)設計任務的分析、確定有關算法或思路 (2)程序總體設計 (3)編寫匯編程序 (4)源程序的匯編與調試 以上所述的程序設計步驟僅僅為程序設計者建立一個完整的概念和過程。在實際的工作中應視應用軟件的實際需求、程序量的大小和簡單程度等,選擇合適的設計步驟和調試方法。 2匯編語言程序設計方法 單片機匯編語言應用程序的設計方法可以說不拘一格,敏捷多樣。不僅與功能要求、規模、簡單程度有關,同時也與開發人員的閱歷和習慣相關。 3匯編語言源程序的基本結構 一個單

4、片機匯編語言應用程序,無論其簡潔還是簡單,總是由簡潔程序、分支程序、循環程序、查表程序、子程序(包括中段服務程序)等結構化的程序段有機的組合而成。這是程序設計的基礎。 4劃分功能模塊 對于一個功能單一的簡潔程序,一般按其功能要求及操作挨次,合理的選擇上述結構化程序塊,自始至終的由上而下一氣呵成。 一個具有多種功能而較簡單的程序,則通常采納模塊化設計方法。即按不同功能劃分成若干功能相對獨立程序模塊,分別進行獨立的設計和測試,最終裝配成程序的整體,通過聯調,完成程序的整體設計。 5自頂而下逐步求精 自頂而下逐步求精的程序設計方法是首先設計主干程序,將從屬的或者子程序等用程序標志或過渡程序代替,在主

5、干程序完成的前提下再逐個充實從屬程序段或子程序,使程序的生成逐步綻開,逐步深化、求精,最終完成程序的設計。 子程序方式 近年來采納子程序的匯編語言程序設計較為普遍。這種設計方法的主導思想是將應用系統的多個主要功能,或者一個大的功能劃分為若干個子程序。主程序完成對系統的初始化、各功能模塊的子程序的調用等。 四、偽指令 匯編程序對用匯編語言寫的源程序進行匯編時,還要供應一些匯編用的掌握指令。這些指令在匯編時并不產生目標代碼,不影響程序的執行,所以稱為偽指令。常用的偽指令有: 1ORG指令 ORG指令的語法為:ORGexpression 這條指令用在一段源程序或數據塊的前面,說明緊隨在后面的程序段或

6、數據塊的起始地址。指令中的16位地址便是該起始地址值。 2DATA指令 DATA指令的語法為:SymbolDATAaddress 這條指令用于安排一個地址(范圍為00H0FFH)給某個特定的標識符。這個標識符不能被重定義。與DATA指令相近的還有BIT、CODE、DSEG、IDATA、XDATA它們的作用都是定義一個標識符,使用的方式也與DATA類似,只是它們安排的地址范圍與DATA不一樣。 3DB指令 DB指令的語法為:label:DBexpression,expression. 這條指令用于通知匯編程序用expression中的內容來初始化label開頭的存儲器單元。expression可

7、以是單個字節數字、用逗號分隔開的字節串或用雙引號所指示的字符串。方括號表示括號中的內容是可選的。 與DB指令相近的還有DW、DD、DS,它們的作用都是用來定義代碼段或者常數段內的數據,只是定義數據的大小不同。DB是定義一個字節,DW、DD分別用來定義一個字以及雙字,DS是在待存放的肯定數量的存儲單元前面定義應保留的存儲器單元數 4EQU指令 EQU指令的語法為:標號EQU操作數 EQU偽指令的功能是將操作數賦值于標號,使兩邊的兩個量等值。 5END指令 END指令的語法為:END 這條指令用在源程序的最終,表明源程序文件的結束,END指令后的指令將不會被匯編程序處理。在匯編源文件中這條指令是必

8、需的并且應當是原文件的最終一條指令。 五、匯編程序設計 1.簡潔程序設計 簡潔程序又稱挨次程序。這種程序的形式最簡潔,計算機執行程序的方式是“從頭到尾”,逐條執行指令語句,直到程序結束,除非用特別指令讓它跳轉,不然它會在PC掌握下執行。這是程序的最基本形式,任何程序都離不開這種形式。 例1:編寫1+2的程序 ORG0000H MOV30H,#02 MOVA,#01 ADDA,30H END 2.分支程序設計 在處理實際事務中,只用簡潔程序設計的方法是不夠的。由于大部分程序總包含有推斷、比較等狀況,這就需要分支程序。分支程序是利用條件轉移指令,使程序執行到某一指令后,依據條件(即上面運行的狀況)

9、是否滿意,來轉變程序執行的持續。下面舉兩個分支程序的例子。 例2:求單字節有符號二進制數的補碼。 ORG0000H CMPT:JNBACC.7,NCH;(A)0,不需轉換。 CPLA ADDA,#1 SETBACC.7 ;保存符號。 NCH:RET END 3.循環程序設計 在程序設計中,有時會遇到多次重復處理的問題,這就需要下面講的循環程序來完成。循環程序是強制CPU重復執行某一指令系列(程序段)的一種程序結構形式,凡是要重復執行的程序段都可以按循環結構設計。 循環程序一般由五部分組成: (1)初始化部分:為循環程序做預備。如:設置循環次數計數器的初值,地址指針置初值,為循環變量賦初值等。 (2)處理部分:為反復執行的程序段,是循環程序的實體。 (3)修改部分:每執行一次循環體后,對指針作一次修改,使指針指向下一數據所在位置,為進入下一輪處理做預備。 (4)掌握部分:依據循環次數計數器的狀態或循環條件,檢查循環是否能連續進行,若循環次數到或循環條件不滿意,應掌握退出循環,否則連續循環。 通常2、3、4部分又稱為循環體。 (5)結束部分:分析及存放執行結果。 例如:設有50個外部RAM單元要清“0”,即為循環次數

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論