




已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第3章 MCS-51的指令系統(tǒng),介紹MCS-51匯編語言的指令系統(tǒng)。 3.1 指令系統(tǒng)概述 MCS-51的基本指令共111條,按指令所占的字節(jié)來分: (1) 單字節(jié)指令49條; (2) 雙字節(jié)指令45條; (3) 三字節(jié)指令17條。 按指令的執(zhí)行時間來分: (1) 1個機器周期(12個時鐘振蕩周期)指令64條 (2) 2個機器周期(24個時鐘振蕩周期)指令45條,(3) 只有乘、除兩條指令的執(zhí)行時間為4個機器周期(48個時鐘振蕩周期)。 12MHz晶振:機器周期為1s。 3.2 指令格式 兩部分組成,即操作碼和操作數(shù)。 操作碼用來規(guī)定指令進(jìn)行什么操作 操作數(shù)則是指令操作的對象 有單字節(jié)指令、雙字節(jié)指令、三字節(jié)不同長度的指令,格式不同: (1)單字節(jié)指令:指令只有一個字節(jié),操作碼和操作數(shù)同在一個字節(jié)中。,(2)雙字節(jié)指令:一個字節(jié)為操作碼,另一個字節(jié)是操作數(shù)。 (3)三字節(jié)指令:操作碼占一個字節(jié),操作數(shù)占二個字節(jié)。其中操作數(shù)既可能是數(shù)據(jù),也可能是地址。 3.3 指令系統(tǒng)的尋址方式 尋址方式就是在指令中說明操作數(shù)所在地址的方法。 共7種尋址方式。 1寄存器尋址方式 操作數(shù)在寄存器中 MOV A,Rn ;(Rn)A,n=07 表示把寄存器Rn的內(nèi)容傳送給累加器A,尋址范圍包括: (1)4組通用工作寄存區(qū)共32個工作寄存器。 (2)部分特殊功能寄存器,例如A、B 以及數(shù)據(jù)指針寄存器DPTR等。 2直接尋址方式 操作數(shù)直接以單元地址的形式給出: MOV A,40H 尋址范圍: (1) 內(nèi)部RAM的128個單元 (2) 特殊功能寄存器。除了以單元地址的形式外,還可用寄存器符號的形式給出。例如: MOV A,80H 與 MOV A,P0是等價的。,3. 寄存器間接尋址方式 寄存器中存放的是操作數(shù)的地址 在寄存器的名稱前面加前綴標(biāo)志“” 訪問內(nèi)部RAM或外部數(shù)據(jù)存儲器的低256個字節(jié)時,只能采用R0或R1作為間址寄存器。例如: MOV A,Ri ;i=0或1 其中Ri中的內(nèi)容為40H,把內(nèi)部RAM40H單元內(nèi)容送A。 尋址范圍: (1)訪問內(nèi)部RAM低128個單元,其通用形式為Ri (2)對片外數(shù)據(jù)存儲器的64K字節(jié)的間接尋址,例如: MOVX A,DPTR,(3)片外數(shù)據(jù)存儲器的低256字節(jié) 例如:MOVX A,Ri (4)堆棧區(qū) 堆棧操作指令PUSH(壓棧)和POP(出棧)使用堆棧指針(SP)作間址寄存器 4立即尋址方式 操作數(shù)在指令中直接給出,需在操作數(shù)前面加前綴 “#”。例如: MOV A,#40H 5基址寄存器加變址寄存器間址尋址方式 本尋址方式是以DPTR或PC作基址寄存器,以累加器A作為變址寄存器。,例如:指令 MOVC A,A+DPTR 其中A的原有內(nèi)容為05H,DPTR的內(nèi)容為0400H,該指令執(zhí)行的結(jié)果是把程序存儲器0405H單元的內(nèi)容傳送給A。 說明: (1)本尋址方式是專門針對程序存儲器的尋址方式,尋址范圍可達(dá)到64KB。 (2)本尋址方式的指令只有3條: MOVC A,A+DPTR MOVC A,A+PC JMP A+DPTR,6位尋址方式 MCS-51有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作,例如: MOV C,40H 是把位40H的值送到進(jìn)位位C。 尋址范圍包括: (1)內(nèi)部RAM中的位尋址區(qū)。位有兩種表示方法,例如,40H;另一種是單元地址加上位,例如,(28H).0,指的是28H單元中的最低位。它們是等價的。 (2)特殊功能寄存器中的可尋址位 可尋址位在指令中有如下4種的表示方法: a. 直接使用位地址。例如PSW.5的位地址為0D5H。,b.位名稱的表示方法。例如:PSW.5是F0標(biāo)志位,可使用F0表示該位。 c.單元地址加位數(shù)的表示方法。例如 :(0D0H).5。 d.特殊功能寄存器符號加位數(shù)的表示方法。例如:PSW.5。 7相對尋址方式 在相對尋址的轉(zhuǎn)移指令中,給出了地址偏移量,以“rel”表示,即把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址: 目的地址=轉(zhuǎn)移指令所在的地址 + 轉(zhuǎn)移指令的字節(jié)數(shù) + rel 偏移量rel是一帶符號的8位二進(jìn)制數(shù)補碼數(shù) 。,范圍是:128 +127 向地址增加方向最大可轉(zhuǎn)移(127+轉(zhuǎn)移指令字節(jié))個單元地址,向地址減少方向最大可轉(zhuǎn)移(128-轉(zhuǎn)移指令字節(jié))個單元地址。 7種尋址方式及尋址空間,見表3-1(P43)。 3.4 MCS-51指令系統(tǒng)分類介紹 111條指令,按功能分類,可分為下面5大類: (1)數(shù)據(jù)傳送類(28條) (2)算術(shù)操作類(24條 (3)邏輯運算類(25條) (4)控制轉(zhuǎn)移類(17條) (5)位操作類(17條),指令中符號的意義: Rn 當(dāng)前寄存器區(qū)的8個工作寄存器R0R7(n=07)。 Ri 當(dāng)前選中的寄存器區(qū)中可作間接尋址寄存器的2 個寄存器R0、R1(i=0,1)。 Direct 直接地址,即8位的內(nèi)部數(shù)據(jù)存儲器單元或特殊功能寄存器的地址。 #data 包含在指令中的8位立即數(shù)。 #data16 包含在指令中的16位立即數(shù)。 rel 相對轉(zhuǎn)移指令中的偏移量,為8位的帶符號補 碼數(shù) DPTR 數(shù)據(jù)指針,可用作16位的數(shù)據(jù)地址寄存器。 bit 內(nèi)部RAM或特殊功能寄存器中的直接尋址位。 C(或Cy) 進(jìn)位標(biāo)志位或位處理機中的累加器。,addr11 11位目的地址 addr16 16位目的地址 間接尋址寄存器前綴,如Ri,A+DPTR (X) X中的內(nèi)容。 (X) 由X尋址的單元中的內(nèi)容。 箭頭右邊的內(nèi)容被箭頭左邊的內(nèi)容所取代。 3.4.1 數(shù)據(jù)傳送類指令 使用最頻繁的一類指令,通用格式: MOV , 屬“復(fù)制”性質(zhì),而不是“搬家” 數(shù)據(jù)傳送類指令不影響標(biāo)志位, Cy、Ac和OV,但不包括奇偶標(biāo)志位P。,1以累加器為目的操作數(shù)的指令 MOV A,Rn ; (Rn)A,n=07 MOV A,Ri ; (Ri)A,i=0,1 MOV A,direct ;(direct)A MOV A,#data ; #dataA 例如: MOV A,R6 ;(R6)A,寄存器尋址 MOV A,70H ;(70H)A,直接尋址 MOV A,R0 ;(R0)A,間接尋址 MOV A,#78H ;78HA,立即尋址 2. 以Rn為目的操作數(shù)的指令,MOV Rn,A ; (A)Rn,n=07 MOV Rn,direct ;(direct)Rn,n=07 MOV Rn,#dat ; #dataRn,n=07 功能:是把源操作數(shù)的內(nèi)容送入當(dāng)前一組工作寄存器區(qū)的R0R7中的某一個寄存器。 3.以直接地址direct為目的操作數(shù)的指令 MOV direct,A ; (A)direct MOV direct,Rn;(Rn)direct, n=07 MOV direct1,direct2; MOV direct,Ri ; (Ri)direct MOV direct,#data; #datadirect,功能:把源操作數(shù)送入直接地址指出的存儲單元。direct指的是內(nèi)部RAM或SFR的地址。 4.以寄存器間接地址為目的操作數(shù)的指令 MOV Ri,A ;(A)(Ri),i=0,1 MOV Ri,direct ; (direct)(Ri) MOV Ri,#data ; #data(Ri) 5.16位數(shù)傳送指令 MOV DPTR,#data16 ; #data16DPTR 唯一的16位數(shù)據(jù)的傳送指令 ,立即數(shù)的高8位送入DPH,立即數(shù)的低8位送入DPL。,6堆棧操作指令 MCS-51內(nèi)部RAM中可以設(shè)定一個后進(jìn)先出(LIFO-Last In First Out)的區(qū)域稱作堆棧. 堆棧指針SP指出堆棧的棧頂位置。 (1)進(jìn)棧指令 PUSH direct 先將棧指針SP加1,然后把direct中的內(nèi)容送到棧指針SP指示的內(nèi)部RAM單元中。 例如: 當(dāng)(SP)=60H,(A)=30H,(B)=70H時, 執(zhí)行: PUSH ACC ; (SP)+1=61HSP,(A)61H PUSH B ;,(SP)+1=62HSP,(B)62H 結(jié)果:(61H)=30H,(62H)=70H,(SP)=62H (2)出棧指令 POP direct SP指示的棧頂(內(nèi)部RAM單元)內(nèi)容送入direct字節(jié)單元中,棧指針SP減1. 例如: 當(dāng) (SP)=62H,(62H)=70H,(61H)=30H, 執(zhí)行: POP DPH ;(SP)DPH,(SP)-1SP POP DPL ;(SP)DPL,(SP)-1SP 結(jié)果:(DPTR)=7030H,(SP)=60H,7.累加器A與外部數(shù)據(jù)存儲器傳送指令 MOVX A,DPTR ;(DPTR)A,讀外部RAM/IO MOVX A,Ri ;(Ri)A,讀外部RAM/IO MOVX DPTR,A;(A)(DPTR),寫外部RAM/IO MOVX Ri,A ;(A)(Ri),寫外部RAM/IO 功能:讀外部RAM存儲器或I/O中的一個字節(jié),或把A中一個字節(jié)的數(shù)據(jù)寫到外部RAM存儲器或I/O中。 注意:RD*或WR*信號有效。 采用DPTR間接尋址,高8位地址(DPH)由P2口輸出,低8位地址(DPL)由P0口輸出。 采用Ri(i=0,1)間接尋址,可尋址片外256個單元的數(shù)據(jù)存儲器。Ri內(nèi)容由P0口輸出。,8位地址和數(shù)據(jù)均由P0口輸出,可選用其它任何輸出口線來輸出高于8位的地址(一般選用P2口輸出高8位的地址)。 MOV后 “X”表示單片機訪問的是片外RAM存儲器或I/O。 8.查表指令 共兩條,用于讀程序存儲器中的數(shù)據(jù)表格的指令,均采用基址寄存器加變址寄存器間接尋址方式。 (1) MOVC A,A+PC 以PC作基址寄存器,A的內(nèi)容作為無符號整數(shù)和PC中的內(nèi)容(下一條指令的起始地址)相加后得到一個16位的地址,該地址指出的程序存儲單元的內(nèi)容送到累加器A。 注意:PSEN*信號有效。,例如: (A)=30H,執(zhí)行地址1000H處的指令 1000H: MOVC A,A+PC 本指令占用一個字節(jié),執(zhí)行結(jié)果將程序存儲器中1031H的內(nèi)容送入A。 優(yōu)點:不改變特殊功能寄存器及PC的狀態(tài),根據(jù)A的內(nèi)容就可以取出表格中的常數(shù)。 缺點:表格只能存放在該條查表指令后面的256個單元之內(nèi),表格的大小受到限制,且表格只能被一段程序所利用。 (2) MOVC A,A+DPTR 以DPTR作為基址寄存器,A的內(nèi)容作為無符號數(shù)和DPTR的內(nèi)容相加得到一個16位的地址,把由該地址指出的程序存儲器單元的內(nèi)容送到累加器A.,例如 (DPTR)=8100H (A)=40H 執(zhí)行指令 MOVC A,A+DPTR 本指令的執(zhí)行結(jié)果只和指針DPTR及累加器A的內(nèi)容有關(guān),與該指令存放的地址及常數(shù)表格存放的地址無關(guān),因此表格的大小和位置可以在64K程序存儲器中任意安排,一個表格可以為各個程序塊公用。 兩條指令是在MOV的后面加C,“C”是CODE的第一個字母,即代碼的意思。 9字節(jié)交換指令 XCH A,Rn XCH A,direct XCH A,Ri,例如: (A)=80H,(R7)=08H,(40H)=F0H (R0)=30H,(30H)=OFH 執(zhí)行下列指令: XCH A,R7 ;(A)與(R7)互換 XCH A,40H ;(A)與(40H)互換 XCH A,R0 ;(A)與(R0)互換 結(jié)果:(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H 10半字節(jié)交換指令 XCHD A,Ri 累加器的低4位與內(nèi)部RAM低4位交換。例如: (R0)=60H,(60H)=3EH,(A)=59H,執(zhí)行完 XCHD A,RO 指令,則(A)=5EH,(60H)=39H。 3.4.2 算術(shù)操作類指令 單字節(jié)的加、減、乘、除法指令,都是針對8位二進(jìn)制無符號數(shù)。 執(zhí)行的結(jié)果對Cy、Ac、OV 三種標(biāo)志位有影響。 但增1和減1指令不影響上述標(biāo)志。 1加法指令 共有4條加法運算指令: ADD A,Rn ;(A)+(Rn)A,n=07 ADD A,direct ;(A)+(direct)A ADD A,Ri ;(A)+(Ri)A,i=0,1,ADD A,#data ; (A)+#dataA 一個加數(shù)總是來自累加器A,而另一個加數(shù)可由不同的尋址方式得到。結(jié)果總是放在A中。 使用加法指令時,要注意累加器A中的運算結(jié)果對各個標(biāo)志位的影響: (1)如果位7有進(jìn)位,則置“1”進(jìn)位標(biāo)志Cy,否則清“0”Cy (2)如果位3有進(jìn)位,置“1”輔助進(jìn)位標(biāo)志Ac,否則清“0”Ac(Ac為PSW寄存器中的一位),(3)如果位6有進(jìn)位,而位7沒有進(jìn)位,或者位7有進(jìn)位,而位6沒有,則溢出標(biāo)志位OV置“1”,否則清“0”O(jiān)V。 溢出標(biāo)志位OV的狀態(tài),只有在帶符號數(shù)加法運算時才有意義。當(dāng)兩個帶符號數(shù)相加時,OV=1,表示加法運算超出了累加器A所能表示的帶符號數(shù)的有效范圍,例 (A)=53H,(R0)=FCH,執(zhí)行指令 ADD A,R0 結(jié)果: (A)=4FH,Cy=1,Ac=0,OV=0,P=1 注意:上面的運算中,由于位6和位7同時有進(jìn)位,所以標(biāo)志位OV=0。 例 (A)= 85H,(R0)=20H,(20H)=AFH,執(zhí)行指令: ADD A,R0 結(jié)果:(A)=34H,Cy=1,Ac=1,OV=1,P=1 注意:由于位7有進(jìn)位,而位6無進(jìn)位,所以標(biāo)志位OV=1,2帶進(jìn)位加法指令 標(biāo)志位Cy參加運算,因此是三個數(shù)相加。共4條: ADDC A,Rn ;(A)+(Rn)+CA,n=07 ADDC A,direct ;(A)+(direct)+CA ADDC A,Ri ;(A)+(Ri)+CA,i=0,1 ADDC A,#data ;(A)+#data+CA 例:(A)=85H,(20H)=FFH,Cy=1,執(zhí)行指令: ADDC A,20H 結(jié)果為:(A)=85H,Cy=1,Ac=1,OV=0,P=1 (A中1 的位數(shù)為奇數(shù)),3增1指令 5條增1指令: INC A INC Rn ;n=07 INC direct INC Ri ;i=0,1 INC DPTR 不影響PSW中的任何標(biāo)志。 第5條指令I(lǐng)NC DPTR,是16位數(shù)增1指令。指令首先對低8位指針DPL的內(nèi)容執(zhí)行加1的操作,當(dāng)產(chǎn)生溢出時,就對DPH的內(nèi)容進(jìn)行加1操作,并不影響標(biāo)志Cy的狀態(tài)。,4十進(jìn)制調(diào)整指令 用于對BCD碼十進(jìn)制數(shù)加法運算結(jié)果的內(nèi)容修正。 指令格式: DA A 兩個BCD碼按二進(jìn)制相加之后,必須經(jīng)本指令的調(diào)整 才能得到正確的壓縮BCD碼的和數(shù)。 二進(jìn)制數(shù)的加法運算原則并不能適用于十進(jìn)制數(shù)的加法運算,有時會產(chǎn)生錯誤結(jié)果。例如: (a)3+6=9 0011+0101=1001 運算結(jié)果正確 (b)7+8=15 0111+1000=1111 運算結(jié)果不正確 (c)9+8=17 1001+1000=00001 C=1 結(jié)果不正確,二進(jìn)制數(shù)加法指令不能完全適用于BCD碼十進(jìn)制數(shù)的加法運算,對結(jié)果作有條件的修正 十進(jìn)制調(diào)整 出錯原因和調(diào)整方法: BCD碼只用了了其中的10個,6個沒用到的編碼。 (1010,1011,1100,1101,1110,1111)為無效碼 凡結(jié)果進(jìn)入或者跳過無效碼編碼區(qū)時,其結(jié)果就是錯誤的。,調(diào)整的方法是把結(jié)果加6調(diào)整,即所謂十進(jìn)制調(diào)整修正。 修正方法應(yīng)是: (a)累加器低4位大于9或輔助進(jìn)位位Ac=1,則進(jìn)行低4位加6修正。 (b)累加器高4位大于9或進(jìn)位位Cy=1,則進(jìn)行高4位加6修正。 (c)累加器高4位為9,低4位大于9,則高4位和低4位分別加6修正。,具體是通過執(zhí)行指令:DA A 來自動實現(xiàn)的 。 例 (A)=56H,(R5)=67H,把它們看作為兩個壓縮的BCD數(shù),進(jìn)行BCD數(shù)的加法。執(zhí)行指令: ADD A,R5 DA A 由于高、低4位分別大于9,所以要分別加6進(jìn)行十進(jìn)制調(diào)整對結(jié)果進(jìn)行修正。 結(jié)果為: (A)=23H,Cy=1 可見,56+67=123,結(jié)果是正確的。 5帶借位的減法指令 4條指令: SUBB A,Rn ; (A)-(Rn)- CyA,n=07 SUBB A,direct ; (A)-(direct)- CyA,SUBB A,Ri;(A)-((Ri))- CyA, i=0,1 SUBB A,#data ;(A)-#data - CyA 從累加器A中的內(nèi)容減去指定的變量和進(jìn)位標(biāo)志Cy的值,結(jié)果存在累加器A中。 如果位7需借位則置“1” Cy,否則清“0”Cy; 如果位3需借位則置“1”Ac,否則清“0”Ac; 如果位6需借位而位7不需要借位,或者位7需借位,位6不需借位,則置“1”溢出標(biāo)志位OV,否則清“0”O(jiān)V。 例 (A)=C9H ,(R2)=54H,Cy=1,執(zhí)行指令: SUBB A,R2,結(jié)果:(A)=74H,Cy=0,Ac=0,OV=1(位6向位7借位) 6減1指令 4條指令: DEC A ;(A)-1A DEC Rn ;(Rn)-1Rn,n=07 DEC direct ;(direct)-1direct DEC Ri ;(Ri)-1(Ri),i=0,1 減1指令不影響標(biāo)志位。 7乘法指令 MUL AB ;ABBA 如果積大于255,則置“1”溢出標(biāo)志位OV,8除法指令 DIV AB ;A/BA(商),余數(shù)B 如果B的內(nèi)容為“0”(即除數(shù)為“0”),則存放結(jié)果的A、B中的內(nèi)容不定,并置“1”溢出標(biāo)志位OV。 3.4.3 邏輯運算指令 1. 簡單邏輯操作指令 (1) CLR A 功能是累加器A清“0”。不影響Cy、Ac、OV等標(biāo)志。 (2) CPL A 功能是將累加器A的內(nèi)容按位邏輯取反,不影響標(biāo)志。 2左環(huán)移指令 RL A,功能是累加器A的8位向左循環(huán)移位,位7循環(huán)移入位0,不影響標(biāo)志。 3帶進(jìn)位左環(huán)移指令 RLC A 功能是將累加器A的內(nèi)容和進(jìn)位標(biāo)志位Cy一起向左環(huán)移一位,Acc.7移入進(jìn)位位Cy,Cy移入Acc.0,不影響其它標(biāo)志。 4右環(huán)移指令 RR A 功能是累加器A的內(nèi)容向右環(huán)移一位,Acc.0移入Acc.7,不影響其它標(biāo)志。 5帶進(jìn)位環(huán)移指令,RRC A 這條指令的功能是累加器A的內(nèi)容和進(jìn)位標(biāo)志Cy一起向右環(huán)移一位,Acc.0進(jìn)入Cy,Cy移入Acc.7。 6累加器半字節(jié)交換指令 SWAP A 將累加器A的高半字節(jié)(Acc.7Acc.4)和低半字節(jié)(Acc.3Acc.0)互換。 例 (A)=0C5H,執(zhí)行指令: SWAP A 結(jié)果:(A)=5CH,7邏輯與指令 ANL A,Rn ; (A)(Rn)A,n=07 ANL A,direct ; (A)(direct)A ANL A,#data ; (A)#dataA ANL A,Ri ; (A)((Ri))A,i=01 ANL direct,A ; (direct)(A)direct ANL direct,#data ; (direct)#datadirect 例 (A)=07H,(R0)=0FDH,執(zhí)行指令: ANL A,R0 結(jié)果:(A)=05H,8.邏輯或指令 ORL A,Rn ;(A)(Rn)A ,n=07 ORL A,direct ;(A)(direct)A ORL A,#data ;(A) dataA ORL A,Ri ; (A)(Ri)A,i=0,1 ORL direct,A ;(direct)(A)direct ORL direct,#data ;(direct)#datadirect 例 (P1)=05H,(A)=33H,執(zhí)行指令 ORL P1,A 結(jié)果:(P1)=37H,9邏輯異或指令 XRL A,Rn ;(A) (Rn)A XRL A,direct ;(A) (direct)A XRL A,Ri ;(A)((Ri))A ,i=0,1 XRL A,#data ;(A)#dataA XRL direct,A ;(direct)(A)direct XRL direct,#data ;(direct) #data direct,例 (A)=90H,(R3)=73H 執(zhí)行指令: XRL A,R3 結(jié)果:(A)=E3H 3.4.4 控制轉(zhuǎn)移類指令 1無條件轉(zhuǎn)移指令 AJMP addrll 2K字節(jié)范圍內(nèi)的無條件跳轉(zhuǎn)指令, 64K程序存儲器空間分為32個區(qū),每區(qū)2K字節(jié),轉(zhuǎn)移的目標(biāo)地址必須與AJMP下一條指令的地址的高5位地址碼A15A11相同。 執(zhí)行指令時,先PC加2,然后把addrll送入PC.10PC.0,PC.15PC.11保持不變,程序轉(zhuǎn)移到目標(biāo)地址。,本指令是為能與MCS-48的JMP指令兼容而設(shè)的。 2相對轉(zhuǎn)移指令 SJMP rel 實現(xiàn)的程序轉(zhuǎn)移是雙向的。 在編寫程序時,直接寫上要轉(zhuǎn)向的目標(biāo)地址標(biāo)號就可以。 例如: LOOP: MOV A,R6 SJMP LOOP 程序在匯編時,由匯編程序自動計算和填入偏移量。,手工匯編時,偏移量rel的值則需程序設(shè)計人員計算。 3長跳轉(zhuǎn)指令 LJMP addr16 指令執(zhí)行時把指令的第二和第三字節(jié)分別裝入PC的高位和低位字節(jié)中,無條件地轉(zhuǎn)向addr16指出的目標(biāo)地址。目標(biāo)地址可以在64K程序存儲器地址空間的任何位置。 4間接跳轉(zhuǎn)指令 JMP A+DPTR,由A中8位無符號數(shù)與DPTR的16位數(shù)內(nèi)容之和來確定。以DPTR內(nèi)容作為基址,A的內(nèi)容作變址。 給A賦予不同的值,即可實現(xiàn)程序的多分支轉(zhuǎn)移。 5條件轉(zhuǎn)移指令 規(guī)定的條件滿足,則進(jìn)行轉(zhuǎn)移,條件不滿足則順序執(zhí)行下一條指令。 當(dāng)條件滿足時,把PC裝入下一條指令的第一個字節(jié)地址,再把帶符號的相對偏移量rel加到PC上,計算出目標(biāo)地址。,JZ rel ;如果累加器為“0”,則轉(zhuǎn)移 JNZ rel ;如果累加器非“0”,則轉(zhuǎn)移 6比較不相等轉(zhuǎn)移指令 CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE Ri,#data,rel 比較前面兩個操作數(shù)的大小,如果它們的值不相等則轉(zhuǎn)移。,如果第一操作數(shù)(無符號整數(shù))小于第二操作數(shù)(無符號整數(shù)),則置進(jìn)位標(biāo)志位Cy,否則清“0”Cy。 7減1不為0轉(zhuǎn)移指令 這是一組把減1與條件轉(zhuǎn)移兩種功能結(jié)合在一起的指令。共兩條指令: DJNZ Rn,rel ;n=07 DJNZ direct,rel 將源操作數(shù)(Rn或direct)減1,結(jié)果回送到Rn寄存器或direct中去。如果結(jié)果不為0則轉(zhuǎn)移。允許程序員把寄存器Rn或內(nèi)部RAM的direct單元用作程序,循環(huán)計數(shù)器。主要用于控制程
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CMMA 9-2023鎂質(zhì)膠凝材料制品用氧化鎂
- T/CITS 0012-2021制造業(yè)企業(yè)質(zhì)量創(chuàng)新力評價規(guī)范
- T/CIQA 17-2021移動式核酸檢測實驗室通用技術(shù)規(guī)范
- T/CIMA 0036-2022低壓電力線高速載波通信單元自動化檢測系統(tǒng)技術(shù)規(guī)范
- T/CIE 162-2023工業(yè)軟件技術(shù)來源檢測規(guī)范
- T/CGCC 64-2022大宗商品電子交易敏感數(shù)據(jù)存儲和使用規(guī)范
- T/CFPA 028-2023消防通道視頻監(jiān)測系統(tǒng)
- T/CECS 10251-2022綠色建材評價金屬給水排水管材管件
- T/CECS 10238-2022綠色建材評價換熱器
- T/CECS 10208-2022齒圈卡壓式薄壁不銹鋼管件
- 民間非營利組織審計報告(模板)
- 2024年山東省德州市中考生物試題卷(含答案)
- 漿砌石擋墻 護(hù)坡施工方案
- 上海市上海民辦蘭生中學(xué)2024-2025學(xué)年八年級上學(xué)期9月第一次月考數(shù)學(xué)試題(無答案)
- 2024年10月自考試02899生理學(xué)部分真題含解析
- DB13-T 5834-2023 化工建設(shè)項目安裝工程質(zhì)量技術(shù)資料管理規(guī)范
- DL∕ T 969-2005 變電站運行導(dǎo)則
- 六年級道德與法治畢業(yè)考試時政知識點(一)
- 診斷學(xué)之全身體格檢查
- 小區(qū)水系清淤合同范本
- 省教育科學(xué)規(guī)劃課題設(shè)計論證:師范院校弘揚教育家精神的實踐研究
評論
0/150
提交評論