單片機(jī)原理,接口及應(yīng)用---第2章 51系列單片機(jī)的指令系統(tǒng)_第1頁
單片機(jī)原理,接口及應(yīng)用---第2章 51系列單片機(jī)的指令系統(tǒng)_第2頁
單片機(jī)原理,接口及應(yīng)用---第2章 51系列單片機(jī)的指令系統(tǒng)_第3頁
單片機(jī)原理,接口及應(yīng)用---第2章 51系列單片機(jī)的指令系統(tǒng)_第4頁
單片機(jī)原理,接口及應(yīng)用---第2章 51系列單片機(jī)的指令系統(tǒng)_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理、接口及應(yīng)用單片機(jī)原理、接口及應(yīng)用-嵌入式系統(tǒng)技術(shù)基礎(chǔ)嵌入式系統(tǒng)技術(shù)基礎(chǔ)第2章 51系列單片機(jī)的指令系統(tǒng)2.1匯編語言概述 2.2指令系統(tǒng)簡介 2.1匯編語言概述 1. 匯編語言指令格式匯編語言指令格式 2.描述操作數(shù)的簡記符號 3.尋址方式2.2指令系統(tǒng)簡介 匯編程序機(jī)器語言編譯、解釋機(jī)器語言eg: MOV R0 ,#data01111000 #datal計算機(jī)的指令系統(tǒng)是一套控制計算機(jī)操作的編碼計算機(jī)的指令系統(tǒng)是一套控制計算機(jī)操作的編碼機(jī)器語言機(jī)器語言。計算機(jī)計算機(jī)只能識別和執(zhí)行機(jī)器語言的指令只能識別和執(zhí)行機(jī)器語言的指令。l但機(jī)器語言實(shí)在太枯燥,太難記憶了。但機(jī)器語言實(shí)在太枯燥,

2、太難記憶了。匯編語言,高級語言匯編語言,高級語言匯編語言程序需要經(jīng)過編譯程序翻譯成機(jī)器碼,讓計算機(jī)執(zhí)行。匯編語言是用助記符助記符形式表示機(jī)器指令指令的一種計算機(jī)語言匯編語言程序需要經(jīng)過編譯程序翻譯成機(jī)器碼,讓計算機(jī)執(zhí)行。匯編語言編程的優(yōu)點(diǎn)是代碼精煉、執(zhí)行速度快,但不便于編寫較復(fù)雜的程序。本章學(xué)習(xí)目的是了解匯編語言的規(guī)則,要求借助指令手冊能讀懂一般匯編程序。一條匯編語言指令中最多包含四個區(qū)段,其一般格式為: 標(biāo)號標(biāo)號: 操作碼操作碼 操作數(shù)操作數(shù) ;注釋注釋 匯編語言指令格式匯編語言指令格式 標(biāo)號標(biāo)號區(qū)段由用戶定義的16個字符組成,以英文字母開始(不區(qū)分大小寫 ),冒號結(jié)尾。.0122H0223

3、H0124H. 35H 77H F4H 74H 12HROM標(biāo)號代表當(dāng)前指令的首字節(jié)在存儲器單元中的存放地址,可以省略。START: MOV A,#12H ;立即數(shù)12HA SETB P1.0 ;P1.01 CJNE A,R0, START ;若AR0,轉(zhuǎn)START 標(biāo)號標(biāo)號: 操作碼操作碼 操作數(shù)操作數(shù) ;注釋注釋操作碼操作碼區(qū)段是指令的核心部分,不能省略,它由便于記憶的助記字符組成。在MCS-51單片機(jī)中共有42種操作碼,每個操作碼為25個字符,不區(qū)分大小寫。START: MOV A,#12H ;立即數(shù)12HA SETB P1.0 ;P1.01 CJNE A,R0, START ;若AR0

4、,轉(zhuǎn)START 舉例: 標(biāo)號標(biāo)號: 操作碼操作碼 操作數(shù)操作數(shù) ;注釋注釋操作數(shù)操作數(shù)區(qū)段是指令要操作的對象。根據(jù)指令的不同功能,操作數(shù)可以是3個、2個、1個或沒有操作數(shù);操作數(shù)大于1時,操作數(shù)之間用英文逗號隔開,不區(qū)分大小寫。START: MOV A,#12H ;立即數(shù)12HA SETB P1.0 ;P1.01 CJNE A,R0, START ;若AR0,轉(zhuǎn)START 舉例: 標(biāo)號標(biāo)號: 操作碼操作碼 操作數(shù)操作數(shù) ;注釋注釋注釋注釋區(qū)段是對指令的解釋性說明,用以提高程序的可讀性,可以用任何文字描述,以英文分號開始,無需結(jié)束符號,可以省略。START: MOV A,#12H ;立即數(shù)12H

5、A SETB P1.0 ;P1.01 CJNE A,R0, START ;若AR0,轉(zhuǎn)START 舉例:2.1匯編語言概述 1. 匯編語言指令格式 2.描述操作數(shù)的簡記符號描述操作數(shù)的簡記符號 3.尋址方式2.2指令系統(tǒng)簡介 單片機(jī)指令手冊中,每條指令的操作數(shù)都以簡記符號表示。 操作數(shù)的簡記符號 指令表舉例MOV A,RnMOV A,R0 MOV A,R4 MOV A,RiMOV A,R0 MOV A,R1MOV A,#dataMOV A,#35H MOV A,#0111 0110BMOV A,directMOV A,20H MOV A,DPLMOV DPTR,#data16MOV DPTR,

6、#1305H MOV DPTR,#65000 2.1匯編語言概述 1. 匯編語言指令格式 2.描述操作數(shù)的簡記符號 3.尋址方式尋址方式2.2指令系統(tǒng)簡介 尋址方式尋找操作數(shù)所在地址單元的方式。尋址方式越多,計算機(jī)的功能就越強(qiáng)。51單片機(jī)共有七種尋址方式:直接尋址、寄存器尋址、寄存直接尋址、寄存器尋址、寄存器間接尋址、立即尋址、變址尋址、位尋址、相對尋址器間接尋址、立即尋址、變址尋址、位尋址、相對尋址。 本節(jié)的學(xué)習(xí)內(nèi)容,在學(xué)完指令系統(tǒng)后還應(yīng)該再重復(fù)學(xué)習(xí),這樣會更易于理解。(1)直接尋址)直接尋址 MOV A,68H ;A(68H),機(jī)器碼為E568H 對于片內(nèi)低128字節(jié)單元可在指令中直接給出

7、單元地址(如MOV A,68H),但對于特殊功能寄存器(位于高128字節(jié)區(qū))除了可用其單元地址給出外,還可用它們的符號形式給出。如: MOV A,0D0H ;A(0D0H),機(jī)器碼為E5D0HMOV A,PSW ;APSW,機(jī)器碼為E5D0H 它們的形式雖然不同,但匯編后的機(jī)器碼是完全一樣的,均為E5D0H。為增強(qiáng)所編程序的可讀性,一般提倡盡量采用后者方式。 直接尋址圖例直接尋址圖例 MOV A , 3AH(2)寄存器尋址)寄存器尋址 指令中以通用寄存器的形式表示操作數(shù)的尋址方式稱為寄存器尋址,這里的通用寄存器特指:A、B、DPTR、R0R7和CY。 MOV A,R1 ;AR1MUL AB ;

8、BAAB,乘積高位存B,低位存AINC DPTR ;DPTRDPTR+1注意:B寄存器僅在乘法和除法指令中屬于寄存器尋址,在其它指令中則屬于直接尋址。此外,除上面所指出的幾個寄存器外,其它特殊功能寄存器也一律為直接尋址 A 可以寄存器尋址又可以直接尋址,直接尋址時寫作可以寄存器尋址又可以直接尋址,直接尋址時寫作ACC 寄存器尋址圖例寄存器尋址圖例 INC R0#直接尋址和寄存器尋址的差別直接尋址和寄存器尋址的差別l直接尋址:操作數(shù)所在的地址(1個字節(jié))出 現(xiàn)在指令碼中l(wèi)寄存器尋址:寄存器編碼(少于3位2進(jìn)制數(shù)) 出現(xiàn)在指令碼中,(機(jī)器碼短,執(zhí) 行快)寄存器間接尋址是二次尋找操作數(shù)地址的尋址方式

9、。 (3)寄存器間接尋址)寄存器間接尋址 由指令指出某一個寄存器的內(nèi)容作為操作數(shù)地址的尋址方式,稱為寄存器間接尋址方式。計算機(jī)執(zhí)行這類指令時,它首先根據(jù)指令中的寄存器名稱找到所需要的操作數(shù)地址,再由操作數(shù)地址找到操作數(shù),并完成相應(yīng)操作。 寄存器間接尋址使用的寄存器叫做間址寄存器,用R0、R1和DPTR表示。 MOV A,R0 ;尋址范圍為256B MOVX A,DPTR ;尋址范圍為64KB 寄存器間接尋址寄存器間接尋址圖例圖例 ANL A,R1第第3 3章章 MCS-51系列單片機(jī)指令系統(tǒng)MOV A,#0E2H;A#0E2HMOV DPTR,#2000H;DPTR#2000H(4)立即尋址)

10、立即尋址 如果操作數(shù)在指令中直接給出,并與操作碼的機(jī)器碼一起存放在程序存儲器內(nèi),則程序執(zhí)行時便可立即得到,而不需要另外尋找,故稱為立即尋址。該操作數(shù)稱為立即數(shù),并在其前冠以“#”號,以表示非地址。立即數(shù)可以是8位或16位二進(jìn)制數(shù),一般用十六進(jìn)制數(shù)表示 匯編語言規(guī)定,凡以字母開始的十六進(jìn)制數(shù)(立即數(shù)或地址),在最高位前要加0以便與變量名區(qū)分,因而上述數(shù)據(jù)E2H要寫為0E2H。 立即尋址圖例立即尋址圖例 MOV DPTR,1234H第第3 3章章 MCS-51系列單片機(jī)指令系統(tǒng)MOVC A,A+DPTR;A(A+DPTR)MOVC A,A+PC ;A(A+PC)JMP A+DPTR;PC(A+DP

11、TR)(5)變址尋址)變址尋址 變址尋址是以DPTR或PC作為基址寄存器,以累加器A作為變址寄存器,將基址寄存器與變址寄存器的內(nèi)容相加形成操作數(shù)的實(shí)際地址。51指令集中采用變址尋址的指令共有三條:A為偏移量寄存器,DPTR或PC為變址寄存器。程序執(zhí)行時,A中的無符號數(shù)先與DPTR或PC中的內(nèi)容相加,形成訪問地址,再通過寄存器間接尋址方式取得實(shí)際操作數(shù)。其中前兩條是程序存儲器讀指令,后一條是無條件轉(zhuǎn)移指令。 變址尋址圖例變址尋址圖例 MOVC A,ADPTR第第3 3章章 MCS-51系列單片機(jī)指令系統(tǒng)MOV C,7FH ;Cy(7FH),其中,7FH是位地址MOV C,2FH.7 ;Cy(7F

12、H),其中,2FH.7是位地址MOV C,ACC.7 ;CyACC.7,其中,ACC.7是位地址(6)位尋址)位尋址 51單片機(jī)片內(nèi)RAM里的部分存儲單元和某些特殊功能寄存器除了具有字節(jié)地址外,還具有位地址。這些單元既可以采用字節(jié)方式訪問,也可采用位地址方式訪問。指令中直接給出操作數(shù)所在單元位地址的尋址方式稱為位尋址,例如: SJMP START ;PCPC+2+rel(7)相對尋址)相對尋址 相對尋址方式是為了程序的相對轉(zhuǎn)移而設(shè)計的,它以PC的內(nèi)容為基址,與指令中給出的偏移量rel進(jìn)行合成,得到轉(zhuǎn)移目的地址,進(jìn)而改變PC值實(shí)現(xiàn)程序的跳轉(zhuǎn)功能。該指令的功能是將PC值修改為START語句行所在的

13、首地址,從而使程序從START語句繼續(xù)執(zhí)行,該指令的的原形是SJMP rel。注意,由于rel只能形成-128+127字節(jié)的跳轉(zhuǎn),故編程時必須考慮當(dāng)前行與被跳轉(zhuǎn)行之間的地址范圍不能超限。 相對尋址相對尋址圖例圖例 目的地址轉(zhuǎn)移指令所在地址轉(zhuǎn)移指令字節(jié)數(shù)目的地址轉(zhuǎn)移指令所在地址轉(zhuǎn)移指令字節(jié)數(shù)rel JC 80H第第3 3章章 MCS-51系列單片機(jī)指令系統(tǒng)PC+2+rel=1000H+2+80H =1002H-128=0F82H1000000010000000(-128) 求補(bǔ)碼:1111111110000000PC=1002H+FF80H=0F82H尋址方式尋址空間立即尋址程序存儲器ROM直接

14、尋址片內(nèi)RAM低128字節(jié)和特殊功能寄存器SFR寄存器尋址工作寄存器R0-R7,A,B,CY,DPTR寄存器間接尋址片內(nèi)低128字節(jié)R0,R1),SP(僅PUSH,POP),片外RAM(低256R0,R1,64K DPTR)變址尋址程序存儲器(A+PC,A+DPTR)相對尋址程序存儲器256字節(jié)范圍(PC+偏移量)位尋址片內(nèi)RAM的20H2FH字節(jié)地址和部分特殊功能寄存器SFR7種尋址方式及尋址空間如下表。種尋址方式及尋址空間如下表。2.1匯編語言概述 2.2指令系統(tǒng)簡介 1.數(shù)據(jù)傳送與交換類指令 2.算術(shù)運(yùn)算類指令 3.邏輯運(yùn)算及移位類指令 4.控制轉(zhuǎn)移類指令 5 .位操作指令計算機(jī)中全部指

15、令的集合稱為指令系統(tǒng)。MCS-51單片機(jī)指令系統(tǒng)共有111條指令,按功能可劃分為四大類: 數(shù)據(jù)傳送與交換類 算術(shù)運(yùn)算類 邏輯運(yùn)算類 轉(zhuǎn)移控制類(位操作也可作為第五類考慮)2.1匯編語言概述 2.2指令系統(tǒng)簡介 1.數(shù)據(jù)傳送與交換類指令數(shù)據(jù)傳送與交換類指令 2.算術(shù)運(yùn)算類指令 3.邏輯運(yùn)算及移位類指令 4.控制轉(zhuǎn)移類指令 5.位操作指令數(shù)據(jù)傳送與交換類指令數(shù)據(jù)傳送與交換類指令可實(shí)現(xiàn)RAM、SFR和ROM之間的數(shù)據(jù)互傳或交換,共31條。數(shù)據(jù)傳送類指令的基本通式為: , 它表示將源單元(src)的內(nèi)容傳送給目的單元 (dest) ,傳送后源單元中內(nèi)容不變。transfer是傳送指令的操作碼: MOV

16、在片內(nèi)RAM范圍內(nèi)傳送 MOVX在片外RAM范圍內(nèi)傳送 MOVC在全部ROM范圍內(nèi)傳送傳送類指令中的兩類特殊指令 交換類使操作數(shù)的內(nèi)容互換(XCH、XCHD、SWAP) 堆棧類使操作數(shù)的內(nèi)容進(jìn)出堆棧(PUSH 、POP)0-3舉例1:分析如下程序段并指出運(yùn)行后20H和21H單元的結(jié)果 MOV R0,#20H MOV R0,#38H MOV 21H,#48H 結(jié)果:(20H)=38H,(21H)=48H將data送入Ri的內(nèi)容所指向的單元的內(nèi)容所指向的單元中(寄存器間接尋址) R0=20H MOV R0,#38H 等價于MOV 20H,#38H ;MOV Rn,#data;MOV Ri,#dat

17、a;MOV direct,#data;Rndata;(R0)data;directdata寄存器間接尋址用到的寄存器有Ri、DPTR和SP,其中i = 0 或1;可以用類似(R0)表示R0舉例2:已知片內(nèi)RAM 38H單元中的數(shù)為12H,試分析如下程序段并指出其功能注意:片內(nèi)RAM 38H單元中數(shù)不能直接傳送到外部RAM的1818H單元,必須經(jīng)過累加器A的轉(zhuǎn)傳。功能:將片內(nèi)RAM 38H單元中的數(shù)12H傳送到外部RAM的1818H單元中。 MOV R0,#38H MOV DPTR,#1818HMOV A,R0MOVX DPTR,A; Rndata; DPTR data16; A(Ri); (D

18、PTR)AR0=38HDPTR =1818HA(38H)=12H(1818H)=12H舉例3:試分析如下程序段并指出其功能MOV DPTR,#120H MOV A,#5 MOVC A,A+DPTRMOV 30H,A; DPTR data16; Adata; A(A+DPTR); (30H)A; DPTR =120H; A=5; A(125H); (30H)A功能:將ROM 125H地址中的數(shù)取出送到片內(nèi)RAM的30H單元中。意義:采用DPTR作為基址寄存器,A作為變址寄存器,查找事先存放在ROM數(shù)據(jù)塊中的數(shù)據(jù)值,其中DPTR指向數(shù)據(jù)塊的首地址。舉例3”:在如下所示的ROM 120H地址開始的1

19、0個單元中存放著整數(shù)09的十進(jìn)制平方值,編寫一查表程序段,計算整數(shù)5的平方值,并將結(jié)果送入RAM 30單元。 執(zhí)行結(jié)果:(30H)=25 ROM地址數(shù)值0128H640127H490126H360125H250124H160123H090122H040121H010120H00查表做法:1、在ROM中設(shè)置一數(shù)據(jù)塊;2、將數(shù)據(jù)塊的首地址賦值給DPTR;3、將欲查的數(shù)存入累加器A;4、執(zhí)行MOV A,A+DPTR查表指令;5、查表后的結(jié)果送入指定單元。 舉例4:已知70H中有一個數(shù),其值在09范圍內(nèi),編制程序把它變?yōu)橄鄳?yīng)的ASCII碼。解:解:09的ASCII碼為30H39H。利用半字節(jié)交換指令可

20、以把09的數(shù)裝配成相應(yīng)的ASCII碼。 MOV R0,#70H; R070H MOV A,#30H; A30H XCHD A,R0; A中形成相應(yīng)ASCII碼 MOV R0,A; ASCII碼送回70H單元0-3數(shù)據(jù)傳送對象和方向示意圖Cbit虛線框代表片內(nèi)RAM范圍立即數(shù)和ROM地址只能作為源操作數(shù)ROM和外部RAM只能與A進(jìn)行往來PUSH和POP只能對direct進(jìn)行操作位傳送只能在C與bit間進(jìn)行2.1匯編語言概述 2.2指令系統(tǒng)簡介 1.數(shù)據(jù)傳送與交換類指令 2.算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令 3.邏輯運(yùn)算及移位類指令 4.控制轉(zhuǎn)移類指令 5 .位操作指令算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令共有

21、24條,包括加、減、乘、除和增減1運(yùn)算等。特點(diǎn):算術(shù)運(yùn)算指令一般對程序狀態(tài)字PSW中的CY、AC、OV三個標(biāo)志位有影響。舉例5:試解讀如下程序并說明其功能 MOVA,#34H ADD A,#0E7H MOV40H,A MOVA,#12H ADDCA,#0FH MOV41H,A; A 34H; A= A+data; (40H) A; A 12H; A= A+data+CY; (41H) AA =34HA= 1BH; C=1H(40H) = 1BHA = 12HA= 22H(41H) =22H功能:1234H與0FE7H兩個16位數(shù)相加,結(jié)果為221BH。第一步先對低8位相加,結(jié)果存入40H單元;

22、第二步再對高8位相加,結(jié)果存入41H單元,其中第二步為帶進(jìn)位相加。 注意:對于用十六進(jìn)制數(shù)表示的數(shù)字或地址,若其最高位是AF,則需在最高位前加零(與“標(biāo)號” 或“標(biāo)示符”區(qū)分)。舉例6:試解讀如下程序并說明其功能 CLRCMOV A,#34HSUBB A,#0E7HMOV 40H,AMOV A,#12HSUBB A,#0FHMOV 41H,A; CY位清零; A 34H; AA -0E7H-CY; (40H) A; A 12H; AA -0FH-CY; (41H) AC=0A=34HA=4D;C=1; (40H) =4D; A =12H; A= 02H; (41H) = 02H功能:1234H

23、與0FE7H兩個16位數(shù)相減,結(jié)果為24DH。第一步先對低8位相減,結(jié)果存入40H單元;第二步再對高8位相減,結(jié)果存入41H單元,兩步減法都是帶借位相減。 注意:運(yùn)算時需要首先清理CY位。 舉例7:試解讀如下程序并說明其功能MOVA,#17HMOVB,#68HMULABMOV30H,AMOV31H,B; A17H; B68H; ABBA; (30H) A; (31H) B; A=17H; B=68H; B= 9;A=58H; (30H) 58H; (31H) 09H功能:計算17H68H的程序,其中乘積低8位送A,高8位送B。結(jié)果為958H,高8位送入31H單元,低8位送入30H單元。算術(shù)運(yùn)算

24、指令快捷記憶法 規(guī)律:除形成閉環(huán)連線的運(yùn)算外(只有1個操作數(shù)),其余運(yùn)算都要以A為目的操作數(shù)。2.1匯編語言概述 2.2指令系統(tǒng)簡介 1.數(shù)據(jù)傳送與交換類指令 2.算術(shù)運(yùn)算類指令 3.邏輯運(yùn)算及移位類指令邏輯運(yùn)算及移位類指令 4.控制轉(zhuǎn)移類指令 5 .位操作指令邏輯運(yùn)算及移位類指令邏輯運(yùn)算及移位類指令共有34條,可以實(shí)現(xiàn)二進(jìn)制數(shù)的與、或、異或、求反、置1、清零、移位等邏輯操作。舉例8:試解讀如下程序并說明其功能編制程序,將M1單元中數(shù)字09的ASCII碼變?yōu)橄鄳?yīng)數(shù)字的BCD碼。 解解:由于09的ASCII碼為30H39H,故只要將09數(shù)字ASCII碼的高4位變?yōu)?,低4位不變就是其BCD碼。邏

25、輯與的特性:x 0 = 0(清零);x 1 = x(屏蔽) ANL M1,#0000 1111B;(M1)(M1)0FH舉例9:試解讀如下程序并說明其功能。 ANLA,#0FHANLP1,#0F0HORLP1,A功能:把累加器A中低4位送入P1口低4位,P1口的高4位不變(實(shí)現(xiàn)了一次數(shù)據(jù)組合); AA0FH; P1P1F0H; P1P1A邏輯或的特性:x 0 = x(屏蔽);x 1 = 1(置位); A = 0000 xxxxB; P1= XXXX0000B; P1= XXXXxxxxB舉例10:試解讀如下程序并說明其功能。MOV A,40HCPL AINCAMOV 40H,A功能:對40H單

26、元中的數(shù)求補(bǔ),運(yùn)算后結(jié)果仍送回40H單元 。; A(40H); A/A; A A+1;(40H) A 功能:將A.5與80H位相與的結(jié)果,通過P1.4輸出。 舉例11:已知A.5=1,位地址(80H)=0。試解讀如下程序并說明其功能。MOV C,A.5ANLC,80HMOV P1.4,C; C A.5; C C 80H; P1.4 C; C 1; C 10=0; P1.4 0邏輯運(yùn)算指令快捷記憶法 規(guī)律:除#data與direct外,幾乎所有運(yùn)算都是以A為目的操作數(shù)。2.1匯編語言概述 2.2指令系統(tǒng)簡介 1.數(shù)據(jù)傳送與交換類指令 2.算術(shù)運(yùn)算類指令 3.邏輯運(yùn)算及移位類指令 4.控制轉(zhuǎn)移類指

27、令控制轉(zhuǎn)移類指令 5 .位操作指令控制轉(zhuǎn)移類指令控制轉(zhuǎn)移類指令共有22條,主要功能是通過改變程序計數(shù)器PC的內(nèi)容,進(jìn)而改變程序流向。功能:可根據(jù)A中的數(shù)實(shí)現(xiàn)分支程序的跳轉(zhuǎn)。 舉例12:設(shè)A中為整數(shù)0n,B中為整數(shù)3。試解讀如下程序并說明其功能(提示,LJMP為3字節(jié)指令)。; ABBA; DPTR BLOCK; PCA+DPTR; PCLOOP0; PCLOOP1; PCLOOP2 ;0號分支入口 ;1號分支入口 MUL AB MOV DPTR, #BLOCKJMP A+DPTR BLOCK: LJMP LOOP0 LJMP LOOP1 LJMP LOOP2 LOOP0: ;0號分支入口LOO

28、P1: ;1號分支入口; A = 0, 3, 6, 9.,3n; DPTR =BLOCK; PC3n + BLOCK; PCLOOP0; PCLOOP1; PCLOOP2;0號分支入口;1號分支入口功能:比較30H和40H中兩個無符號數(shù)的大小,將大數(shù)存入50H,小數(shù)存入51H,若兩數(shù)相等則使7FH位置1。 MOV A,30H CJNE A,40H,NOEQU SETB 7FH SJMP FINISHNOEQU: JC SMALL MOV 50H,A MOV 51H,40H SJMP FINISHSMALL: MOV 50H,40H MOV 51H,AFINISH: SJMP $; A (30H

29、); 若A(40H)轉(zhuǎn)NOEQU; (7FH) 1; PCPCFINISH; 若CY=1,則PCPCSMALL; (50H) A; (51H) (40H); PCPCFINISH; (50H) (40H); (51H) A; PC=PC當(dāng)前舉例13:試解讀如下程序并說明其功能。做法:先判斷比較雙方是否相等,隨后再利用C判斷不相等時的關(guān)系??傃訒r量:(2125+1+2)200+1 = 50.601ms舉例14:試分析如下延時子程序可實(shí)現(xiàn)的延時量。DEL50: MOV R7,#200DEL1: MOV R6,#125DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET;循環(huán)125

30、次;循環(huán)200次RnRn-1若Rn0,則 PCPC+rel否則順序進(jìn)行 ACALL DEL50 ;調(diào)用延時子程序使用:(設(shè)指令DJNZ耗時為2s, 指令MOV為1 s)控制轉(zhuǎn)移類指令快捷記憶法 規(guī)律:所有條件轉(zhuǎn)移都只能是在rel的范圍內(nèi)進(jìn)行,即-128127。 2.1匯編語言概述 2.2指令系統(tǒng)簡介 1.數(shù)據(jù)傳送與交換類指令 2.算術(shù)運(yùn)算類指令 3.邏輯運(yùn)算及移位類指令 4.控制轉(zhuǎn)移類指令 5 .位操作指令位操作指令2.2.5 2.2.5 位操作指令位操作指令 1.1.數(shù)據(jù)位傳送指令數(shù)據(jù)位傳送指令 MOV C,bitMOV C,bit MOV bit,C MOV bit,C 例例 MOV C,06HMOV C,06H ;(20H).6Cy(20H).6Cy06H06H是內(nèi)部是內(nèi)部RAM 20HRAM 20H字節(jié)位字節(jié)位6 6的位地址。的位地址。 MOV P1.0,CMOV P1.0,C ;CyP1.0CyP1.0 2 2位變量修改指令位變量修改指令 CLR CCLR C;清;清“0”Cy0”Cy CLR b

溫馨提示

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

最新文檔

評論

0/150

提交評論