第三章 80C51指令系統(tǒng)_第1頁
第三章 80C51指令系統(tǒng)_第2頁
第三章 80C51指令系統(tǒng)_第3頁
第三章 80C51指令系統(tǒng)_第4頁
第三章 80C51指令系統(tǒng)_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、二進(jìn)制形式16進(jìn)制形式匯編形式01110100 0000101000100100 0000010010000000 11111110740AH2404H80FEH MOV A,#0AH ADD A,#04H SJMP $51系列單片機(jī)指令集含有111條指令按指令所占字節(jié)數(shù)分類:?jiǎn)巫止?jié)(49條);雙字節(jié)(46條);3字節(jié)(16條)按指令執(zhí)行時(shí)間分類:?jiǎn)沃芷冢?4條);雙周期(45條);4周期(2條)按指令的功能分類:數(shù)據(jù)傳送類(29條);算術(shù)運(yùn)算類(24條);邏輯運(yùn)算及移位類(24);控制轉(zhuǎn)移類(17條);位操作類(17條)n 方括符方括符 表示可選項(xiàng)表示可選項(xiàng)n 標(biāo)號(hào)標(biāo)號(hào)代表指令所在地址,代表

2、指令所在地址,1-81-8個(gè)字母?jìng)€(gè)字母/ /數(shù)字,數(shù)字,“:”:”結(jié)尾結(jié)尾n 操作碼操作碼就是指令功能助記符,指令實(shí)體就是指令功能助記符,指令實(shí)體n 目的操作數(shù)目的操作數(shù)n 源操作數(shù)源操作數(shù)n 注釋注釋,以,以 “ “ ; ” ; ” 開頭開頭LOOP: MOV A, R0 ;將將R0R0的內(nèi)容送的內(nèi)容送A A 標(biāo)號(hào)標(biāo)號(hào): : 操作碼操作碼 目的操作數(shù)目的操作數(shù), ,源操作數(shù)源操作數(shù); ;注釋注釋 Rn R0R7中的一個(gè) #data 8位立即數(shù) #data16 16位立即數(shù) direct 8位直接地址 Ri R0或R1,可以間接尋址 DPTR 可按DPTR中地址對(duì)外部存儲(chǔ)器尋址 bit 8位位

3、地址 addr11 11位目標(biāo)地址 addr16 16位目標(biāo)地址 rel 8位地址偏移量 $ 當(dāng)前指令的地址尋址方式:用何種方式尋找參與運(yùn)算的操作數(shù)或操作數(shù)的真實(shí)地址。MCS-51單片機(jī)有七種尋址方式: 立即尋址 直接尋址 寄存器尋址 寄存器間接尋址 變址尋址(基址寄存器+變址寄存器間接尋址) 相對(duì)尋址位尋址 指令直接給出一個(gè)操作數(shù),它緊跟在操作碼后,通常稱它為立即數(shù)(8位或16位)。 指令直接給出操作數(shù)所在存儲(chǔ)單元的地址,它緊跟在操作碼后。此方式是訪問專用寄存器的唯一方式(80H FFH)也可訪問內(nèi)部RAM的低128(8052的256)字節(jié) 指令選定的寄存器內(nèi)容就是實(shí)際操作數(shù),寄存器可為:R

4、0R7,由RS1、RS2兩位的值選定工作寄存器區(qū)A、B、CY(位),DPTR 指令所選中的寄存器內(nèi)容是實(shí)際操作數(shù)地址(而不是操作數(shù))尋址范圍內(nèi)部RAM(00H7FH/FFH)使用寄存器R0,R1,SP外部數(shù)據(jù)存儲(chǔ)器(0000HFFFFH) 操作數(shù)所指定的寄存器中存放的不是操作數(shù)本身,而是操作數(shù) 此種尋址方式以DPTR或PC作基址寄存器,A作變址寄存器(存放8位無符號(hào)數(shù)),兩者相加形成16位程序存儲(chǔ)器地址作操作數(shù)地址。 此指令用于查表此指令用于查表 E0A程序存儲(chǔ)區(qū)2040H 9320E0H 472041H DPH 20DPL 00ALU如:MOVC A,A+DPTR設(shè)DPTR=2000H,A=

5、E0H20E0H47指令代碼此種尋址方式以程序計(jì)數(shù)器PC的內(nèi)容為基地址,加上指令中給出的偏移量rel,所得結(jié)果為轉(zhuǎn)移目標(biāo)地址,用于轉(zhuǎn)移指令。偏移量rel是一8位有符號(hào)補(bǔ)碼數(shù),范圍128+127。所以轉(zhuǎn)移范圍應(yīng)在當(dāng)前PC指針的128+127之間某一程序存儲(chǔ)器地址中。 程序存儲(chǔ)區(qū)ALU如:JC 23H1025H1000H 401025H 451001H 23 1024H 471002H 3023H1002H指令代碼當(dāng)前PC以訪問觸發(fā)器的方式對(duì)內(nèi)部RAM、特殊功能寄存器SFR中的位地址空間進(jìn)行訪問稱之為位尋址??杀粚ぶ返奈唬浩瑑?nèi)RAM的20H2FH單元,位地址00H 7FH;SFR中12個(gè)能被8整除

6、的字節(jié)地址,位地址80H以上。方式方式利用的變量利用的變量使用的空間使用的空間寄存器寄存器R0R0R7R7,A A,B B,CYCY,DPTRDPTR片片 內(nèi)內(nèi)直接尋址直接尋址directdirect片內(nèi)片內(nèi)RAMRAM低低128128字節(jié)字節(jié)特殊功能寄存器特殊功能寄存器SFRSFR寄存器間址寄存器間址R0R0,R1R1,SPSPR0R0,R1R1,DPTRDPTR片內(nèi)片內(nèi)RAMRAM片外片外RAMRAM與與I/OI/O口口立即數(shù)立即數(shù)#data#data程序存儲(chǔ)器程序存儲(chǔ)器基址加變址基址加變址A+PC A+DPTRA+PC A+DPTR程序存儲(chǔ)器程序存儲(chǔ)器相對(duì)尋址相對(duì)尋址PC+relPC+r

7、el程序存儲(chǔ)器程序存儲(chǔ)器位尋址位尋址bitbit片內(nèi)片內(nèi)RAMRAM的的20H20H2FH2FH部分部分SFRSFR總結(jié)總結(jié) 數(shù)據(jù)傳送類指令: (29條) 算術(shù)運(yùn)算類指令: (24條) 邏輯運(yùn)算及移位類指令: (24條) 控制轉(zhuǎn)移類指令: (17條) 位操作(布爾操作)類指令:(17條) 內(nèi)部存儲(chǔ)器間傳送: (MOV 16條) 外部數(shù)據(jù)存儲(chǔ)器與累加器間傳送: (MOVX 4條) 程序存儲(chǔ)器向累加器傳送: (MOVC 2條) 數(shù)據(jù)交換: (XCH,XCHD,SWAP 5條) 堆棧操作: (PUSH,POP 2條)特點(diǎn):特點(diǎn):源操作數(shù)在內(nèi)部,目的操作數(shù)也在源操作數(shù)在內(nèi)部,目的操作數(shù)也在 內(nèi)部。內(nèi)部

8、。分分四類四類介紹如下介紹如下以以累加器累加器A A為目的字節(jié)為目的字節(jié)的傳送指令(的傳送指令(4 4條)條)以以RnRn為目的字節(jié)為目的字節(jié)的傳送指令(的傳送指令(3 3條)條)以以直接地址為目的字節(jié)直接地址為目的字節(jié)的傳送指令(的傳送指令(5 5條)條)以以間接地址為目的字節(jié)間接地址為目的字節(jié)的傳送指令(的傳送指令(4 4條)條)(1)立即數(shù)送累加器 MOV A,#data;A #data(2)寄存器內(nèi)容送累加器 MOV A,Rn ;A (Rn) (n=07)(3)內(nèi)部RAM或SFR內(nèi)容送累加器 MOV A,direct ; A (direct)(4)內(nèi)部RAM內(nèi)容送累加器 MOV A,R

9、i ;A (Ri) (i=0,1) (5)立即數(shù)送寄存器 MOV Rn,#data; (Rn) #data (n=07) (6)累加器內(nèi)容送寄存器 MOV Rn,A ;Rn (A) (n=07)(7)內(nèi)部RAM或SFR內(nèi)容送寄存器 MOV Rn,direct ;Rn (direct) (n=07)(8)立即數(shù)送內(nèi)部RAM或SFR MOV direct,#data ; direct #data(9)累加器內(nèi)容送內(nèi)部RAM或SFR MOV direct ,A ; direct (A)(10)寄存器內(nèi)容送內(nèi)部RAM或SFR MOV direct ,Rn ; direct (Rn) (n=07)(11

10、)內(nèi)部RAM或SFR之間直接傳送 MOV direct1,direct2 ; direct1 (direct2)(12)內(nèi)部RAM內(nèi)容送內(nèi)部RAM或SFR MOV direct,Ri; direct (Ri) (i=0,1) (13)立即數(shù)送內(nèi)部RAM MOV Ri ,#data; (Ri) #data (i=0,1) (14)累加器內(nèi)容送內(nèi)部RAM MOV Ri ,A; (Ri) (A) (i=0,1) (15)內(nèi)部RAM或SFR內(nèi)容送內(nèi)部RAM MOV Ri ,direct; (Ri) (direct) (i=0,1) (16)16位立即數(shù)傳送指令 MOV DPTR ,#data16 ;

11、DPTR #data16; DPH #dataH ; DPL #dataL格式:MOVX A,DPTR;A (DPTR) MOVX DPTR,A ; (DPTR) (A) MOVX A,Ri ; A (Ri) (i=0,1) MOVX Ri , A ; A (Ri) (i=0,1)特點(diǎn):?jiǎn)巫止?jié)指令第1、2條指令可以在外部RAM 64K范圍尋址;第3、4條指令可以對(duì)外部RAM的第0頁尋址;尋址范圍是0000H00FFH。說明: 1.在51中,與外部存儲(chǔ)器RAM打交道的只可以是A累加器。所有需要送入外部RAM的數(shù)據(jù)必需要通過A送去,而所有要讀入的外部RAM中的數(shù)據(jù)也必需通過A讀入。 在此我們可以看

12、出內(nèi)外部RAM的區(qū)別了,內(nèi)部RAM間可以直接進(jìn)行數(shù)據(jù)的傳遞,而外部則不行。 比如,要將外部RAM中某一單元(設(shè)為0100H單元的數(shù)據(jù))送入另一個(gè)單元(設(shè)為0200H單元),也必須先將0100H單元中的內(nèi)容讀入A,然后再送到0200H單元中去。 2. 2.要讀或?qū)懲獠康囊x或?qū)懲獠康腞AMRAM,當(dāng)然也必須要知道,當(dāng)然也必須要知道RAMRAM的地址,的地址,在后兩條指令中,地址是被直接放在在后兩條指令中,地址是被直接放在DPTRDPTR中的。而前兩條中的。而前兩條指令,由于指令,由于RiRi(即(即R0R0或或R1R1)只是)只是8 8位的寄存器,所以只提位的寄存器,所以只提供低供低8 8位地址

13、。高位地址。高8 8位地址由位地址由P2P2口口來提供。來提供。 3.3.使用時(shí)應(yīng)先將要讀或?qū)懙牡刂匪腿胧褂脮r(shí)應(yīng)先將要讀或?qū)懙牡刂匪腿隓PTRDPTR或或RiRi中,然后中,然后再用讀寫命令。再用讀寫命令。 例例:將外部:將外部RAMRAM中中100H100H單元中的內(nèi)容送入外部單元中的內(nèi)容送入外部RAMRAM中中200H200H單元中。單元中。MOV DPTRMOV DPTR,#0100H#0100HMOVX AMOVX A,DPTRDPTRMOV DPTRMOV DPTR,#0200H#0200HMOVX DPTRMOVX DPTR,A A格式:MOVC A,A+DPTR ; A (A)+

14、(DPTR) MOVC A,A+PC ; PC (PC)+1 ; A (A)+(PC)特點(diǎn):這兩條指令為單字節(jié)查表指令DPTR、PC中存放被查表的始址功能:根據(jù)A中項(xiàng)數(shù),查得表中對(duì)應(yīng)值送入累加器A中。 給出每條指令執(zhí)行后的結(jié)果給出每條指令執(zhí)行后的結(jié)果 MOV 23H,#30HMOV 12H,#34HMOV R0,#23HMOV R7,12HMOV R1,#12HMOV A,R0MOV 34H,R1MOV 45H,34HMOV DPTR,#6712HMOV 12H,DPHMOV R0,DPLMOV A,R0;(23H)=30H;(12H)=34H;R0=23HXXXXXXXXXXXXXXXXXX

15、XXXXXXXXXXXXXXXXXXDPHDPHDPLDPL45H45H34H34H23H23H12H12HR7R7R1R1R0R0XXXXXXXXXXXXXXXX30303434XXXXXXXX2323XXXXXXXXXXXXXXXX30303434343412122323676712123434343430303434343412122323676712123434343430306767343412121212;R7=34H;R1=12H;A=30H;(34H)=34H;(45H)=34H;DPTR=6712H;(12H)=6767H;R0=1212H;A=6767H內(nèi)部RAMMOV P

16、1, #0FEH ; 11111110B可以使可以使P1.0上的發(fā)光二極管點(diǎn)亮上的發(fā)光二極管點(diǎn)亮MOV P1, #0F0H ; 11110000B可以使可以使P1口上的上面口上的上面4個(gè)發(fā)光二個(gè)發(fā)光二極管點(diǎn)亮,極管點(diǎn)亮,8051的輸入的輸入/輸出口輸出口都是漏極開路輸出,其中都是漏極開路輸出,其中P1、P2和和P3口內(nèi)部有口內(nèi)部有30K歐的上拉電歐的上拉電阻,屬于電壓輸出型。但是從阻,屬于電壓輸出型。但是從外部流入外部流入1020mA的電流是可的電流是可以的。以的。P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 5vP1.0 aP1.1 bP1.2 cP1.3

17、dP1.4 eP1.5 fP1.6 gP1.7 dp5vMOV P1, #00H ; 顯示顯示 8.MOV P1, #0F8H ; 顯示顯示 7MOV P1, #88H ; 顯示顯示 A單片機(jī)的一個(gè)引腳輸出的高低電平,可以通過單片機(jī)的一個(gè)引腳輸出的高低電平,可以通過“光電光電耦合器耦合器”控制繼電器,從而以控制繼電器,從而以“弱電弱電”控制控制“強(qiáng)電強(qiáng)電”。格式:XCH A,Rn ; (A)(Rn) (n=07) XCH A,direct ; (A) (direct) XCH A,Ri; (A) (Ri) (i=0,1) XCHD A,Ri ; (A30) (Ri)30) (i=0,1) SW

18、AP A ; (A30) (A74) 特點(diǎn):XCH是Exchange的縮寫前三條指令執(zhí)行后會(huì)影響PSW中的P標(biāo)志。XCHD是Exchange Decimal的縮寫, 使用該指令前應(yīng)預(yù)先給Ri中置地址。格式:PUSH direct ; SP (SP)+1 ;(SP) (direct) POP direct ; direct (SP) ;SP (SP)1特點(diǎn):Rn和A不能直接用在本指令中,A必須用ACC(或E0H),Rn也要用它的物理地址。不帶進(jìn)位加:(ADD 4條)帶進(jìn)位加:(ADDC 4條)增量指令:(INC 5條)十進(jìn)制調(diào)整指令: (DA 1條)減法指令: (SUBB 4條)減量指令: (D

19、EC 4條)乘法指令: (MUL 1條)除法指令: (DIV 1條)格式:ADD A,#data ; A (A)+#data ADD A,Rn; A (A)+(Rn) (n=07) ADD A,Ri ; A (A)+(Ri) (i=0,1) ADD A,direct ; A (A)+(direct) 特點(diǎn):兩個(gè)操作數(shù)均為8位,其中之一是累加器A;加法操作在ALU中完成,結(jié)果送回累加器,運(yùn)算時(shí)產(chǎn)生的標(biāo)志位在PSW中;不論兩操作數(shù)是否為帶符號(hào)數(shù),機(jī)器均按帶符號(hào)數(shù)運(yùn)算。例:請(qǐng)分析如下指令執(zhí)行后累加器A和PSW中內(nèi)容是什么?MOV A,#5AHADD A,#6BH求解: A=0 1 0 1 1 0 1

20、 0B + data=0 1 1 0 1 0 1 1BCy 1 1 0 0 0 1 0 1BPSW:CyACF0RS1RS0OV-P01000100格式:ADDC A,#data ; A (A)+#data+Cy ADDC A,Rn; A (A)+(Rn)+Cy (n=07) ADDC A,Ri ; A (A)+(Ri)+Cy (i=0,1) ADDC A,direct ; A (A)+(direct)+Cy特點(diǎn):注釋中的Cy中內(nèi)容為指令執(zhí)行前Cy內(nèi)容,指令執(zhí)行后形成新的Cy保留在PSW中,其余和不帶Cy的加法指令相同;本類指令用于多字節(jié)加法程序中。格式:INC A; A (A)+1INC R

21、n; Rn (Rn)+1 (n=07) INC direct ; direct (direct)+1INC Ri ; (Rn) (Rn)+1 (n=0,1) INC DPTR; DPTR (DPTR)+1 特點(diǎn):INC是Increase的縮寫;本指令僅對(duì)PSW中P標(biāo)志有影響。格式:DA A 操作:若累加器低4位大于9或BCD碼加時(shí)有半進(jìn)位AC=1,則A (A)+06H 若累加器高4位大于9或BCD碼加時(shí)有全進(jìn)位CY=1,則A (A)+60H。特點(diǎn):DA是Decimal Adjust的縮寫;緊跟加法指令后,對(duì)加法結(jié)果調(diào)整;用于BCD加、BCD減運(yùn)算。ALU只能進(jìn)行二進(jìn)制加法(即低4位向高4位逢1

22、6進(jìn)1),為實(shí)現(xiàn)BCD加法,就必須對(duì)ALU的加法結(jié)果進(jìn)行BCD調(diào)整,使其變成BCD數(shù)(BCD加法是逢10進(jìn)1的)。例:寫出85+59=144BCD加法程序,并對(duì)加法過程和BCD調(diào)整進(jìn)行分析。求解:ORG1000HMOV A,#85H; A #85HADDA,#59H; A (A)+#59HDAA; A #44H,Cy=1SJMP $END上例加法操作及BCD調(diào)整過程: DA A指令只能用在加法指令后,對(duì)二進(jìn)制加法結(jié)果進(jìn)行調(diào)整。BCD減法可以采用以下方法:1、求減數(shù)的補(bǔ)碼;2、進(jìn)行被減數(shù)+減數(shù)補(bǔ)數(shù)運(yùn)算;3、對(duì)所得兩數(shù)之和進(jìn)行BCD調(diào)整。例:寫出91-34=57的BCD減法程序。求解: ORG10

23、00HCLRC; C 0MOVA,#9AH ; A #9AHSUBBA,#34H; 求-34補(bǔ)ADDA,#91H ;求91+-34補(bǔ)DAA; BCD調(diào)整SJMP$END上例減法操作及BCD調(diào)整過程:格式:SUBB A,#data ; A (A)#dataCy SUBB A,Rn ; A (A)(Rn)Cy (n=07) SUBB A,direct ; A (A) (direct) Cy SUBB A, Ri ; A (A)(Ri)Cy (n=0,1) 特點(diǎn):SUBB是Subtraction Borrow的縮寫;本指令用于單字節(jié)、多字節(jié)減法程序;機(jī)器按帶符號(hào)數(shù)運(yùn)算,并產(chǎn)生PSW中標(biāo)志;形成OV標(biāo)

24、志的規(guī)則為:正數(shù)-正數(shù)不會(huì)溢出,故OV=0;負(fù)數(shù)-負(fù)數(shù)不會(huì)溢出,故OV=0; 正數(shù)-負(fù)數(shù)若差為負(fù),則OV=1; 負(fù)數(shù)-正數(shù)若差為正,則OV=1。格式:DEC A; A (A)1 DEC Rn ; Rn (Rn)1 (n=07) DEC direct ; direct (direct) 1 DEC Ri ; (Ri) (Ri)1 (n=0,1) 特點(diǎn):DEC是Decrease的縮寫;DEC A指對(duì)PSW中P標(biāo)志有影響。功能:使源地址所對(duì)應(yīng)的RAM單元中內(nèi)容減1。格式:MUL AB; B A (A)(B) ; Cy0 DIV A B ; A (A)/(B)的商;; B (A)/(B)的余數(shù);; C

25、y 0,OV 0特點(diǎn):MUL是Multiply的縮寫, DIV是Divide的縮寫;單字節(jié)指令,執(zhí)行時(shí)間為48T(4機(jī)器周期);操作數(shù)均為8位無符號(hào)數(shù)。邏輯與指令:(ANL 6條)邏輯或指令:(ORL 6條)邏輯異或指令: (XRL 6條)累加器清除與求反指令: (CLR、CPL 2條)移位指令: ( RL、RLC、RR、RRC 4條)格式:ANL A,#data ; A (A)#data ANL A,Rn ; A (A)(Rn) (n=07) ANL A,direct ; A (A)(direct) ANL A, Ri ; A(A)(Ri) (n=0,1) ANL direct,A; dir

26、ect (direct)(A) ANL direct,#data; direct (direct)#data 特點(diǎn):ANL是AND Logical的縮寫;前四條指令執(zhí)行后會(huì)對(duì)PSW中P標(biāo)志產(chǎn)生影響。用途:可從某字節(jié)中取出某幾位。格式:ORL A,#data ; A (A) #data ORL A,Rn ; A (A) (Rn) (n=07) ORL A,direct ; A (A) (direct) ORL A, Ri ; A(A) (Ri) (n=0,1) ORL direct,A; direct (direct) (A) ORL direct,#data; direct (direct)

27、#data 特點(diǎn):ORL是OR Logical的縮寫;前四條指令執(zhí)行后會(huì)對(duì)PSW中P標(biāo)志產(chǎn)生影響。用途:給某字節(jié)中某幾位置1。格式:XRL A,#data ; A (A) #data XRL A,Rn ; A (A) (Rn) (n=07) XRL A,direct ; A (A) (direct) XRL A, Ri ; A (A) (Ri) (n=0,1) XRL direct,A; direct (direct) (A) XRL direct,#data; direct (direct) #data 特點(diǎn):XRL是XOR Logical的縮寫;前四條指令執(zhí)行后會(huì)對(duì)PSW中P標(biāo)志產(chǎn)生影響。

28、用途:令某字節(jié)中某幾位置取反,其余位不變。+格式:CLR A ; A 0 CPL A ; A 特點(diǎn):CLR是Clearing的縮寫CPL是Complement of ones的縮寫;CLR A指令執(zhí)行后,Cy=0。用途:CLR用于是累加器清零;CPL可用于求某數(shù)的補(bǔ)碼。)(A 循環(huán)移位指令(4 4條)條)RL ARR ARLC ARRC AA.7 A.0A.7 A.0A.7 A.0CYCYA.7 A.0RL是是Rotate Left的縮寫,的縮寫,RR是是Rotate Right的縮寫;的縮寫;后兩條指令,影響后兩條指令,影響P P標(biāo)志和標(biāo)志和CYCY。 Rotate Logic instru

29、ction例:若若A=5CHA=5CH,CY=1CY=1,執(zhí)行,執(zhí)行RLC ARLC A后,后,v 對(duì)對(duì)RLCRLC、RRCRRC指令,在指令,在CY=0CY=0時(shí)時(shí) RLCRLC相當(dāng)于相當(dāng)于乘乘以以2 2 RRCRRC相當(dāng)于相當(dāng)于除除以以2 2結(jié)果:結(jié)果:A=B9HA=B9H,CY=0CY=0,P=1P=10101 11000101 11001 11011 10011011 10010 0用途:用途:對(duì)某數(shù)擴(kuò)大或縮小對(duì)某數(shù)擴(kuò)大或縮小1 1倍。倍。無條件轉(zhuǎn)移指令:(LJMP、AJMP、SJMP、JMP 4條)條件轉(zhuǎn)移指令:(JZ、JNZ、CJNE、DJNZ 8條)子程序調(diào)用及返回指令: (LC

30、ALL、ACALL、RET、RETI 4條)空操作指令: (NOP 1條)格式:LJMP addr16 ; PC addr16 AJMP addr11 ; PC(PC)+2; PC100 指令中的A100 SJMP rel ; PC (PC)+2; PC (PC)+rel JMP A+DPTR ; PC (A)+(DPTR)特點(diǎn):這類指令執(zhí)行時(shí)不會(huì)影響PSW中各標(biāo)志位;指令的操作對(duì)象是PC中地址;第2、3條指令是相對(duì)轉(zhuǎn)移指令,匯編時(shí)能產(chǎn)生浮動(dòng)代碼,在子程序中很有用。本指令是2KB范圍內(nèi)的絕對(duì)轉(zhuǎn)移指令:AJMP addr11 ; PC(PC)+2(形成頁面地址PC15-11); PC100 ad

31、dr11 (形成頁面地址)說明:本指令是雙字節(jié)指令。指令碼為:a10 a9 a8 0 0 0 0 1 a7 a6 a0 操作碼其中a10a0為低11位目標(biāo)地址。編程時(shí)addr11常用符號(hào)地址,匯編時(shí)翻譯成機(jī)器碼。0000H1 區(qū)0 區(qū)31 區(qū)AJMPPC15 PC14 PC13 PC12 PC11 PC10 PC9 PC8 PC7 PC00800H0FFFH1000H17FFHF800HFFFFHA10 A9 A8 00001 A7 A0在 2 區(qū)形成11 位目標(biāo)地址保持高 5 位地址確定某區(qū) 圖 3-11 指令 AJMP 執(zhí)行過程0 0 0 1 0請(qǐng)計(jì)算如下程序中的地址偏移量rel。ORG1

32、000H1000H 7401HSTART: MOVA, #01H1002H F8HMOVR0, A1017H 80H relSJMPSTARTEND累加器A判零轉(zhuǎn)移指令: (JZ、JNZ 2條)比較條件轉(zhuǎn)移指令:(CJNE 4條)減1條件轉(zhuǎn)移指令:(DJNZ 2條)格式:JZ rel;若(A)0,則PC (PC)+2 ;若(A)=0,則PC (PC)+2+rel JNZ rel;若(A)=0,則PC (PC)+2 ;若(A)0,則PC (PC)+2+rel特點(diǎn):雙字節(jié)指令,第一字節(jié)是操作碼,第二字節(jié)rel是一個(gè)帶符號(hào)數(shù);rel在編程時(shí)采用符號(hào)地址,匯編時(shí)翻譯成內(nèi)存地址。格式:CJNE A,#d

33、ata,rel CJNE Rn,#data,rel (n=07) CJNE Ri,#data,rel (i=0,1) CJNE A,direct,rel 特點(diǎn):三字節(jié)指令,第3字節(jié)是rel,轉(zhuǎn)移范圍為-125+130;若A、B為帶符號(hào)數(shù),則Cy的形成原則是:若A=B,則Cy=0;若AB,則Cy=01。格式:DJNZ Rn,rel ; Rn (Rn)-1 (n=07) ;若(Rn)=0,則PC (PC)+2 ;若(Rn)0,則PC (PC)+2+rel DJNZ direct,rel ; direct (direct)-1 ;若(direct)=0,則PC (PC)+3 ;若(direct)0,則PC (PC)+3+rel 特點(diǎn):在DJNZ中,D是Decrease,J是Jump,N是No

溫馨提示

  • 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)論