單片機(jī)原理及應(yīng)用課件:04第四章 匯編語(yǔ)言程序設(shè)_第1頁(yè)
單片機(jī)原理及應(yīng)用課件:04第四章 匯編語(yǔ)言程序設(shè)_第2頁(yè)
單片機(jī)原理及應(yīng)用課件:04第四章 匯編語(yǔ)言程序設(shè)_第3頁(yè)
單片機(jī)原理及應(yīng)用課件:04第四章 匯編語(yǔ)言程序設(shè)_第4頁(yè)
單片機(jī)原理及應(yīng)用課件:04第四章 匯編語(yǔ)言程序設(shè)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第四章 匯編語(yǔ)言程序設(shè)計(jì)4.1.1 高級(jí)語(yǔ)言、匯編語(yǔ)言、機(jī)器語(yǔ)言高級(jí)語(yǔ)言:接近于人的常用語(yǔ)言形式,是一種面向過(guò)程而獨(dú)立于機(jī)器的通用語(yǔ)言。如C 語(yǔ)言。void main()char a=1;char b=2;char c;c=a+b;4.1.1 高級(jí)語(yǔ)言、匯編語(yǔ)言、機(jī)器語(yǔ)言匯編語(yǔ)言:它是一種符號(hào)語(yǔ)言,是一種面向機(jī)器的語(yǔ)言。ORG 0000HMOV A,01HADD A,02HMOV R0,ASJMP $END4.1.1 高級(jí)語(yǔ)言、匯編語(yǔ)言、機(jī)器語(yǔ)言機(jī)器語(yǔ)言:是用二進(jìn)制0,1 表示指令和數(shù)據(jù)的最原始的程序設(shè)計(jì)語(yǔ)言。RAW DATA: E5 01 25 02 F8 80 FEDisassembled

2、 DATA:0000E501MOV A,01H 00022502ADD A,02H 0004F8MOV R0,A 000580FESJMP $ 4.1.1 高級(jí)語(yǔ)言、匯編語(yǔ)言、機(jī)器語(yǔ)言選擇程序設(shè)計(jì)語(yǔ)言類型的原則是什么?4.1.2 程序的編譯、匯編和調(diào)試4.1.2 程序的編譯、匯編和調(diào)試4.1.3 程序設(shè)計(jì)的基本過(guò)程分析問(wèn)題確定算法設(shè)計(jì)流程分配資源編寫(xiě)源程序調(diào)試、修改4.1.4匯編語(yǔ)言的基本格式標(biāo)號(hào):操作碼 第一操作數(shù)/第二操作數(shù) ;注釋例1: 計(jì)算1+2ORG 0200HSTART: MOVA, #1; A 1(1 Cycle)ADDA, #2 ; A A2(1 Cycle)MOVR1, A

3、; R1 A(1 Cycle)SJMPSTARTEND4.1.4匯編語(yǔ)言的基本格式標(biāo)號(hào)的作用: 用于配合轉(zhuǎn)移指令的執(zhí)行和子程序的調(diào)用。標(biāo)號(hào)的命名方法:1)由18 個(gè)字母或數(shù)字組成。標(biāo)號(hào)必須以字母開(kāi)頭。 2)不可使用關(guān)鍵字,如助記符、寄存器名。 3)建議使用具有描述性的符號(hào)。操作數(shù)段 數(shù)字必須以09開(kāi)頭,便于區(qū)分?jǐn)?shù)字和字符串 16進(jìn)制數(shù)非09開(kāi)頭的數(shù)字前要加數(shù)字0,例如: MOV A, #0A4H4.1.4匯編語(yǔ)言的基本格式4.1.5 偽指令的作用和使用方法偽指令 寫(xiě)在源文件中,用于控制匯編過(guò)程的命令。如設(shè)置程序或數(shù)據(jù)存儲(chǔ)區(qū)的地址、定義符號(hào)、判斷程序是否結(jié)束等。 沒(méi)有對(duì)應(yīng)的機(jī)器碼,它是不可執(zhí)行的

4、指令。4.1.5 偽指令的作用和使用方法1、ORG (Origin) 是起點(diǎn),指定語(yǔ)句行裝載的起始地址。 其格式為:ORG 16位地址例如, ORG 2000HSTART:MOV A, #40H 上例說(shuō)明程序的起始地址是2000H,第一條指令就從2000H開(kāi)始存放。4.1.5 偽指令的作用和使用方法在一個(gè)源程序中,可以多次使用ORG指令,以規(guī)定不同程序段的起始位置,但所規(guī)定的地址應(yīng)是從小到大,不允許有重疊,即不同的程序段之間不能有重疊。若ORG指令不帶操作數(shù),則匯編后目標(biāo)程序的起始地址為0000H。4.1.5 偽指令的作用和使用方法2、END 是匯編語(yǔ)言源程序結(jié)束的偽指令,表示源程序結(jié)束。在E

5、ND以后所寫(xiě)的指令,編程序都不予處理。 一個(gè)源程序只能有一個(gè)END指令,放在程序的末尾。4.1.5 偽指令的作用和使用方法3、DB(Define Byte) 定義字節(jié)數(shù)據(jù)。它的作用是,從指定的地址單元開(kāi)始,定義數(shù)據(jù)或ASCII碼字符,常用于定義數(shù)據(jù)常數(shù)表。 格式如下: 標(biāo)號(hào); DB 字節(jié)常數(shù)表 其中方括號(hào)的內(nèi)容是任選項(xiàng)。例如: ORG 2000HTAB:DB 14H,26,A DB 0AFH,BC匯編結(jié)果:(2000H)14H (2001H)1AH(2002H)41H (2003H)= AFH(2004H)42H (2005H)43H2000H14H2001H1AH2002H41H2003HA

6、FH2004H42H2005H43H4.1.5 偽指令的作用和使用方法4、DW: 定義字?jǐn)?shù)據(jù)。從指定的地址單元開(kāi)始,定義若干個(gè)字常數(shù),常用于定義地址表。 格式如下:標(biāo)號(hào): DW 字常數(shù)表 一個(gè)字占兩個(gè)存儲(chǔ)單元,其中高字節(jié)數(shù)存入低位地址,低字節(jié)數(shù)存入高位地址,即順序存放。 例如, ORG 2000HTAB: DW 7423H,00ABH,20匯編結(jié)果: (2000H)74H (2001H)23H(2002H)00H (2003H)=ABH(2004H)00H (2005H)14H2000H74H2001H23H2002H00H2003HABH2004H00H2005H14H4.1.5 偽指令的作

7、用和使用方法5、DS(Define Store) 定義存儲(chǔ)區(qū)。從指定的地址開(kāi)始,保留一定數(shù)量的內(nèi)存單元,以備程序使用。其區(qū)域的大小由指令的操作數(shù)確定。 格式如下: 標(biāo)號(hào): DS 表達(dá)式 表達(dá)式一般是數(shù)值,即要保留的內(nèi)存單元個(gè)數(shù)。例如: ORG 1000HDS 5DB 23H匯編結(jié)果:從地址1000H開(kāi)始,保留5個(gè)字節(jié)的內(nèi)存單元,而(1005H)=231000H-1001H-1002H-1003H-1004H-1005H23H等同于 C 中的 malloc 函數(shù)。4.1.5 偽指令的作用和使用方法6、BIT, 位地址符號(hào)指令。把位地址賦予繪所規(guī)定的字符名稱,常用于定義位符號(hào)地址。 格式如下: 字

8、符名稱 BIT 位地址例如, AA BIT P1.0 BB BIT P2.04.1.5 偽指令的作用和使用方法7、EQU(Equate) 賦值(或等值)指令。 把操作數(shù)段中的地址或數(shù)據(jù)賦值給標(biāo)號(hào)。 賦值后的標(biāo)號(hào),其值在整個(gè)程序中不改變,可多次使用。格式如下: 標(biāo)號(hào)(字符名稱) EQU 數(shù)或匯編符號(hào) 注意,標(biāo)號(hào)與EQU之間不能用“:”來(lái)作分隔符。 例如: COUNTEQU16H ;COUNT=16H ADDREQU3000H ;ADDR=3000H MOV A,COUNT ;A=16H 4.1.5 偽指令的作用和使用方法8、DATA 數(shù)據(jù)地址賦值指令。 將數(shù)據(jù)地址或代碼地址賦予給所規(guī)定的標(biāo)號(hào)。

9、格式如下: 字符名稱DATA 表達(dá)式例如,MN DATA 1000H匯編后,MN的值為1000H。 DATA指令在程序中常用來(lái)定義數(shù)據(jù)地址Keil 集成編譯環(huán)境介紹1. Keil 具有的基本功能 文件編輯、編譯/匯編、調(diào)試、單元內(nèi)容觀察 2. 工程創(chuàng)建、源文件創(chuàng)建、編輯 3. 匯編、連接、裝載 4. 調(diào)試 單步、斷點(diǎn)、執(zhí)行到當(dāng)前光標(biāo)處、全速運(yùn)行 系統(tǒng)復(fù)位 “踏步”指令,及其作用 5. 觀察寄存器、存儲(chǔ)器空間內(nèi)容 1)通用寄存器 2)SFR 區(qū) 3)DATA 區(qū):片內(nèi) RAM 區(qū)(00H7FH), 以及 SFR 區(qū) 4)IDATA 區(qū):片內(nèi) RAM 區(qū)(00H7FH, 80HFFH) 5)COD

10、E:代碼區(qū) 6)XDATA:片外數(shù)據(jù)區(qū) 7)PSW各標(biāo)志位的觀察 6. 觀察端口內(nèi)容 端口狀態(tài)輸入 端口狀態(tài)輸出 Keil 集成編譯環(huán)境介紹7. 集成環(huán)境設(shè)置 1)器件型號(hào)選擇 2)Debug 方式選擇 3)系統(tǒng)時(shí)鐘設(shè)置 8. 代碼執(zhí)行速度分析 9. 代碼測(cè)試 選擇的測(cè)試樣本數(shù)據(jù)應(yīng)具有完整性。Keil 集成編譯環(huán)境介紹程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)順序分支循環(huán)子程序4.2 順序結(jié)構(gòu)順序結(jié)構(gòu)P75 例 4. 1:編寫(xiě)程序?qū)崿F(xiàn)兩個(gè) 16bits 無(wú)符號(hào)數(shù)的加法。 X+Y = 0 x5678 + 0 x9876 4.2 順序結(jié)構(gòu)1、基本原理分析 1)分兩次完成,每次完成 8bits 加法。 使用 ADD 和 ADDC 指令 2)采用間接尋址方式,讀取加數(shù)和被加數(shù),以及保存結(jié)果。2、資源分配 33H、32H:存放被加數(shù),以及結(jié)果 37H、36H:存放加數(shù) 22H.0 : 存放和的最高位 R0、R1:數(shù)據(jù)指針 4.2 順序結(jié)構(gòu)3. 流程圖4. 源程序5. 程序調(diào)試、測(cè)試 單步、斷點(diǎn)調(diào)試方法 4.2 順序結(jié)構(gòu)思考: 1. 保存和的最高位還有哪些方法? 2. 如何實(shí)現(xiàn)多字節(jié)數(shù)的減法? 3. 如何實(shí)現(xiàn)多字節(jié) BCD 碼數(shù)的加法? 以及減法? 4. 匯編語(yǔ)言與 C 語(yǔ)言在實(shí)現(xiàn)方式上有什么不同? 4.2 順序結(jié)構(gòu)#include unsigned int data a =

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論