80C51控制轉(zhuǎn)移類指令及位操作指令ppt課件_第1頁
80C51控制轉(zhuǎn)移類指令及位操作指令ppt課件_第2頁
80C51控制轉(zhuǎn)移類指令及位操作指令ppt課件_第3頁
80C51控制轉(zhuǎn)移類指令及位操作指令ppt課件_第4頁
80C51控制轉(zhuǎn)移類指令及位操作指令ppt課件_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三章第三章 80C51單片機指令系統(tǒng)單片機指令系統(tǒng)本講教學(xué)內(nèi)容:控制轉(zhuǎn)移類指令控制轉(zhuǎn)移類指令控制轉(zhuǎn)移類指令程序的順序執(zhí)行是由PC自動加1來實現(xiàn)的,但在應(yīng)用系統(tǒng)中,往往會遇到一些情況,需要強迫改變程序執(zhí)行順序,比如調(diào)用子程序,比如根據(jù)檢測值與設(shè)定值的比較結(jié)果要求程序轉(zhuǎn)移到不同的分支入口等。要改變程序的執(zhí)行順序進行分支轉(zhuǎn)向,應(yīng)通過強迫修正PC值得方法來實現(xiàn),這就是控制轉(zhuǎn)移類指令的基本功能。80C5設(shè)有豐富的控制轉(zhuǎn)移指令,可分為無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、循環(huán)轉(zhuǎn)移指令、子程序調(diào)用和返回指令及空操作指令等。采用助記符有:AJMP、LJMP、SJMP、JZ、JNZ、CJNE、DJNZ、ACALL、L

2、CALL、RET、RETI、NOP等13種。條件轉(zhuǎn)移指令僅僅在滿足指令中規(guī)定的條件(如累加器內(nèi)容是否為零,兩個操作數(shù)是否相等)時才執(zhí)行無條件轉(zhuǎn)移,否則程序順序執(zhí)行。6條指令可分為累加器判零轉(zhuǎn)移指令、數(shù)值比較轉(zhuǎn)移指令和減1條件轉(zhuǎn)移指令。條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令 累加器判零轉(zhuǎn)移指令累加器判零轉(zhuǎn)移指令J Zr e l; 假 設(shè); 假 設(shè) ( A ) = 0 , 那 么, 那 么(PC)=(PC+2)+rel;假設(shè);假設(shè)(A)0,那么,那么(PC)=(PC)+2JNZ rel;假設(shè);假設(shè)(A)0,那么,那么(PC)= (PC+2)+rel ;假設(shè);假設(shè)(A)=0,那么,那么(PC)=(PC)+2 滿足

3、各自條件時,程序轉(zhuǎn)向指定的目標地址執(zhí)行滿足各自條件時,程序轉(zhuǎn)向指定的目標地址執(zhí)行(相當于執(zhí)相當于執(zhí)行行SJMP rel) 。當不滿足各自條件時,程序順序往下執(zhí)行。當不滿足各自條件時,程序順序往下執(zhí)行。 偏移量偏移量rel是用補碼形式表示的帶符號的是用補碼形式表示的帶符號的8 位數(shù),因而程序位數(shù),因而程序轉(zhuǎn)移的目標地址為指令前轉(zhuǎn)移的目標地址為指令前128 B或指令后或指令后 127 B。 這些指令執(zhí)行后不影響任何操作數(shù)和標志位。這些指令執(zhí)行后不影響任何操作數(shù)和標志位。 數(shù)值比較轉(zhuǎn)移指令數(shù)值比較轉(zhuǎn)移指令 CJNE A,direct,rel CJNE A,data,rel CJNE Rn, data

4、,relCJNE Ri,data,rel其指令格式為:其指令格式為: CJNE操作數(shù)操作數(shù)1),(操作數(shù)),(操作數(shù)2),),rel數(shù)值比較轉(zhuǎn)移指令是三字節(jié)指令,是數(shù)值比較轉(zhuǎn)移指令是三字節(jié)指令,是80C51單片微機單片微機指令系統(tǒng)中僅有的四條三個操作數(shù)的指令,在程序設(shè)計中非指令系統(tǒng)中僅有的四條三個操作數(shù)的指令,在程序設(shè)計中非常有用。同時具有比較轉(zhuǎn)移和數(shù)值大小比較的功能。常有用。同時具有比較轉(zhuǎn)移和數(shù)值大小比較的功能。這組指令的功能是對指定的兩操作數(shù)進行比較,即(操作數(shù)1)(操作數(shù)2) ,但比較結(jié)果均不改變兩個操作數(shù)的值,僅影響標志位CY。 若不等,程序轉(zhuǎn)移到(PC)十3加上第三字節(jié)帶符號 的8位

5、偏移量rel所指向的目標地址; 假設(shè)(操作數(shù)1) (操作數(shù)2),清進位標志CY)。 假設(shè)(操作數(shù)1) (操作數(shù)2),則置位進位標志CY)。 值相等,程序繼續(xù)執(zhí)行。 程序轉(zhuǎn)移的范圍是從PC)3為起始的127一128B的單元地址。 比如比如 CJNE RnCJNE Rn,#data#data,relrel指令指令 例:溫度控制程序例:溫度控制程序 某溫度控制系統(tǒng),某溫度控制系統(tǒng),A中存溫度采樣值中存溫度采樣值Ta,(20H)=溫度下限溫度下限值值T20,(30H)=溫度上限值溫度上限值T30。若。若TaT30,程序轉(zhuǎn)降溫,程序轉(zhuǎn)降溫JW,若若TaT20,程序轉(zhuǎn)升溫,程序轉(zhuǎn)升溫SW,若,若T30Ta

6、T20程序轉(zhuǎn)程序轉(zhuǎn)FH返回主程返回主程序。序。CJNE A,30H , LOOP AJMP FH ;等于;等于T30,轉(zhuǎn),轉(zhuǎn)FH LOOP: JNC JW ;大于;大于T30,降溫,降溫CJNE A,20 H,LOOP1 AJMP FH ;等于;等于T20,轉(zhuǎn),轉(zhuǎn)FH LOOP1:JC SW ;小于;小于T20,升溫,升溫 FH:- ;保溫;保溫 JW:- ; 降溫降溫 SW:- ; 升溫升溫DJNZ Rn,relDJNZ direct,rel指令功能是:每執(zhí)行一次本指令,先將指定的Rn或direct的內(nèi)容減1,再判別其內(nèi)容是否為0。若不為0,轉(zhuǎn)向目標地址,繼續(xù)執(zhí)行循環(huán)程序;若為0,則結(jié)束循環(huán)

7、程序段,程序往下執(zhí)行。減減1 1條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令例:某應(yīng)用系統(tǒng)外擴了例:某應(yīng)用系統(tǒng)外擴了8K字節(jié)字節(jié)RAM,要求把內(nèi)部,要求把內(nèi)部RAM的的20H2FH單元內(nèi)容發(fā)送到外部單元內(nèi)容發(fā)送到外部RAM的的800H80FH單元中。單元中。 執(zhí)行指令:執(zhí)行指令: MOV DPTR,#800H MOV R0,#20H MOV R7,#10HAGAIN:MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,AGAIN ?:請將以上循環(huán)控制改用?:請將以上循環(huán)控制改用CJNE指令來實現(xiàn)指令來實現(xiàn)?:請將以上循環(huán)控制改用?:請將以上循環(huán)控制改用JZ指令來實現(xiàn)指令來實現(xiàn)

8、 請看請看Keil C下演示實例,程序段如下:下演示實例,程序段如下:ORG 0000HLJMP MAINORG 0030HMAIN:MOV A,#01HJZ Lable1DEC AJZ Lable2NOPLable1:NOPLable2:MOV B,#0FFHEND指令SJMPrelAJMPaddr11LJMPaddrl6JMPADPTR這類指令的功能是程序無條件地轉(zhuǎn)移到各自指定的目標地址去執(zhí)行,不同的指令形成的目標地址不同。無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令1. 長轉(zhuǎn)移指令長轉(zhuǎn)移指令 LJMP addr16該指令提供該指令提供16位地址,目標地址由指令第二字位地址,目標地址由指令第二字節(jié)節(jié)(高高

9、8位地址位地址)和第三字節(jié)和第三字節(jié)(低低8位地址位地址)組成。因而,程組成。因而,程序轉(zhuǎn)向的目標地址可以包含程序存儲器的整個序轉(zhuǎn)向的目標地址可以包含程序存儲器的整個64 KB空間。空間。 例:設(shè)例:設(shè)PC)0123H,標號,標號ADR所指單元地址為所指單元地址為3456H。執(zhí)行指令執(zhí)行指令 LJMP ADR執(zhí)行結(jié)果為執(zhí)行結(jié)果為PC)3456H程序轉(zhuǎn)向程序轉(zhuǎn)向3456H單元執(zhí)行。單元執(zhí)行。 絕對轉(zhuǎn)移指令絕對轉(zhuǎn)移指令A(yù)JMP addr11 該指令提供11位地址,目標地址由指令提供的11位地址去取代當前PC的低11位,形成新的PC值,即為本絕對轉(zhuǎn)移地址。因而,程序的目標地址必須包含AJMP指令后第

10、一條指令的第一個字節(jié)(即當前PC地址)在內(nèi)的2KB范圍內(nèi)(即高5位地址必須相同)。例:設(shè)例:設(shè)PC)0456H,標號,標號ADR所指的單元為所指的單元為0123H。執(zhí)行指令執(zhí)行指令 AJMP ADR執(zhí)行結(jié)果程序轉(zhuǎn)向為執(zhí)行結(jié)果程序轉(zhuǎn)向為PC)0123H。例:例: 0000H 21 11 AJMP 0111H;轉(zhuǎn)移有效;轉(zhuǎn)移有效 07FEH 81 10 AJMP 0C10H ;當前;當前PC值為值為0800H ;轉(zhuǎn)移有效;轉(zhuǎn)移有效 0100H AJMP 0B11H ;轉(zhuǎn)移無效;轉(zhuǎn)移無效3短轉(zhuǎn)移指令:SJMPrel其目標地址是由當前其目標地址是由當前PC程序計數(shù)器值和指令的第程序計數(shù)器值和指令的第二

11、字節(jié)提供的二字節(jié)提供的8位帶符號的相對地址相加而成的。指令位帶符號的相對地址相加而成的。指令可轉(zhuǎn)向指令前可轉(zhuǎn)向指令前128 B或指令后或指令后127 B。rel為為8位帶符號數(shù)。位帶符號數(shù)。(PC)=(PC) +2+rel 例:例:2100H 80 FE HERE:SJMP HERE rel:2100H2102H=FFFEH。高。高8位是位是FFH,表示表示負跳負跳,偏移量為偏移量為FEH (2)。這是一條原地踏步指令。這是一條原地踏步指令??捎米鞒绦蚪Y(jié)束或中斷等待??捎米鞒绦蚪Y(jié)束或中斷等待。 當相對地址為當相對地址為FEH (-02) 時,時,SJMP指令實現(xiàn)原地轉(zhuǎn)圈指令實現(xiàn)原地轉(zhuǎn)圈的運行狀

12、態(tài)。的運行狀態(tài)。 間接轉(zhuǎn)移指令間接轉(zhuǎn)移指令JMPA+DPTR其目標地址是將累加器其目標地址是將累加器A中的中的8位無符號數(shù)與位無符號數(shù)與數(shù)據(jù)指針數(shù)據(jù)指針DPTR的內(nèi)容相加而得的內(nèi)容相加而得(在程序運行時動態(tài)決在程序運行時動態(tài)決定定)。相加運算不影響累加器。相加運算不影響累加器A和數(shù)據(jù)指針和數(shù)據(jù)指針DPTR的原的原內(nèi)容。若相加的結(jié)果大于內(nèi)容。若相加的結(jié)果大于64 KB,則從程序存儲器的,則從程序存儲器的零地址往下延續(xù)。當零地址往下延續(xù)。當DPTR的值固定,而給的值固定,而給A賦以不賦以不同的值,即可實現(xiàn)程序的多分支轉(zhuǎn)移。如實現(xiàn)鍵盤譯同的值,即可實現(xiàn)程序的多分支轉(zhuǎn)移。如實現(xiàn)鍵盤譯碼散轉(zhuǎn)功能。碼散轉(zhuǎn)

13、功能。 例:設(shè)例:設(shè)A)5,(,(DPTR)4567H。執(zhí)行指令為執(zhí)行指令為 JMP ADPTR執(zhí)行結(jié)果為執(zhí)行結(jié)果為:(PC)(A)(DPTR)05H 4567H456CH程序轉(zhuǎn)向程序轉(zhuǎn)向456CH單元執(zhí)行。單元執(zhí)行。 絕對調(diào)用指令絕對調(diào)用指令 ACALLaddr11 無條件地調(diào)用首址為無條件地調(diào)用首址為addr11addr11處的子程序。操作不影響處的子程序。操作不影響標志位。標志位。斷點地址自動壓棧:把斷點地址自動壓棧:把PCPC加加2 2以獲得下一條指令的地址以獲得下一條指令的地址( (當前當前PC),PC),將這將這1616位的地址壓進堆棧位的地址壓進堆棧( (先先PCLPCL,后,后

14、PCH),PCH),同時棧指針加同時棧指針加2 2。然后將指令提供的。然后將指令提供的 1111位目標地址,位目標地址,送入送入PC10PC10PC0PC0,而,而 PC15PC15PC11PC11的值不變,程序轉(zhuǎn)向的值不變,程序轉(zhuǎn)向子程序的首地址開始執(zhí)行。目標地址由指令第一字節(jié)子程序的首地址開始執(zhí)行。目標地址由指令第一字節(jié)的高三位和指令第二字節(jié)所組成;的高三位和指令第二字節(jié)所組成;所調(diào)用的子程序的首地址必須與所調(diào)用的子程序的首地址必須與ACALLACALL后面指令的第一后面指令的第一個字節(jié)在同一個個字節(jié)在同一個2 KB2 KB區(qū)域內(nèi)。區(qū)域內(nèi)。 3.5.4 子程序調(diào)用指令子程序調(diào)用與返回指令組

15、子程序調(diào)用與返回指令組例:設(shè)例:設(shè)SP)60H,(,(PC)0123H,子程序,子程序SUBRTN的首地址為的首地址為0456H。 執(zhí)行指令為執(zhí)行指令為ACALL SUBRTN 執(zhí)行結(jié)果為執(zhí)行結(jié)果為PC)20123H20125H(PC),),將將PC)=0125H壓入堆棧:壓入堆棧:25H壓入壓入SP)161H,01H壓入壓入SP十十l62H,此時,此時SP)62H。addr11 PC100 , PC=0456H 長調(diào)用指令長調(diào)用指令 LCALLaddr16 無條件地調(diào)用首址為無條件地調(diào)用首址為addr16處的子程序。操作不影響標志處的子程序。操作不影響標志位。位。 斷點地址自動壓棧:把斷點地

16、址自動壓棧:把 PC加加 3以獲得下一條指令的地址,以獲得下一條指令的地址,將這將這16位的地址壓進堆棧先位的地址壓進堆棧先PCL,后,后PCH),同時棧指針),同時棧指針加加2。 將指令第將指令第2和第和第3字節(jié)所提供的字節(jié)所提供的16位目標地址,送位目標地址,送PC15PC0,程序轉(zhuǎn)向子程序的首地址開始執(zhí)行。,程序轉(zhuǎn)向子程序的首地址開始執(zhí)行。 所調(diào)用的子程序的首地址可以在所調(diào)用的子程序的首地址可以在64 KB范圍內(nèi)。范圍內(nèi)。例:設(shè)例:設(shè)SP)60H,(,(PC)0123H,子程序,子程序SUBRTN的首地址為的首地址為3456H。 執(zhí)行指令為執(zhí)行指令為 LCALL SUBRTN例:設(shè)例:設(shè)

17、(SP)62H,RAM中的中的(62H)0lH,(61H)26H。子程序子程序SUBRTN的首地址為的首地址為3456H。 執(zhí)行指令:執(zhí)行指令:LCALL SUBRTN 執(zhí)行結(jié)果:(執(zhí)行結(jié)果:(PC)30123H30126H(PC)。)。將將PC壓入堆棧:壓入堆棧:26H壓入壓入SP)l61H中,中,01H壓壓入入SP)1=62H中,此時中,此時SP)62H。 (PC)=3456H,執(zhí)行子程序。執(zhí)行子程序。3.5.5 返回指令考慮:考慮:AJMP LJMP 與與 ACALL LCALL的區(qū)別?的區(qū)別? 3. 子程序返回指令子程序返回指令RET 執(zhí)行時表示結(jié)束子程序,返回調(diào)用指令執(zhí)行時表示結(jié)束子

18、程序,返回調(diào)用指令A(yù)CALL或或LCALL的下一條指令的下一條指令(即斷點地址即斷點地址),繼續(xù)往下執(zhí)行。,繼續(xù)往下執(zhí)行。 執(zhí)行時將棧頂?shù)臄帱c地址送入執(zhí)行時將棧頂?shù)臄帱c地址送入PC(先先PCH,后,后PCL),并把棧指針減,并把棧指針減2。 3.5.5 返回指令4. 中斷返回指令中斷返回指令RETI 它除了執(zhí)行從中斷服務(wù)程序返回中斷時保護的斷它除了執(zhí)行從中斷服務(wù)程序返回中斷時保護的斷點處繼續(xù)執(zhí)行程序點處繼續(xù)執(zhí)行程序 (類似類似RET功能功能)外,并清除內(nèi)部相外,并清除內(nèi)部相應(yīng)的中斷狀態(tài)寄存器。應(yīng)的中斷狀態(tài)寄存器。 因而,中斷服務(wù)程序必須以因而,中斷服務(wù)程序必須以RETI為結(jié)束指令。為結(jié)束指令。

19、 CPU執(zhí)行執(zhí)行RETI指令后至少再執(zhí)行一條指令,才指令后至少再執(zhí)行一條指令,才能響應(yīng)新的中斷請求。利用這一特點,可用來實現(xiàn)單能響應(yīng)新的中斷請求。利用這一特點,可用來實現(xiàn)單片微機的單步操作。片微機的單步操作。 例:設(shè)例:設(shè)SP)62H,中斷時斷點是,中斷時斷點是0123H,RAM中的中的62H)0lH,(,(61H)23H。 執(zhí)行指令執(zhí)行指令RETI結(jié)果為:(結(jié)果為:(SP)60H,PC0123H 程序回到斷點程序回到斷點0123H處繼續(xù)執(zhí)行。清除內(nèi)部相處繼續(xù)執(zhí)行。清除內(nèi)部相應(yīng)的中斷狀態(tài)寄存器。應(yīng)的中斷狀態(tài)寄存器。 例:從P1.7引腳輸出5個方波MOVR2,#11;5個方波,10個狀態(tài)LOP:

20、CPLP1.7;P1.7狀態(tài)變反LCALLDelayDJNZR2,LOPHERE:SJMPHEREDelay:MOVR5,#255LOOP2:MOVR4,#255LOOP1:NOPNOPDJNZR4,LOOP1DJNZR5,LOOP2RET第三章第三章 80C51單片機指令系統(tǒng)單片機指令系統(tǒng)本講教學(xué)內(nèi)容:位操作指令布爾位操作類指令布爾位操作類指令 80C51內(nèi)部有一個布爾位處理器,具有較強內(nèi)部有一個布爾位處理器,具有較強的布爾變量處理能力。的布爾變量處理能力。 布爾處理器實際上是一位的微處理機,它以進位布爾處理器實際上是一位的微處理機,它以進位標志標志CY作為位累加器,以內(nèi)部作為位累加器,以內(nèi)

21、部RAM的的20H至至2FH單單元及部分特殊功能寄存器為位存儲器,以元及部分特殊功能寄存器為位存儲器,以P0、P1、P2、P3為位為位I/O。對位地址空間具有豐富的位操作指令,。對位地址空間具有豐富的位操作指令,包括布爾傳送指令、布爾狀態(tài)控制指令、位邏輯操作包括布爾傳送指令、布爾狀態(tài)控制指令、位邏輯操作指令及位條件轉(zhuǎn)移指令。助記符有指令及位條件轉(zhuǎn)移指令。助記符有MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC等等11種。種。布爾操作類指令中位地址可用以下多種方式表示,這些方式均能為80C51的匯編程序所識別:直接用位地址0255或0FFH表示;采用字節(jié)地址的

22、位數(shù)方式表示,兩者之間用“”隔開,如:20H0;1FH7等采用字節(jié)寄存器名加位數(shù)表示,兩者之間用“”隔開,如:P15;PSW5等;采用位寄存器的定義名稱表示,如:F0。如:位地址D5H、F0、D0.5、PSW.5等表示的是同一位。MOVC,bit;(C)(bit)MOVbit,C;(bit)(C)功能:將源操作數(shù)位地址或布爾累加器送到目的操作數(shù)布爾累加器或位地址中去。布爾傳送指令布爾傳送指令例:設(shè)例:設(shè)C)=1,執(zhí)行指令執(zhí)行指令: MOV P13,C,執(zhí)行結(jié)果為執(zhí)行結(jié)果為 P13口線輸出口線輸出“l(fā)”。例:設(shè)例:設(shè)P1口的內(nèi)容為口的內(nèi)容為00111010B,執(zhí)行指令執(zhí)行指令: MOV C,P1

23、3,執(zhí)行結(jié)果為執(zhí)行結(jié)果為C)1。 3.6.1 布爾傳送指令1位清除CLR指令CLRC;(C)0CLRbit;(bit)0功能:將C或指定位bit清0。例:設(shè)P1口的內(nèi)容為11111010B,執(zhí)行指令為CLRP10后,(P1)=11111010B。2位置1(SETB)指令SETBC;(C)lSETBbit;(bit)1功能:將C或指定位bit置1。布爾狀態(tài)控制指令布爾狀態(tài)控制指令例:設(shè)例:設(shè)C)0,P3口的內(nèi)容為口的內(nèi)容為1 1 1 1 1 0 1 0 B。 執(zhí)行指令為執(zhí)行指令為SETB P30 SETB C 執(zhí)行結(jié)果為執(zhí)行結(jié)果為C)1,P301,即,即P31 1 1 1 1 0 1 1 B。3

24、 位取反位取反CPL指令指令 CPL C ;(;(C)(C) CPL bit ;(;(bit)(bit) 功能:將功能:將 C或指定位或指定位bit取反。取反。 例:設(shè)例:設(shè)C)0,P1口的內(nèi)容為口的內(nèi)容為0 0 1 1 1 0 1 0 B。 執(zhí)行指令為執(zhí)行指令為CPL P1.0 CPL C 執(zhí)行結(jié)果為執(zhí)行結(jié)果為C)=1,P1.0=l,即,即P00 0 1 1 1 0 1 1 B。 1位邏輯位邏輯“與與”(ANL操作指令操作指令 ANL C,bit ;(;(C)(C)(bit)ANL C,bit ;(;(C)(C)(bit) 功能:將指定位功能:將指定位bit的內(nèi)容或指定位內(nèi)容取反后原內(nèi)的內(nèi)容

25、或指定位內(nèi)容取反后原內(nèi)容不變?nèi)莶蛔?與與C的內(nèi)容進行邏輯與運算,結(jié)果仍存于的內(nèi)容進行邏輯與運算,結(jié)果仍存于C中。中。 例:設(shè)例:設(shè)(C)= l,P1口的內(nèi)容為口的內(nèi)容為1 1 1 1 1 0 1 1 B,(ACC7)0。執(zhí)行指令為執(zhí)行指令為 ANL C,P1.0 ;(;(C)1 ANL C,ACC. 7 ;(;(C)0 執(zhí)行結(jié)果為執(zhí)行結(jié)果為C)0。 布爾布爾( (位位) )邏輯操作指令邏輯操作指令 1位邏輯位邏輯“與與”(ANL操作指令操作指令 ANL C,bit ;(;(C)(C)(bit)ANL C,bit ;(;(C)(C)(bit) 功能:將指定位功能:將指定位bit的內(nèi)容或指定位內(nèi)容

26、取反后原內(nèi)的內(nèi)容或指定位內(nèi)容取反后原內(nèi)容不變?nèi)莶蛔?與與C的內(nèi)容進行邏輯與運算,結(jié)果仍存于的內(nèi)容進行邏輯與運算,結(jié)果仍存于C中。中。 例:設(shè)例:設(shè)(C)= l,P1口的內(nèi)容為口的內(nèi)容為1 1 1 1 1 0 1 1 B,(ACC7)0。執(zhí)行指令為執(zhí)行指令為 ANL C,P1.0 ;(;(C)1 ANL C,ACC. 7 ;(;(C)0 執(zhí)行結(jié)果為執(zhí)行結(jié)果為C)0。 布爾布爾( (位位) )邏輯操作指令邏輯操作指令2位邏輯位邏輯“或或”(ORL操作指令操作指令 ORL C,bit ;(;(C)C十十bit)ORL C,/bit ;(;(C)(C十十bit) 功能:將指定位功能:將指定位bit的內(nèi)

27、容或指定位內(nèi)容取反后的內(nèi)容或指定位內(nèi)容取反后原內(nèi)容不變與原內(nèi)容不變與C的內(nèi)容進行邏輯或運算。結(jié)果仍存于的內(nèi)容進行邏輯或運算。結(jié)果仍存于C中。中。 例:設(shè)例:設(shè)(C)1,P1 口的內(nèi)容為口的內(nèi)容為1 1 1 1 1 0 1 1B,(ACC7)0。 執(zhí)行的指令為執(zhí)行的指令為ORL C,P1.0 ;(;(C)=1 ORL C,ACC 7 ;(;(C)=1 執(zhí)行結(jié)果為執(zhí)行結(jié)果為C)1。 l、布爾累加器條件轉(zhuǎn)移指令JCrelJNCrel功能:對布爾累加器C進行檢測,當C1或C0時,程序轉(zhuǎn)向當前PC值(轉(zhuǎn)移指令地址+2)與第二字節(jié)中帶符號的相對地址rel之和的目標地址,否則程序往下順序執(zhí)行。因此轉(zhuǎn)移的范圍

28、是128+127B。布爾位條件轉(zhuǎn)移指令布爾位條件轉(zhuǎn)移指令例:設(shè)例:設(shè)C)0執(zhí)行指令:執(zhí)行指令: JC LABEL1 ;(C)=0,則程序順序往下執(zhí),則程序順序往下執(zhí);行;行 CPL C ;(C)=1,程序轉(zhuǎn),程序轉(zhuǎn)LABEL2 JC LABEL2 ;以后,進位位取反變?yōu)?;以后,進位位取反變?yōu)閘,程序轉(zhuǎn)向,程序轉(zhuǎn)向LABEL2單元執(zhí)行。單元執(zhí)行。 例:設(shè)例:設(shè)C)1。執(zhí)行指令:執(zhí)行指令: JNCLABEL1 CLR C JNC LABEL2 ;以后,進位位清為;以后,進位位清為0,程序轉(zhuǎn)向,程序轉(zhuǎn)向LABEL2單元執(zhí)行。單元執(zhí)行。 2位測試條件轉(zhuǎn)移指令位測試條件轉(zhuǎn)移指令 JB bit,relJNB bit,rel功能:檢測指定位,當位變量分別為功能:檢測指定位,當位變量分別為1或或 0時,程序轉(zhuǎn)向當前時,程序轉(zhuǎn)向當前PC值值(轉(zhuǎn)移指令地址轉(zhuǎn)移指令地址+2)與第二字節(jié)中帶符號的相對地址與第二字節(jié)中帶符號的相對地址rel之和之和的目標地址,否則程序往下順序執(zhí)行。因此轉(zhuǎn)移的范圍是的目標地址,否則程序往下順序執(zhí)行。因此轉(zhuǎn)移的范圍是128127 B。操作不影響標志位。操作不影響標志位。例:設(shè)累加器例:設(shè)累加器 A中的內(nèi)容為中的內(nèi)容為FEH ( 1 1 1 1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論