第3章指令系統(tǒng)學(xué)習(xí)教案_第1頁
第3章指令系統(tǒng)學(xué)習(xí)教案_第2頁
第3章指令系統(tǒng)學(xué)習(xí)教案_第3頁
第3章指令系統(tǒng)學(xué)習(xí)教案_第4頁
第3章指令系統(tǒng)學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩184頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、會(huì)計(jì)學(xué)1第第3章指令系統(tǒng)章指令系統(tǒng)(zh ln x tn)第一頁,共189頁。程序設(shè)計(jì)語言: 是實(shí)現(xiàn)人機(jī)交換信息的基本工具,分為機(jī)器語言(j q y yn)、匯 編語言和高級(jí)語言。機(jī)器語言: 用二進(jìn)制編碼表示每條指令,是計(jì)算機(jī)能直接識(shí)別和 執(zhí)行的語言。匯編語言: 是用助記符、符號(hào)和數(shù)字等來表示指令的程序設(shè)計(jì)語 言。它與機(jī)器語言指令是一一對(duì)應(yīng)的。第1頁/共189頁第二頁,共189頁。第2頁/共189頁第三頁,共189頁。第3頁/共189頁第四頁,共189頁。操作碼操作碼立即立即(lj)數(shù)或地址數(shù)或地址第4頁/共189頁第五頁,共189頁。操作碼操作碼立即立即(lj)數(shù)或數(shù)或地址地址立即數(shù)或地址立

2、即數(shù)或地址第5頁/共189頁第六頁,共189頁。第6頁/共189頁第七頁,共189頁。第7頁/共189頁第八頁,共189頁。第8頁/共189頁第九頁,共189頁。第9頁/共189頁第十頁,共189頁。n ADD A,R0;(A)+(R0)A第10頁/共189頁第十一頁,共189頁。n例如:例如: MOV A,3AH;(3A) An MOV A,P1; (P1口口) A n或:或: MOV A,90H;90H是是P1口的地址口的地址第11頁/共189頁第十二頁,共189頁。2000HDPTR n;(;(DPH)=20Hn;(;(DPL)=00H第12頁/共189頁第十三頁,共189頁。位的位的1

3、28B單元內(nèi)容。還可采用單元內(nèi)容。還可采用DPTR作為間接尋址寄存器,尋作為間接尋址寄存器,尋址外部數(shù)據(jù)址外部數(shù)據(jù)(shj)存儲(chǔ)器的存儲(chǔ)器的64KB空間。空間。第13頁/共189頁第十四頁,共189頁。65H47HR0A47H數(shù)據(jù)數(shù)據(jù)(shj)存儲(chǔ)器存儲(chǔ)器地址(dzh)65H以指令中所指定的以指令中所指定的R0內(nèi)容(內(nèi)容(65H)為)為指針指針將片內(nèi)將片內(nèi)RAM 65H單單元內(nèi)容元內(nèi)容47H送送A第14頁/共189頁第十五頁,共189頁。第15頁/共189頁第十六頁,共189頁。E8H.第16頁/共189頁第十七頁,共189頁。n例如例如第17頁/共189頁第十八頁,共189頁。1EH0302

4、HROMDPTRAA02F1H11H1EH+DPTR內(nèi)容與內(nèi)容與A的內(nèi)容之的內(nèi)容之和為程序和為程序(chngx)存儲(chǔ)存儲(chǔ)器地址器地址程序程序(chngx)存儲(chǔ)器內(nèi)容送存儲(chǔ)器內(nèi)容送A第18頁/共189頁第十九頁,共189頁。n rel為補(bǔ)碼表示的有符號(hào)數(shù)。為補(bǔ)碼表示的有符號(hào)數(shù)。第19頁/共189頁第二十頁,共189頁。n位尋址區(qū)域:片內(nèi)位尋址區(qū)域:片內(nèi)RAM的的20H-2FH的的16個(gè)單元中的個(gè)單元中的128位;字位;字節(jié)地址能被節(jié)地址能被8整除的整除的SFR。第20頁/共189頁第二十一頁,共189頁。第21頁/共189頁第二十二頁,共189頁。第22頁/共189頁第二十三頁,共189頁。E0

5、A程序存儲(chǔ)區(qū)2040H 9320E0H 472041H DPH 20DPL 00ALU20E0H2、MOVC A,A+DPTR設(shè)DPTR=2000H,A=E0H47第23頁/共189頁第二十四頁,共189頁。第24頁/共189頁第二十五頁,共189頁。(布爾操作):(布爾操作):1717條條第25頁/共189頁第二十六頁,共189頁。指令(指令(3 3條)條)第26頁/共189頁第二十七頁,共189頁。第27頁/共189頁第二十八頁,共189頁。1.以累加器A為目的(md)操作數(shù)的指令(4條,即4種尋址方式)匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作MOV A,Rn;MOV A,Rn

6、;1110 1rrr1110 1rrr (Rn) (Rn) MOV A,direct;MOV A,direct; 1110 0101directdirect(direct) (direct) MOV A,Ri;MOV A,Ri;1110 011i1110 011i(Ri) (Ri) MOV A,#data;MOV A,#data;0111 01000111 0100datadata #data #data 第28頁/共189頁第二十九頁,共189頁。11H30H30HR1第29頁/共189頁第三十頁,共189頁。 匯編指令格式匯編指令格式 機(jī)器碼格式機(jī)器碼格式 操作操作MOV RnMOV Rn

7、,A A; 1111 1rrr1111 1rrr RnRnMOV RnMOV Rn,directdirect;1010 1rrrdirectdirect(direct) Rn(direct) RnMOV RnMOV Rn,#data#data;0111 1rrr0111 1rrrdatadata #data Rn #data Rn第30頁/共189頁第三十一頁,共189頁。 這組指令的功能是把源操作數(shù)所指定的內(nèi)容送到當(dāng)前工作寄存器組R0R7中的某個(gè)寄存器。源操作數(shù)有寄存器尋址,直接尋址、立即(lj)數(shù)尋址三種方式。第31頁/共189頁第三十二頁,共189頁。第32頁/共189頁第三十三頁,共1

8、89頁。匯編指令格式匯編指令格式 機(jī)器碼格式機(jī)器碼格式操作操作MOV direct,A;1111 0101 direct(A) directMOV direct,Rn;1000 1rrr direct(Rn) direct 第33頁/共189頁第三十四頁,共189頁。MOV directMOV direct,direct;direct; 1000 01011000 0101源源direct direct 目的目的directdirect(源(源directdirect) 目的目的directdirectMOV directMOV direct,RiRi; ; 1000 011i1000 011

9、i direct direct(Ri) direct(Ri) directMOV directMOV direct,#data; #data; 0111 01010111 0101 direct direct data data#data direct#data direct第34頁/共189頁第三十五頁,共189頁。匯編指令格式匯編指令格式 機(jī)器碼格機(jī)器碼格式式操作操作MOV Ri, AMOV Ri, A; ; 1111 011i1111 011i (A) (Ri) (A) (Ri)MOV Ri, direct;MOV Ri, direct; 0101 011i 0101 011i dire

10、ct direct (direct) (Ri) (direct) (Ri)MOV Ri, #data;MOV Ri, #data;0111 011i0111 011idatadata #data (Ri) #data (Ri)第35頁/共189頁第三十六頁,共189頁。RidirectRn#dataACC圖圖36 傳送指令傳送指令(zhlng)在片內(nèi)存儲(chǔ)器的操作功能在片內(nèi)存儲(chǔ)器的操作功能MOV指令在片內(nèi)存儲(chǔ)器的操作(cozu)功能如圖3-6示 第36頁/共189頁第三十七頁,共189頁。匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作MOV DPTR, #data16; 1001 0000

11、高位字節(jié)高位字節(jié)低位字節(jié)低位字節(jié)dataH DPH dataL DPL 例:MOV DPTR #1000H; (DPTR)=1000H ,(DPH)=10H,(DPL)=00H 第37頁/共189頁第三十八頁,共189頁。匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作MOVC AMOVC A,A+DPTR;A+DPTR; 1001 00111001 0011先先(PC)+1 PC,(PC)+1 PC,后后(A)+(DPTR) A(A)+(DPTR) AMOVC A, A+PC;MOVC A, A+PC;1000 00111000 0011先先(PC)+1 PC,(PC)+1 PC,后后(

12、A)+(PC) A (A)+(PC) A 第38頁/共189頁第三十九頁,共189頁?;刂?dzh)寄存器+變址寄存器間接尋址PC+A(程序存儲(chǔ)器0-64K)基地址寄存(jcn)器+變址寄存(jcn) 器間接尋址DPTR+A(程序存儲(chǔ)器0-64K)A寄存器寄存器圖圖3-7 3-7 程序程序(chngx)(chngx)存貯器傳送(查表)存貯器傳送(查表)第39頁/共189頁第四十頁,共189頁。第40頁/共189頁第四十一頁,共189頁。MOV DPTR, #2000H ; (DPTR)=2000HMOV A , #0AH ; (A)=0AHMOVC A , A+DPTR ; (A)=(A)+

13、(DPTR)=(200AH) 則:則:(A)=(200AH)=11H第41頁/共189頁第四十二頁,共189頁。第42頁/共189頁第四十三頁,共189頁。1000H1000H7474 0D0DMOVMOVA, #0DHA, #0DH;(A A)=0DH=0DH1002H1002H8383MOVC A,A+PCMOVC A,A+PC;(PCPC)=1002+1=1003H=1002+1=1003H,(A A)=(A)+(PC) =(A)+(PC) = =(0D+10030D+1003) = =(1010H1010H)(A A)=02H=02H1003H1003HF8F8MOV R0, AMOV

14、 R0, A;(R0R0)= =(A A)=02H=02H第43頁/共189頁第四十四頁,共189頁。第44頁/共189頁第四十五頁,共189頁。匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作MOVX AMOVX A,Ri Ri ; ;1110 001i1110 001i(Ri) A(Ri) AMOVX A, DPTRMOVX A, DPTR ; ;1110 00001110 0000(DPTR) A(DPTR) AMOVX Ri, AMOVX Ri, A; ;1111 001i1111 001i(A) (Ri)(A) (Ri)MOVX DPTR, AMOVX DPTR, A; ;111

15、1 00001111 0000(A) (DPTR)(A) (DPTR)第45頁/共189頁第四十六頁,共189頁。令完成以令完成以R0R0或或R1R1為地址指針的為地址指針的片外數(shù)據(jù)存儲(chǔ)器與累加器片外數(shù)據(jù)存儲(chǔ)器與累加器A A之間之間的傳送數(shù)據(jù)。的傳送數(shù)據(jù)。第46頁/共189頁第四十七頁,共189頁。寄存器寄存器間接(jin ji)尋址 寄存器間接(jin ji)尋址 R1.R0DPTR(外RAM0-255) (外RAM0-64K)圖3-8 外部(wib)數(shù)據(jù)存儲(chǔ)器傳送操作第47頁/共189頁第四十八頁,共189頁。第48頁/共189頁第四十九頁,共189頁。堆棧(duzhn):先進(jìn)后出,后進(jìn)先

16、出。匯編指令格匯編指令格式式機(jī)器碼機(jī)器碼格式格式操作操作注釋注釋PUSH direct; 11100000 direct先(先(SP)+1 SP,后(后(direct) (SP)PUSH(入棧)(入棧)指令指令POP direct;11010000direct先先 (SP) direct,后后 (SP)1 SPPOP(出棧)(出棧)指令指令第49頁/共189頁第五十頁,共189頁。 MOV SP, #18H; (SP)=18 MOV A, #30H; (A)=30H MOV DPTR, #1000H; (DPTR)=1000H PUSH A ; (SP)=19H(19H)=30H PUSH D

17、PH ; (SP)=1AH(1AH)=10H PUSH DPL ; (SP)=1BH(1BH)=00H POP DPL ; (DPL)=00H (SP)=1AH POP DPH ; (DPH)=10H (SP)=19H POP A ; (A)=30H (SP)=18H第50頁/共189頁第五十一頁,共189頁。(1)字節(jié)變換(binhun)指令匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作XCH A,Rn;1100 1rrr(A) (Rn)XCH A, direct;1100 0101direct(A) (direct)XCH A, Ri;1100 011i(A) (Ri)第51頁/共1

18、89頁第五十二頁,共189頁。第52頁/共189頁第五十三頁,共189頁。匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作XCHD AXCHD A, Ri;Ri; 1101 011i 1101 011i(A03) (Ri)03) 這條指令為低半字節(jié)(z ji)交換指令。該指令將累加器A的低4位與R0或R1所指出的片內(nèi)RAM單元的低4位數(shù)據(jù)相互交換,各自的高4位不變,其操作表示為: 繼續(xù)(jx)上例: XCHD A, R1 ; (A)=31H ; (30H)=14H第53頁/共189頁第五十四頁,共189頁。MOV 23H,#30HMOV 12H,#34HMOV R0,#23HMOV R7,

19、12HMOV R1,#12HMOV A,R0MOV 34H,R1MOV 45H,34HMOV DPTR,#6712HMOV 12H,DPHMOV R0,DPLMOV A,R0;(23H)=30H;(12H)=34H;R0=23HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXDPHDPHDPLDPL45H45H34H34H23H23H12H12HR7R7R1R1R0R0676712123434343430306767343412121212;R7=34H;R1=12H;A=30H;(34H)=34H;(45H)=34H;DPTR=6712H;(12H)=6767H;R0

20、=1212H;A=6767H給出每條指令執(zhí)行(zhxng)后的結(jié)果第54頁/共189頁第五十五頁,共189頁。第55頁/共189頁第五十六頁,共189頁。第56頁/共189頁第五十七頁,共189頁。MOV Rn,AMOV Rn,directMOV Rn,#dataMOV Ri,A MOV Ri,directMOV Ri,#dataPUSH direct POP direct XCH A,Rn XCH A, direct XCH A, Ri XCHD A, RiMOV DPTR,#data16MOVX A,RiMOVX Ri,AMOVX A,DPTRMOVX DPTR,A MOVC A,A+DP

21、TRMOVC A,A+PC第57頁/共189頁第五十八頁,共189頁。第58頁/共189頁第五十九頁,共189頁。第59頁/共189頁第六十頁,共189頁。第60頁/共189頁第六十一頁,共189頁。第61頁/共189頁第六十二頁,共189頁。 上述指令的執(zhí)行將影響標(biāo)志位AC,Cy,OV,P。當(dāng)“和”的第3位或第7位有進(jìn)位時(shí),分別將AC,CY標(biāo)志位置(wi zhi)1,否則為0。溢出標(biāo)志位OV=C7 C6(異或),(即第六位向第七位的進(jìn)位與第七位向下一位的進(jìn)位相異或,相同為0,不同為1。) 該標(biāo)志位只有帶符號(hào)數(shù)運(yùn)算時(shí)才有用。第62頁/共189頁第六十三頁,共189頁。第63頁/共189頁第六十

22、四頁,共189頁。第64頁/共189頁第六十五頁,共189頁。第65頁/共189頁第六十六頁,共189頁。ADDC A, Ri;ADDC A, Ri;0011 011i0011 011i(A)+(Ri)+CY A A將間接尋址(將間接尋址(RiRi為為R0R0或或R1R1)所得的片內(nèi))所得的片內(nèi)RAMRAM單元中內(nèi)容、單元中內(nèi)容、CYCY位和位和累加器累加器A A中的數(shù)相加,中的數(shù)相加,“和和”存放于累加器存放于累加器A A中中ADDC ADDC A, #data; 0011 01000011 0100datadata(A)+#data+CY A A將立即數(shù)的將立即數(shù)的8 8位無符號(hào)位無符號(hào)二

23、進(jìn)制數(shù)、二進(jìn)制數(shù)、CYCY位和累位和累加器加器A A中的數(shù)相加,中的數(shù)相加,“和和”存放于累加器存放于累加器A A中中第66頁/共189頁第六十七頁,共189頁。 本組指令的功能是同時(shí)把源操作數(shù)所指出的內(nèi)容和進(jìn)位標(biāo)志位CY都加到累加器A中,結(jié)果存放(cnfng)到A中,其余的功能和上面的ADD指令相同。本組指令常用于多字節(jié)加法。第67頁/共189頁第六十八頁,共189頁。第68頁/共189頁第六十九頁,共189頁。解: (A) : C3H=1100 0011+ (CY) : 1=0000 0001 1100 0100+ (R0) : AAH=1010 1010 (A) : 6EH=0110 1

24、110標(biāo)志位:CY=1,OV=1,AC=0,結(jié)果: (A)=6EH, (R0)=0AAH。第69頁/共189頁第七十頁,共189頁。說明: 由于51單片機(jī)是一種8位機(jī),所以只能做8位的數(shù)學(xué)(shxu)運(yùn)算,但8位運(yùn)算的范圍只有0255,這在實(shí)際工作中是不夠的,因此就要進(jìn)行擴(kuò)展,一般是將2個(gè)8位(兩字節(jié))的數(shù)學(xué)(shxu)運(yùn)算合起來,成為一個(gè)16位的運(yùn)算,這樣,可以表達(dá)的數(shù)的范圍就可以達(dá)到065535。第70頁/共189頁第七十一頁,共189頁。例2:1067H+30A0H1067H+30A0H0001 0000 0110 0111 0011 0000 1010 0000 0100 0001 0

25、000 0111 1067H1067H30A0H30A0H4107H4107H 先做67H+A0H=107H,而107H顯然超過了0FFH,因此最終保存(bocn)在A中的是07H,而1則到了PSW中的CY位了。換言之,CY就相當(dāng)于是100H。 然后再做10H + 30H + CY,結(jié)果是41H,所以最終的結(jié)果是4107H。第71頁/共189頁第七十二頁,共189頁。第72頁/共189頁第七十三頁,共189頁。第73頁/共189頁第七十四頁,共189頁。第74頁/共189頁第七十五頁,共189頁。 解: (A)=0C9H= 11001001 B-) Cy= 1 = 00000001 B 110

26、01000 B -) (R2)=54H = 01010100 B (A)=74H = 01110100 B結(jié)果為: (A)=74H標(biāo)志位為:Cy=0 AC=0 OV=1 P=0第75頁/共189頁第七十六頁,共189頁。第76頁/共189頁第七十七頁,共189頁。 解: 結(jié)果(ji gu)為:(B)=1CH, (A)=56H, 表示積 (BA)=1C56H,OV=1。第77頁/共189頁第七十八頁,共189頁。第78頁/共189頁第七十九頁,共189頁。該指令執(zhí)行后,CY和OV均被清0。若原(B)=00H,則結(jié)果無法(wf)確定,用OV=1表示,CY仍為0。例: (A)=BFH,(B)=32H

27、。 執(zhí)行(zhxng)指令“DIV AB” 結(jié)果為(A)=03H,(B)=29H; 標(biāo)志位CY=0,OV=0。 第79頁/共189頁第八十頁,共189頁。第80頁/共189頁第八十一頁,共189頁。該組指令的操作(cozu)不影響PSW。若原單元內(nèi)容為FFH,加1后溢出為00H,也不影響PSW標(biāo)志。例:比較指令“INC A”和“ADD A,#01H” 的結(jié)果。解:“INC A”指令只將A的內(nèi)容加1,標(biāo)志位沒有變化(binhu)。而“ADD A,#01H”指令不僅將A的內(nèi)容加1,還影響標(biāo)志位變化(binhu)。第81頁/共189頁第八十二頁,共189頁。第82頁/共189頁第八十三頁,共189頁

28、。(40H)= H 50H = H A= H (41H)= H 51H= H R0= H 課堂練習(xí)1.設(shè):內(nèi)部RAM中,(40H)=50H,(41H)=60H,(50H)=30H, (51H)=70H,執(zhí)行(zhxng)下列片段后:a.MOV R0,40H MOV A,R0 INC R0 MOV R0,Ab. MOV R0,#40H MOV A,R0 INC R0 MOV A,R0;R0=50H;R0=50H;A=30H;A=30H;R0=51H;R0=51H;(51H)=30H;(51H)=30H;R0=40H;R0=40H;A=50H;A=50H;(40H)=51H;(40H)=51H;A

29、=51H;A=51H第83頁/共189頁第八十四頁,共189頁。第84頁/共189頁第八十五頁,共189頁。第85頁/共189頁第八十六頁,共189頁。第86頁/共189頁第八十七頁,共189頁。第87頁/共189頁第八十八頁,共189頁。解:先執(zhí)行 ADDC A,R3; (A) :0101 0110 BCD:56 (R3) :0110 0111 BCD:67 (+) (CY) :0000 0001 BCD:01 和:1011 1110即(A)=1011 1110 且影響標(biāo)志位 CY=0,AC=0;第88頁/共189頁第八十九頁,共189頁。 再執(zhí)行 DA A;因?yàn)?A 中的高四位值為 11,

30、大于 9,低四位值為 14,也大于 9,所以內(nèi)部調(diào)整自動(dòng)進(jìn)行加 66H的操作: 1011 1110 調(diào)整+) 0110 0110 1 0010 0100 BCD:124即(A)=0010 0100=24BCD,CY=1;AC=1。第89頁/共189頁第九十頁,共189頁。第90頁/共189頁第九十一頁,共189頁。第91頁/共189頁第九十二頁,共189頁。第92頁/共189頁第九十三頁,共189頁。(1) 累加器A清0指令(zhlng)匯編指令匯編指令格式格式機(jī)器碼格式機(jī)器碼格式操作操作注釋注釋CLR A CLR A ;1110 01000 A清累加器清累加器A A為為0 0,只影響標(biāo)志位只

31、影響標(biāo)志位P P。第93頁/共189頁第九十四頁,共189頁。匯編指令匯編指令格式格式機(jī)器碼格式機(jī)器碼格式 操作操作注釋注釋CPL A CPL A ;1111 0100(A) A對(duì)累加器對(duì)累加器A A內(nèi)容逐內(nèi)容逐位取反,不影響位取反,不影響標(biāo)志位標(biāo)志位第94頁/共189頁第九十五頁,共189頁。匯 編 指 令 格 式機(jī) 器 碼 格 式操 作注 釋RL A ;0010 0011 a7 a0累加器 A 的內(nèi)容循環(huán)左移 一 位(1)累加器A循環(huán)(xnhun)左移指令第95頁/共189頁第九十六頁,共189頁。匯編指令格式機(jī)器碼格式操作注釋RR A ;0000 0011 a7 a0將累加器 A的內(nèi)容循

32、環(huán)右移一位第96頁/共189頁第九十七頁,共189頁。匯匯編編指指令令格格式式 機(jī)機(jī)器器碼碼格格式式 操操作作 注注釋釋 R RL LC C A A ; 0011 0011 CY a7 a0 將將累累加加器器 A A 的的內(nèi)內(nèi)容容連連同同進(jìn)進(jìn)位位位位 C CY Y一一起起循循環(huán)環(huán)左左移移一一位位。 第97頁/共189頁第九十八頁,共189頁。匯編指令格式機(jī)器碼格式操作注釋RRC A ;0001 0011 CY a7 a0將累加器 A 的內(nèi)容連同進(jìn)位位CY一起循環(huán)右移一位。第98頁/共189頁第九十九頁,共189頁。第99頁/共189頁第一百頁,共189頁。匯匯 編編 指指 令令 格格 式式 機(jī)

33、機(jī) 器器 碼碼 格格 式式 操操 作作 注注 釋釋 S SW WA AP P A A ; 1100 0100 ( A0-3) ( A4-7) 將將 累累 加加 器器A A 的的 高高 低低兩兩 半半 字字 節(jié)節(jié) 交交 換換 。 如如:A=FAH,執(zhí)執(zhí)行行指指令令 “SW AP A”后后, 結(jié)結(jié)果果為為: (A)=AFH 第100頁/共189頁第一百零一頁,共189頁。匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作ANL AANL A, RnRn;0101 1rrr(A)(Rn) AANL AANL A,directdirect;0101 0101direct(A)(direct) AAN

34、L A, RiANL A, Ri;0101 011i(A)(Ri) AANL A, #dataANL A, #data;0101 0100#data(A)#data AANL direct, AANL direct, A;0101 0010direct(direct)(A) directANL direct,#dataANL direct,#data;0101 0011direct#data(direct)#data direct第101頁/共189頁第一百零二頁,共189頁。第102頁/共189頁第一百零三頁,共189頁。例:MOV A,#45HMOV R1,#25HMOV 25H,#79H

35、ANL A,R1ANL 25H,#15HANL 25H,A;(A)=45H;(R1)=25H;(25H)=79H; 45H79H = 41HA; 79H15H = 11H 25H; 11H41H = 01H 25H第103頁/共189頁第一百零四頁,共189頁。匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作ORL AORL A, RnRn;0100 1rrr(A)(Rn) AORL AORL A,directdirect;0100 0101direct(A)(direct) AORL A, RiORL A, Ri;0100 011i(A)(Ri) AORL A, #dataORL A,

36、#data;0100 0100#data(A)#data AORL direct, AORL direct, A;0100 0010direct(direct)(A) directORL direct,#dataORL direct,#data;0100 0011direct#data(direct)#data direct第104頁/共189頁第一百零五頁,共189頁。第105頁/共189頁第一百零六頁,共189頁。匯編指令格式匯編指令格式機(jī)器碼格式機(jī)器碼格式操作操作XRL AXRL A, RnRn;0110 1rrr(A) (Rn) AXRL AXRL A,directdirect;011

37、0 0101direct(A)(direct) AXRL A, RiXRL A, Ri;0110 011i(A) (Ri) AXRL A, #dataXRL A, #data;0110 0100#data(A) #data AXRL direct, AXRL direct, A;0110 0010direct(direct)(A) directXRLdirect,#dataXRLdirect,#data;0100 0011direct#data(direct) #data direct第106頁/共189頁第一百零七頁,共189頁。例:MOV A,#45HMOV R1,#25HMOV 25H,

38、#39HXRL A,R1XRL 25H,#13HXRL 25H,A;(A)=45H;(R1)=25H;(25H)=39H; 45H39H = 7CHA; 39H13H = 2AH 25H;2AH7CH =56H 25H第107頁/共189頁第一百零八頁,共189頁。綜合(zngh)舉例:ANL A,#0FH ;屏蔽;屏蔽(pngb)A的高的高4位位SWAP AANL P1,#0FH ;清;清P1口高口高4位位ORL P1,A ;P1口高口高4位輸出位輸出A的低的低4位;位; 把累加器把累加器A A中的低中的低4 4位狀態(tài)位狀態(tài)(zhungti)(zhungti),通過,通過P1P1口的高口的高

39、4 4位輸出,位輸出, P1 P1口的低口的低4 4位狀態(tài)位狀態(tài)(zhungti)(zhungti)不變。不變。第108頁/共189頁第一百零九頁,共189頁。 dirRi Rn#dataA dirRi Rn#dataAADDADDCSUBBANLORLXRLA ,Rn,Ri#datadir加加進(jìn)位進(jìn)位(jnwi)加加借位減借位減與與或或異或異或1.以以A為目的操作數(shù)的算術(shù)為目的操作數(shù)的算術(shù)(sunsh)、邏輯運(yùn)算指令(、邏輯運(yùn)算指令(24條)條)以dir為目的(md)操作數(shù)邏輯運(yùn)算指令(6條)A#data dir與 ANL或 ORL異或 XRLdir ,#dataA算術(shù)運(yùn)算和邏輯運(yùn)算指令總結(jié)

40、算術(shù)運(yùn)算和邏輯運(yùn)算指令總結(jié)第109頁/共189頁第一百一十頁,共189頁。ARnRidirDPTRINC減減 1 指令指令(zhlng):DECARnRidir加加 1 指令指令(zhlng):2.加加1、減、減1指令指令(zhlng)第110頁/共189頁第一百一十一頁,共189頁。指令對(duì)標(biāo)志位的影響有如下規(guī)律: 1) 凡是對(duì)A 操作指令(包括傳送指令)都將A中1個(gè)的奇偶反映 到PSW的P標(biāo)志位上。即A中奇數(shù)(j sh)個(gè)“1”,P=1;偶數(shù)個(gè)“1”,P=0。(移位指令僅對(duì)A) 2) 傳送指令、加 1、減 1 指令、邏輯運(yùn)算指令不影響Cy、 OV、AC 標(biāo)志位。 3) 加減運(yùn)算指令影響標(biāo)志位

41、,乘除指令使Cy=0,當(dāng)乘積大于255,或除數(shù)為0時(shí),OV置1。 4) 對(duì)進(jìn)位位Cy(指令中用C表示)進(jìn)行操作的指令和大環(huán)移指令,顯然會(huì)影響Cy。 標(biāo)志位的狀態(tài)是控制轉(zhuǎn)移指令的條件,因此指令對(duì)標(biāo)志位的影響應(yīng)該記住。第111頁/共189頁第一百一十二頁,共189頁。第112頁/共189頁第一百一十三頁,共189頁。 一個(gè)計(jì)算機(jī)“智商”的高低,取決于它的轉(zhuǎn)移類指令的多少,特別是條件轉(zhuǎn)移指令的多少。 轉(zhuǎn)移指令具有修改程序(chngx)計(jì)數(shù)器PC內(nèi)容的功能。第113頁/共189頁第一百一十四頁,共189頁。 8051單片機(jī)有豐富的轉(zhuǎn)移類指令(17條),包括無條件轉(zhuǎn)移、條件轉(zhuǎn)移和調(diào)用指令及返回指令等。

42、所有這些指令的目標(biāo)地址都是在64K字節(jié)程序存儲(chǔ)器地址空間(kngjin)范圍內(nèi)。第114頁/共189頁第一百一十五頁,共189頁。第115頁/共189頁第一百一十六頁,共189頁。第116頁/共189頁第一百一十七頁,共189頁。第117頁/共189頁第一百一十八頁,共189頁。 LJMP add16 ; ,add16 PC00000010a15-a8a7-a0第118頁/共189頁第一百一十九頁,共189頁。第119頁/共189頁第一百二十頁,共189頁。SJMP rel ;rel (相對(duì)(相對(duì)(xingdu)地地址)址) 先(先(PC)+2 PC 后(后(PC)+rel PC第120頁/共

43、189頁第一百二十一頁,共189頁。 指令的操作數(shù)是相對(duì)地址,rel是一個(gè)帶符號(hào)的偏移字節(jié)數(shù)(補(bǔ)碼),其范圍為-128+127(00H7FH對(duì)應(yīng)表示0+127,80HFFH對(duì)應(yīng)表示-128-1),負(fù)數(shù)表示反向轉(zhuǎn)移,正數(shù)表示正向轉(zhuǎn)移。該指令為二字節(jié),執(zhí)行(zhxng)時(shí)先將PC內(nèi)容加2,再加相對(duì)地址,就得到了轉(zhuǎn)目標(biāo)地址。第121頁/共189頁第一百二十二頁,共189頁。例如: (PC)=0100H地址單元有條“SJMP rel”指令, 若rel=55H(正數(shù)),則正向(zhn xin)轉(zhuǎn)移到 0102H+0055H=0157H地址上; 若rel=F6H(負(fù)數(shù))則反向轉(zhuǎn)移到 0102H+FFF6H

44、=00F8H地址上。 在用匯編語言程序時(shí),rel可以是一個(gè)轉(zhuǎn)移目的地址的標(biāo)號(hào),由匯編程序在匯編過程中自動(dòng)計(jì)算偏移地址,并且填入指令代碼中;在手工匯編時(shí),我們可用轉(zhuǎn)移目的地址減轉(zhuǎn)移指令所在源地址,再減轉(zhuǎn)移指令字節(jié)數(shù)2得到偏移字節(jié)數(shù)rel。第122頁/共189頁第一百二十三頁,共189頁。01110011JMP A+DPTR;, (A)+(DPTR) PC第123頁/共189頁第一百二十四頁,共189頁。第124頁/共189頁第一百二十五頁,共189頁。例如:根據(jù)累加器A中命令(mng lng)鍵鍵值,設(shè)計(jì)命令(mng lng)鍵操 作程序入口跳轉(zhuǎn)表 CLR C ;清進(jìn)位 RLC A ;鍵值乘2

45、MOV DPTR,#JPTAB ;指向命令(mng lng)鍵跳轉(zhuǎn)表首址 JMP A+DPTR ;散轉(zhuǎn)入命令(mng lng)鍵入口JPTAB:AJMP CCS0 ;雙字節(jié)指令 AJMP CCS1 AJMP CCS2第125頁/共189頁第一百二十六頁,共189頁。 從程序中看出(kn ch),當(dāng)(A)=00H時(shí),散轉(zhuǎn)到CCS0;當(dāng)(A)=01H時(shí),散轉(zhuǎn)到CCS1;。由于AJMP是雙字節(jié)指令,散轉(zhuǎn)前中的鍵值應(yīng)乘2。 第126頁/共189頁第一百二十七頁,共189頁。NOP; (PC)+1 PC0000 0000 這是一條單字節(jié)指令,除PC加1外,不影響(yngxing)其它寄存器和標(biāo)志位?!癗

46、OP”指令常用于產(chǎn)生一個(gè)機(jī)器周期的延遲。 第127頁/共189頁第一百二十八頁,共189頁。1)判零轉(zhuǎn)移(zhuny)指令 JZ rel;01100000相對(duì)地址(相對(duì)地址(rel)(PC)+2 PC 當(dāng)A=全“0”,則(PC)=(PC)+rel 當(dāng)A=/全“0”,程序順序(shnx)執(zhí)行第128頁/共189頁第一百二十九頁,共189頁。(PC)+2 PC 當(dāng)A=/全“0”, 則(PC)+rel PC 當(dāng)A=全“0”,程序順序(shnx)執(zhí)行01110000相對(duì)地址(相對(duì)地址(rel)JNZ rel;第129頁/共189頁第一百三十頁,共189頁。JZ和JNZ指令分別對(duì)累加器A的內(nèi)容為全零和不

47、為零進(jìn)行檢測(cè)并轉(zhuǎn)移。其目標(biāo)地址是以下一條指令第一個(gè)字節(jié)的地址為基礎(chǔ)加上指令的第二個(gè)字節(jié)中的相對(duì)偏移量。相對(duì)偏移量為一個(gè)帶符號(hào)的8位數(shù),偏移范圍為-128+127字節(jié),在指令匯編(hubin)和手工匯編(hubin)時(shí)被確定,它是目標(biāo)地址與下條指令地址之差。 本指令不改變累加器A內(nèi)容和影響任何標(biāo)志位。第130頁/共189頁第一百三十一頁,共189頁。 CJNE 目的(md)操作數(shù),源操作數(shù),rel ;三字節(jié)指令第131頁/共189頁第一百三十二頁,共189頁。CJNE A,direct, rel ;(PC)+3 PC 若(direct)(A), 則(PC)+rel PC且1 Cy 若(direc

48、t)=(A),則順序(shnx)執(zhí)行 第132頁/共189頁第一百三十三頁,共189頁。CJNE A, #data, rel ;(PC)+3 PC 若#data(A), 則(PC)+rel PC且1 Cy若#data =(A), 則順序(shnx)執(zhí)行。第133頁/共189頁第一百三十四頁,共189頁。CJNE Rn, #data,rel ;10111rrr#datarel(PC)+3 PC 若#data (Rn), 則(PC)+rel PC且1 Cy若#data = (Rn), 則順序(shnx)執(zhí)行.第134頁/共189頁第一百三十五頁,共189頁。CJNZRi, #data,rel ;1

49、011011i#datarel(PC)+3 PC 若#data (Ri), 則(PC)+rel PC且1 Cy若#data = (Ri), 則順序(shnx)執(zhí)行第135頁/共189頁第一百三十六頁,共189頁。例:編寫程序,要求讀P1 端口上的信息,若不為55H,則程序等待,直到P1端口為55H時(shí),程序才往下順序執(zhí)行。程序: MOV A,#55H ;A55H CJNE A,P1,$ ;P155H,則程序循環(huán)執(zhí)行本指令 在實(shí)際編程中,轉(zhuǎn)移的目的地址(dzh)不管是addr11、addr16、還是rel ,均是一符號(hào)地址(dzh)表示的(如SJMP ABC,AJMP LOOP),轉(zhuǎn)移的類型是通過

50、指令的操作符來決定的。第136頁/共189頁第一百三十七頁,共189頁。(PC)+2 PC (Rn)-1 Rn 當(dāng)(Rn)=/0,則(PC)+rel PC 當(dāng)(Rn)=0,則順序(shnx)執(zhí)行第137頁/共189頁第一百三十八頁,共189頁。DJNZ direct,rel ;11010101directrel(PC)+3 PC (direct)-1 direct 當(dāng)(direct)=/0,則(PC)+rel PC 當(dāng)(direct)=0,則結(jié)束(jish)循環(huán),程序往下執(zhí)行第138頁/共189頁第一百三十九頁,共189頁。例:試說明(shumng)以下一段程序運(yùn)行后A中的結(jié)果。 MOV 23

51、H,#0AH CLR ALOOP:ADD A,23H DJNZ 23H,LOOP SJMP $第139頁/共189頁第一百四十頁,共189頁。第140頁/共189頁第一百四十一頁,共189頁。第141頁/共189頁第一百四十二頁,共189頁。第142頁/共189頁第一百四十三頁,共189頁。例1 將A累加器的低四為取反四次、高四位不變。每變換一次,從P1輸出。方法一 加 1 計(jì)數(shù): MOV R0,#0 ;計(jì)數(shù)初值送0LL: XRL A,#0FH ;高4位不變,低四位取反 INC R0 ;次數(shù)(csh)加1 MOV P1,A ;從P1輸出 CJNE R0,#04,LL ;不滿四次循環(huán) RET 方

52、法二 減1計(jì)數(shù): MOV R0,#04H ;計(jì)數(shù)初值送4LL: XRL A,#0FH MOV P1,A DJNZ R0,LL ;次數(shù)(csh)減1不等于0循環(huán) RET第143頁/共189頁第一百四十四頁,共189頁。第144頁/共189頁第一百四十五頁,共189頁。第145頁/共189頁第一百四十六頁,共189頁。第146頁/共189頁第一百四十七頁,共189頁。ACALL addr11 ; (PC)+2 PC, 斷點(diǎn)(dun din)值 (SP)+1 SP (PC07) (SP) 壓入斷點(diǎn)(dun din) (SP)+1 SP (PC815) (SP) addr110 PC010(2KB區(qū)內(nèi)

53、地址) (PC1115)不變第147頁/共189頁第一百四十八頁,共189頁。 (SP)=09H,(PC)=0345H,程序轉(zhuǎn)向子程序首地址0345H單元開始執(zhí)行(zhxng)。這里PC值得高5為內(nèi)容不變,僅把123H變成345H。尋址在0125H為起始地址的同一個(gè)2K字節(jié)范圍內(nèi)。第148頁/共189頁第一百四十九頁,共189頁。LCALL addr16 ;00010010addr8-15addr0-7(PC)+3 PC 斷點(diǎn)(dun din)值(SP)+1 SP(PC0-7) (SP)(SP)+1 SP 壓入斷點(diǎn)(dun din)(PC8-15) (SP) addr0-15 PC第149頁/

54、共189頁第一百五十頁,共189頁。第150頁/共189頁第一百五十一頁,共189頁。RET;00100010(SP) PC8-15, 彈出斷點(diǎn)(dun din)高8位(SP)-1 SP(SP) PC0-7, 彈出斷點(diǎn)(dun din)低8位(SP)-1 SP第151頁/共189頁第一百五十二頁,共189頁。00110010RETI ;第152頁/共189頁第一百五十三頁,共189頁。第153頁/共189頁第一百五十四頁,共189頁。第154頁/共189頁第一百五十五頁,共189頁。第155頁/共189頁第一百五十六頁,共189頁。第156頁/共189頁第一百五十七頁,共189頁。匯編指令格式

55、 機(jī)器碼格式 操作 注釋 MOV C,bit ; 1010 0010 位地址(bit) (bit) C MOV bit,C ; 1001 0010 位地址(bit) (C) bit 第157頁/共189頁第一百五十八頁,共189頁。(1)位清0指令(zhlng)第158頁/共189頁第一百五十九頁,共189頁。第159頁/共189頁第一百六十頁,共189頁。第160頁/共189頁第一百六十一頁,共189頁。(1)位邏輯(lu j)“與”指令(2條)第161頁/共189頁第一百六十二頁,共189頁。例: 若位地址(dzh)(20H)=1, 位累加器(C)=0 執(zhí)行指令: ANL C,/20H ;

56、后的結(jié)果:(C)=0, (20H)=1。 而執(zhí)行指令: CPL 20H ; ANL C,20H; 后的結(jié)果:(C)=0,(20H)=0。第162頁/共189頁第一百六十三頁,共189頁。第163頁/共189頁第一百六十四頁,共189頁。第164頁/共189頁第一百六十五頁,共189頁。(1) 判布爾累加器C轉(zhuǎn)移(zhuny)指令(2條)第165頁/共189頁第一百六十六頁,共189頁。第166頁/共189頁第一百六十七頁,共189頁。第167頁/共189頁第一百六十八頁,共189頁。例 用位操作指令(zhlng)實(shí)現(xiàn) XX0 X1,設(shè)X0為P1.0, X1為P1.1, X為ACC.0。根據(jù)異或規(guī)則(guz),一個(gè)數(shù)與“0”異或,該數(shù)值不變;與“1”異或,該數(shù)值變反,編程如下: X BIT ACC.0 X0 BIT P1.0 X1 BIT P1.1 ;位定義 MOV C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論