第7章:指令系統(tǒng)_第1頁
第7章:指令系統(tǒng)_第2頁
第7章:指令系統(tǒng)_第3頁
第7章:指令系統(tǒng)_第4頁
第7章:指令系統(tǒng)_第5頁
已閱讀5頁,還剩225頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第7章:MCS-51系列單片機(jī)指令系統(tǒng) 一、本章主要內(nèi)容: 單片機(jī)指令系統(tǒng)、偽指令、匯編語言程序編制。 二、本章重點: 各種指令的理解和應(yīng)用、匯編程序的編制。 三、本章難點: 匯編指令與機(jī)器指令的關(guān)系;指令與進(jìn)位標(biāo)識的關(guān)系;指令的正確使用。 四、教學(xué)內(nèi)容如下幾種語言以及它們之間的關(guān)系幾種語言以及它們之間的關(guān)系 匯編匯編 編譯編譯機(jī)器指令對應(yīng)的助記符即匯編指令,機(jī)器指令對應(yīng)的助記符即匯編指令,例如:例如:MOV A,20H01110100 00100000 (74 20)指令的安放以及指令的地址(以上一指令為例)指令的安放以及指令的地址(以上一指令為例) 匯編語言程序高級語言程序 機(jī)器語言程序

2、(可執(zhí)行) 7.1.1 指令格式指令格式LOOP:MOV A,2AH ;A(2AH) 標(biāo)號標(biāo)號:是指令的符號地址,代表指令機(jī)器碼存放地的首地是指令的符號地址,代表指令機(jī)器碼存放地的首地址;址; 操作碼項規(guī)定了指令的操作功能,常用助記符表示。操作碼項規(guī)定了指令的操作功能,常用助記符表示。 操作數(shù)是指令的操作對象。操作數(shù)分為目標(biāo)操作數(shù)(上操作數(shù)是指令的操作對象。操作數(shù)分為目標(biāo)操作數(shù)(上例中的累加器例中的累加器A)和源操作數(shù)(上例中的)和源操作數(shù)(上例中的2AH)。)。 上例的機(jī)器碼上例的機(jī)器碼200AH:742A 注釋項是對指令功能作的說明。便于閱讀和維護(hù)。注釋項是對指令功能作的說明。便于閱讀和維

3、護(hù)。 7.1. 2指令的描述約定指令的描述約定 1、Rn(n=07) 表示工作寄存器表示工作寄存器R0R7 2、Ri(i=0,1) 存放地址指針的間址寄存器存放地址指針的間址寄存器R0,R1 3、#data 8位立即數(shù)位立即數(shù) 4、#data16 16位立即數(shù)位立即數(shù) 如:MOV DPTR,#data16 5、direct 8位片內(nèi)RAM單元(包括SFR)的直接地址直接地址 如:MOV direct,#data ;#datadirect 6、addr11 11位目的地址位目的地址,用于ACALL和AJMP指令中 7、 addr16 16位目的地址位目的地址,用于LCALL和LJMP指令中 8、

4、rel :補(bǔ)碼形式的:補(bǔ)碼形式的8位地址偏移量位地址偏移量 9、bit :片內(nèi):片內(nèi)RAM或或SFR的直接尋址的位地址的直接尋址的位地址 10、 :間接地址方式中,表示間址寄存器的符號:間接地址方式中,表示間址寄存器的符號 11、/ :表示:表示“位位”取反,但不影響該位的原值。取反,但不影響該位的原值。 ANL C,/P1.2 12、(、():指):指中的內(nèi)容中的內(nèi)容,是地址。是地址。 13、(、( ):指):指()中的內(nèi)容,中的內(nèi)容,()是地址。是地址。 14、 :示將箭尾的內(nèi)容傳送到箭頭所指的單元:示將箭尾的內(nèi)容傳送到箭頭所指的單元 如:已知如:已知58H單元的數(shù)據(jù)是單元的數(shù)據(jù)是36H,

5、R0的內(nèi)容是的內(nèi)容是58H INC 58H ;(58H)+158H DEC R0 ;(R0)1 (R0) 執(zhí)行兩條指令后,執(zhí)行兩條指令后,58H單元中數(shù)據(jù)不變。單元中數(shù)據(jù)不變。 7.1.3 尋址方式尋址方式所謂尋址方式,通常是指用什么方式通過源操作數(shù)找到指令操作的數(shù)據(jù)。MCS51單片機(jī)有七種尋找方式。 1立即尋址立即尋址 指令中直接給出一個8位或16位的二進(jìn)制常數(shù)(立即數(shù))。立即數(shù)前必須加“#”號表示。 一般用#data抽象地表示立即數(shù)。 MOV A,#data 例如:將立即數(shù)60H送入累加器A中匯編指令:MOV A ,#60H ;A#60H機(jī)器指令:74 60 ;雙字節(jié)指令 例如:將數(shù)據(jù)指針

6、寄存器DPTR指向1808H MOV DPTR, #1808H ;DPTR #1808H 90 18 08;三字節(jié)指令 2直接尋址直接尋址 在指令中源操作數(shù)是一個直接地址,該地址指出了指令操作的數(shù)據(jù)所在的字節(jié)地址。 一般用direct表示抽象直接地址。 MOV A,direct ;direct只能是內(nèi)部RAM地址。 MOV A,40H ;A(40H) MOV A,55H ; A(50H)MOV A,#55H ; A55H MOV DPTR,#1234H ; DPTR1234H MOV DPTR,1234H ;非法指令 MOV A,5500H ;非法指令 3寄存器尋址寄存器尋址 指令中給出一個寄

7、存器Rn , Rn中存放著操作數(shù)。 INC R2 ;R2(R2)+1 4寄存器間接尋址寄存器間接尋址 指令中的寄存器寫成Ri或DPTR的形式。寄存器內(nèi)容不是操作數(shù),而是操作數(shù)的地址。MOV A,R0 ;A(R0)MOV A,R2 ;非法指令,i只能為 0,1 5變址尋址(基址寄存器)變址尋址(基址寄存器)+(變址寄存器間接尋址)(變址寄存器間接尋址) 地址(基址寄存器)地址(基址寄存器)+(變址寄存器間接尋址)中是操作(變址寄存器間接尋址)中是操作數(shù)。數(shù)。 基地址寄存器:PC或DPTR 變址寄存器:累加器AMOVC A,A+PC ;A(A)+(PC)MOVC A,A+DPTR ;A(A)+(D

8、PTR)JMP A+DPTR ;PC(A)+(DPTR)設(shè)程序存儲器(1065H)=74H,(A)=05H,(DPTR)=1060H。. 執(zhí)行指令:MOVC A,A+DPTR;A(05H1060H)后,(A)74H。 6相對尋址相對尋址 常用于轉(zhuǎn)移指令中。指令中給出相對當(dāng)前地址的偏移量rel當(dāng)前地址為(PC),rel為8為帶符號2進(jìn)制數(shù)。SJMP rel JZ relSJMP 00110000BJZ 10011101B 真正的轉(zhuǎn)移目標(biāo)地址是(PC)rel。 7位尋址位尋址 指令中給出的操作數(shù)是位地址,真正參與操作的數(shù)據(jù)是位地址中的內(nèi)容。 一般用 bit抽象表示位地址。SETB TR0 ;TR0

9、1CLR 00H ;(00H)0MOV C,57H ;將57H位地址的內(nèi)容傳送到 ;位累加器C中 ANL C,5FH ;將5FH位狀態(tài)與進(jìn)位位C相與, ;結(jié)果在C中 判斷下列指令中源操作數(shù)的尋址方式:判斷下列指令中源操作數(shù)的尋址方式:MOV A, #67H; 立即尋址立即尋址MOV R1, 67H; 直接尋址直接尋址 MOV 30H,R2; 寄存器尋址寄存器尋址MOV C, 20H ; 位尋址位尋址MOV 60H, R1; 寄存器間址寄存器間址MOV A,A+DPTR; 變址尋址變址尋址 SJMP 11111110B; 相對尋址相對尋址 SJMP $; 相對尋址相對尋址 7.2 指令系統(tǒng) MC

10、S-51指令系統(tǒng)有42種助記符,代表了33種功能,指令助記符與各種可能的尋址方式相結(jié)合,共構(gòu)成111條指令。 按指令的功能,MCS-51指令系統(tǒng)可分為下列5類: (1)數(shù)據(jù)傳送類指令(29條)(2)算術(shù)運算類指令(24條)(3)邏輯運算及移位類指令(24條)(4)位操作類指令(17條)(5)控制轉(zhuǎn)移類指令(17條) 7.2.1數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令 MCS-51 單片機(jī)指令系統(tǒng)中,數(shù)據(jù)傳送指令類共單片機(jī)指令系統(tǒng)中,數(shù)據(jù)傳送指令類共28條:條:內(nèi)部數(shù)據(jù)傳送指令,助記符:內(nèi)部數(shù)據(jù)傳送指令,助記符: MOV。堆棧指令,助記符:堆棧指令,助記符: PUSH,POP。數(shù)據(jù)交換指令,數(shù)據(jù)交換指令,

11、助記符:助記符:XCH,XCHD,SWAP。 外部數(shù)據(jù)傳送指令,助記符:外部數(shù)據(jù)傳送指令,助記符: MOVX。讀程序存儲器指令,助記符:讀程序存儲器指令,助記符: MOVC。 只要目標(biāo)操作數(shù)不是A,數(shù)據(jù)傳送指令一般不影響標(biāo)識(寄存器PSW的相關(guān)位)。 1內(nèi)部數(shù)據(jù)傳送指令內(nèi)部數(shù)據(jù)傳送指令 內(nèi)部數(shù)據(jù)傳送是指數(shù)據(jù)在內(nèi)部內(nèi)部數(shù)據(jù)傳送是指數(shù)據(jù)在內(nèi)部RAM和和SFR中進(jìn)行的傳送。中進(jìn)行的傳送。指令格式:指令格式:MOV 目標(biāo)操作數(shù)目標(biāo)操作數(shù),源操作數(shù)源操作數(shù)指令功能:將源操作數(shù)指定的內(nèi)容傳送到目標(biāo)操作數(shù)中,源指令功能:將源操作數(shù)指定的內(nèi)容傳送到目標(biāo)操作數(shù)中,源操作數(shù)不變。操作數(shù)不變。 (1)以)以A作目標(biāo)

12、操作數(shù)的傳送指令MOV A,#24H ;A #24H7424 MOV A,35H ;A (35H) E535MOV A,R5;A (R5)11101101,即EDMOV A,R0 ;A (R0)11100110,即E6指令類型指令格式操作說明機(jī)器碼A作目標(biāo)操作數(shù)MOV A,#dataA #data74dataMOV A,directA (direct) E5directMOV A,RnA (Rn)11101rrr*MOV A,RiA (Ri)1110011i (2)以)以Rn作目標(biāo)操作數(shù)的傳送指令MOV R3,#22H;R3 22H 01111011 00100010 MOV R4, A ;R

13、4 (A) 11111100MOV R2, 23H ;R2 (23H) 10101010 00100011指令類型指令格式操作說明機(jī)器碼寄存器Rn作目標(biāo)操作數(shù)MOV Rn,#dataRn #data01111rrrDataMOV Rn, ARn (A)11111rrrMOV Rn, directRn (direct) 10101rrrdirect (3)以)以立即地址作目標(biāo)操作數(shù)的傳送指令指令類型指令格式操作說明機(jī)器碼direct作目標(biāo)操作數(shù)MOV direct, #datadirect#data 75directdataMOV direct,ADirect (A)F5directMOV di

14、rect1,direct2direct1 (direct2) 85direct2direct1MOV direct,Rndirect (Rn)10001rrrdirectMOV direct,Ridirect (Ri)1000011idirect (4)以)以間接地址作目標(biāo)操作數(shù)的傳送指令MOV R0, #7DH ;(R0) #7DH,01110110 01111101 MOV R1, 7AH ;(R1) (7AH),10100111 01111010MOV R0 ,A ;(R0) (A), 11110110指令類型指令格式操作說明機(jī)器碼以Ri作目標(biāo)操作數(shù)MOV Ri, #data(Ri) #

15、data0111011idataMOV Ri, direct(Ri) (direct)1010011idirectMOV Ri ,A(Ri) (A)1111011i 例:已知(例:已知(R0)=30H。指出下列程序段的執(zhí)行結(jié)果。指出下列程序段的執(zhí)行結(jié)果。MOV 30H , #88H ;30H 88H,(,(30H)=88HMOV 40H, #11H ;40H 11H,(,(40H)=11HMOV A, R0 ;A (R0), (A)=88HMOV R0, 40H ;(R0) (40H),(,(30H)=11HMOV 40H, A ;40H (A), (40H)=88H 例:已知(例:已知(R0

16、)=30H。指出下列程序段的執(zhí)行結(jié)果。指出下列程序段的執(zhí)行結(jié)果。MOV 30H , #88H ;30H 88H,(,(30H)=88HMOV 40H, #11H ;40H 11H,(,(40H)=11HMOV A, R0 ;A (R0), (A)=88HMOV R0, 40H ;(R0) (40H),(,(30H)=11HMOV 40H, A ;40H (A), (40H)=88H 結(jié)果:(結(jié)果:(A)=88H,(,(30H)=11H, (40H),),=88H 例:已知(例:已知(R0)=30H。指出下列程序段的執(zhí)行結(jié)果。指出下列程序段的執(zhí)行結(jié)果。MOV 30H , #88H ;30H 88

17、H,(,(30H)=88HMOV 40H, #11H ;40H 11H,(,(40H)=11HMOV A, R0 ;A (R0), (A)=88HMOV R0, 40H ;(R0) (40H),(,(30H)=11HMOV 40H, A ;40H (A), (40H)=88H 結(jié)果:(結(jié)果:(A)=88H,(,(30H)=11H, (40H),),=88H 例:分析指令例:分析指令MOV 0A0H,90H的作用,查表確定其機(jī)器碼的作用,查表確定其機(jī)器碼 例:已知(例:已知(R0)=30H。指出下列程序段的執(zhí)行結(jié)果。指出下列程序段的執(zhí)行結(jié)果。MOV 30H , #88H ;30H 88H,(,(

18、30H)=88HMOV 40H, #11H ;40H 11H,(,(40H)=11HMOV A, R0 ;A (R0), (A)=88HMOV R0, 40H ;(R0) (40H),(,(30H)=11HMOV 40H, A ;40H (A), (40H)=88H 結(jié)果:(結(jié)果:(A)=88H,(,(30H)=11H, (40H),),=88H 例:分析指令例:分析指令MOV 0A0H,90H的作用,查表確定其機(jī)器碼的作用,查表確定其機(jī)器碼 解:該指令是屬于解:該指令是屬于MOV direct1,direct2;源操作數(shù);源操作數(shù)direct2和目標(biāo)操作數(shù)和目標(biāo)操作數(shù)direct1都是片內(nèi)存

19、儲器的直接地址,即實現(xiàn)存儲都是片內(nèi)存儲器的直接地址,即實現(xiàn)存儲單元向另一存儲單元傳送數(shù)據(jù)。該指令的作用是把片內(nèi)單元向另一存儲單元傳送數(shù)據(jù)。該指令的作用是把片內(nèi)90H單單元中的內(nèi)容傳送到元中的內(nèi)容傳送到0A0H單元。單元。 機(jī)器碼為:機(jī)器碼為:85 A0 90 片內(nèi)RAM及寄存器的數(shù)據(jù)傳送指令MOV共15條,如圖助記。 內(nèi)部傳遞用MOV;目標(biāo)在前源在后。 R不能用兩次,所傳數(shù)據(jù)為8位。 DPTR是例外。 傳至數(shù)據(jù)16位 2堆棧操作指令堆棧操作指令 “堆棧堆棧”是一個按先進(jìn)后出的原則存取數(shù)據(jù)的存儲區(qū),該是一個按先進(jìn)后出的原則存取數(shù)據(jù)的存儲區(qū),該區(qū)區(qū)在內(nèi)部在內(nèi)部RAM中,棧頂由中,棧頂由SP指定。指

20、定。 堆棧操作即對棧頂存取數(shù)據(jù):堆棧操作即對棧頂存取數(shù)據(jù): 入棧:修改棧頂指針,某地址數(shù)據(jù)壓入棧頂。入棧:修改棧頂指針,某地址數(shù)據(jù)壓入棧頂。 出棧:棧頂數(shù)據(jù)彈出到某地址,修改棧頂指針出棧:棧頂數(shù)據(jù)彈出到某地址,修改棧頂指針 。 2堆棧操作指令堆棧操作指令 “堆棧堆?!笔且粋€按先進(jìn)后出的原則存取數(shù)據(jù)的存儲區(qū),該區(qū)在內(nèi)部是一個按先進(jìn)后出的原則存取數(shù)據(jù)的存儲區(qū),該區(qū)在內(nèi)部RAM中棧頂由中棧頂由SP指定。指定。 堆棧操作即對棧頂存取數(shù)據(jù):堆棧操作即對棧頂存取數(shù)據(jù): 入棧:修改棧頂指針,某地址數(shù)據(jù)壓入棧頂。入棧:修改棧頂指針,某地址數(shù)據(jù)壓入棧頂。 (1)PUSH將相應(yīng)數(shù)據(jù)壓入棧頂:將相應(yīng)數(shù)據(jù)壓入棧頂:P

21、USH direct ;棧頂指針棧頂指針+1,(,(direct)壓入棧頂)壓入棧頂 出棧:棧頂數(shù)據(jù)彈出到某地址,修改棧頂指針出棧:棧頂數(shù)據(jù)彈出到某地址,修改棧頂指針 。 (2)POP將棧頂數(shù)據(jù)彈致相應(yīng)單元:POP direct ;棧頂數(shù)據(jù)彈出到棧頂數(shù)據(jù)彈出到direct,棧頂指針,棧頂指針-1 (1)PUSH將相應(yīng)數(shù)據(jù)壓入棧頂:將相應(yīng)數(shù)據(jù)壓入棧頂:PUSH direct ;棧頂指針棧頂指針+1,(,(direct)壓入棧頂)壓入棧頂 (2)POP將棧頂數(shù)據(jù)彈致相應(yīng)單元:POP direct ;棧頂數(shù)據(jù)彈出到棧頂數(shù)據(jù)彈出到direct,棧頂指針,棧頂指針-1 棧頂由SP指定,是一個地址。 di

22、rect 棧頂 pushpop (1)PUSH將相應(yīng)數(shù)據(jù)壓入棧頂:將相應(yīng)數(shù)據(jù)壓入棧頂:PUSH direct ;棧頂指針棧頂指針+1,(,(direct)壓入棧頂)壓入棧頂 (2)POP將棧頂數(shù)據(jù)彈致相應(yīng)單元:POP direct ;棧頂數(shù)據(jù)彈出到棧頂數(shù)據(jù)彈出到direct,棧頂指針,棧頂指針-1 棧頂由SP指定,是一個地址。例:設(shè)SP=60H,(A)=30H,(B)=70H。注意棧頂開始為60H。PUSH A ;SP60H+1(棧頂為61H) ,61H(A)。 direct 棧頂 pushpop (1)PUSH將相應(yīng)數(shù)據(jù)壓入棧頂:將相應(yīng)數(shù)據(jù)壓入棧頂:PUSH direct ;棧頂增高,(棧頂

23、增高,(direct)壓入棧頂)壓入棧頂 (2)POP將棧頂數(shù)據(jù)彈致相應(yīng)單元:POP direct ;棧頂數(shù)據(jù)彈出到棧頂數(shù)據(jù)彈出到direct,棧頂降低,棧頂降低 棧頂由SP指定,是一個地址。例:設(shè)SP=60H,(A)=30H,(B)=70H。注意棧頂開始為60H。PUSH A ;SP60H+1(棧頂為61H) ,61H(A)。PUSH B ;SP61H+1 (棧頂為62H),62H(B) direct 棧頂 pushpop (1)PUSH將相應(yīng)數(shù)據(jù)壓入棧頂:將相應(yīng)數(shù)據(jù)壓入棧頂:PUSH direct ;棧頂增高,(棧頂增高,(direct)壓入棧頂)壓入棧頂 (2)POP將棧頂數(shù)據(jù)彈致相應(yīng)單

24、元:POP direct ;棧頂數(shù)據(jù)彈出到棧頂數(shù)據(jù)彈出到direct,棧頂降低,棧頂降低 棧頂由SP指定,是一個地址。例:設(shè)SP=60H,(A)=30H,(B)=70H。注意棧頂開始為60H。PUSH A ;SP60H+1(棧頂為61H) ,61H(A)。PUSH B ;SP61H+1 (棧頂為62H),62H(B)POP DPL ;DPL70H,SP62H-1 (棧頂為61H) direct 棧頂 pushpop (1)PUSH將相應(yīng)數(shù)據(jù)壓入棧頂:將相應(yīng)數(shù)據(jù)壓入棧頂:PUSH direct ;棧頂增高,(棧頂增高,(direct)壓入棧頂)壓入棧頂 (2)POP將棧頂數(shù)據(jù)彈致相應(yīng)單元:POP

25、 direct ;棧頂數(shù)據(jù)彈出到棧頂數(shù)據(jù)彈出到direct,棧頂降低,棧頂降低 棧頂由SP指定,是一個地址。例:設(shè)SP=60H,(A)=30H,(B)=70H。注意棧頂開始為60H。PUSH A ;SP60H+1(棧頂為61H) ,61H(A)。PUSH B ;SP61H+1 (棧頂為62H),62H(B)POP DPL ;DPL70H,SP62H-1 (棧頂為61H) POP DPH ;DPH30H,SP61H-1 (棧頂為60H), direct 棧頂 pushpop 3數(shù)據(jù)交換指令數(shù)據(jù)交換指令 數(shù)據(jù)交換主要是在內(nèi)部數(shù)據(jù)交換主要是在內(nèi)部RAM的某一單元和累加器的某一單元和累加器A之間進(jìn)之間

26、進(jìn)行,并且累加器行,并且累加器A總是作目標(biāo)操作數(shù)。總是作目標(biāo)操作數(shù)。 (1) 整字節(jié)交換指令整字節(jié)交換指令類型指令格式操作說明機(jī)器碼整字節(jié)交換指令XCH A,direct(A) (direct)11000101directXCH A,Rn(A) (Rn)11001rrrXCH A,Ri(A) (Ri)1100011i ARi Rndirect xchxchxch 例:例: 已知已知(30H)=88H,(40H)=11H,(R0)=30H,(R1)=40H。編。編寫實現(xiàn)寫實現(xiàn)30H與與40H單元內(nèi)容相互交換的程序段。單元內(nèi)容相互交換的程序段。 例:例: 已知已知(30H)=88H,(40H)=1

27、1H,(R0)=30H,(R1)=40H。編。編寫實現(xiàn)寫實現(xiàn)30H與與40H單元內(nèi)容相互交換的程序段。單元內(nèi)容相互交換的程序段。XCH 30H,40H 例:例: 已知已知(30H)=88H,(40H)=11H,(R0)=30H,(R1)=40H。編。編寫實現(xiàn)寫實現(xiàn)30H與與40H單元內(nèi)容相互交換的程序段。單元內(nèi)容相互交換的程序段。XCH 30H,40H 依助記圖依助記圖“XCH 30H,40H” 是錯誤的。是錯誤的。 ARi Rndirect xchxchxch 例:例: 已知已知(30H)=88H,(40H)=11H,(R0)=30H,(R1)=40H。編。編寫實現(xiàn)寫實現(xiàn)30H與與40H單元

28、內(nèi)容相互交換的程序段。單元內(nèi)容相互交換的程序段。XCH 30H,40H 依助記圖依助記圖“XCH 30H,40H” 是錯誤的。是錯誤的。XCH A,40H ;(A)(40H) ARi Rndirect xchxchxch 例:例: 已知已知(30H)=88H,(40H)=11H,(R0)=30H,(R1)=40H。編。編寫實現(xiàn)寫實現(xiàn)30H與與40H單元內(nèi)容相互交換的程序段。單元內(nèi)容相互交換的程序段。XCH 30H,40H 依助記圖依助記圖“XCH 30H,40H” 是錯誤的。是錯誤的。MOV A,30H ;A(30H) XCH A,40H ;(A)(40H) ARi Rndirect xchx

29、chxch 例:例: 已知已知(30H)=88H,(40H)=11H,(R0)=30H,(R1)=40H。編。編寫實現(xiàn)寫實現(xiàn)30H與與40H單元內(nèi)容相互交換的程序段。單元內(nèi)容相互交換的程序段。XCH 30H,40H 依助記圖依助記圖“XCH 30H,40H” 是錯誤的。是錯誤的。MOV A,30H ;A(30H) XCH A,40H ;(A)(40H) MOV 30H,A ;30H(A) ARi Rndirect xchxchxch (2)半字節(jié)交換指令半字節(jié)交換指令類型指令格式操作說明機(jī)器碼半字節(jié)交換指令XCHD A,Ri(A)30(Ri)301101011iSWAP A(A)30(A)74

30、11000100 ARi xchd A30A74swap (2)半字節(jié)交換指令半字節(jié)交換指令 例:已知(例:已知(R0)=20H,(,(A)=3AH,(,(20H)=85H,指出,指出執(zhí)行下列指令的結(jié)果。執(zhí)行下列指令的結(jié)果。XCHD A, R0 ;(;(A)=35H,(,(20H)=8AH,SWAP A ;(;(A)=53H類型指令格式操作說明機(jī)器碼半字節(jié)交換指令XCHD A,Ri(A)30(Ri)301101011iSWAP A(A)30(A)7411000100 ARi xchd A30A74swap (2)半字節(jié)交換指令半字節(jié)交換指令 例:已知(例:已知(R0)=20H,(,(A)=3A

31、H,(,(20H)=85H,指出,指出執(zhí)行下列指令的結(jié)果。執(zhí)行下列指令的結(jié)果。XCHD A, R0 ;(;(A)=35H,(,(20H)=8AH,SWAP A ;(;(A)=53H執(zhí)行結(jié)果:(執(zhí)行結(jié)果:(A)=53H,(,(20H)=8AH,(,(R0)=20H類型指令格式操作說明機(jī)器碼半字節(jié)交換指令XCHD A,Ri(A)30(Ri)301101011iSWAP A(A)30(A)7411000100 ARi xchd A30A74swap (2)半字節(jié)交換指令半字節(jié)交換指令XCHD A,R2 ;非法指令非法指令SWAP R0 ;非法指令非法指令類型指令格式操作說明機(jī)器碼半字節(jié)交換指令XCH

32、D A,Ri(A)30(Ri)301101011iSWAP A(A)30(A)7411000100 ARi xchd A30A74swap 4外部數(shù)據(jù)傳送指令MOVX 類型指令格式操作說明機(jī)器碼A為目標(biāo)操作數(shù)MOVX A,RiA 外(Ri)1110001iMOVX A,DPTRA(DPTR)11100000A為源操作數(shù)MOVX Ri,A外(Ri)(A)1111001iMOVX DPTR,A(DPTR)(A)11110000 4外部數(shù)據(jù)傳送指令MOVX 說明1:參與數(shù)據(jù)傳送的雙方:內(nèi)部A和外部RAM某單元。 類型指令格式操作說明機(jī)器碼A為目標(biāo)操作數(shù)MOVX A,RiA 外(Ri)1110001i

33、MOVX A,DPTRA(DPTR)11100000A為源操作數(shù)MOVX Ri,A外(Ri)(A)1111001iMOVX DPTR,A(DPTR)(A)11110000 4外部數(shù)據(jù)傳送指令MOVX 說明1:參與數(shù)據(jù)傳送的雙方:A和外部RAM某單元。 說明2:外部RAM某單元一般由DPTR指定;外部RAM空間不大于256B,其單元地址可以由Ri指定。建議不要使用用到Ri的指令類型指令格式操作說明機(jī)器碼A為目標(biāo)操作數(shù)MOVX A,RiA 外(Ri)1110001iMOVX A,DPTRA(DPTR)11100000A為源操作數(shù)MOVX Ri,A外(Ri)(A)1111001iMOVX DPTR,

34、A(DPTR)(A)11110000 4外部數(shù)據(jù)傳送指令MOVX 說明1:參與數(shù)據(jù)傳送的雙方:A和外部RAM某單元。 說明2:外部RAM某單元一般由DPTR指定;外部RAM空間不大于256B,其單元地址可以由Ri指定。建議不用有Ri的MOVX指令類型指令格式操作說明機(jī)器碼A為目標(biāo)操作數(shù)MOVX A,RiA 外(Ri)1110001iMOVX A,DPTRA(DPTR)11100000A為源操作數(shù)MOVX Ri,A外(Ri)(A)1111001iMOVX DPTR,A(DPTR)(A)11110000 ARiDPTR movxmovx編寫程序?qū)崿F(xiàn)下列要求的數(shù)據(jù)傳送。片內(nèi)RAM20H單元的內(nèi)容送片

35、內(nèi)RAM40H單元。編寫程序?qū)崿F(xiàn)下列要求的數(shù)據(jù)傳送。片內(nèi)RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV 40H,20H ;片內(nèi)RAM單元間的數(shù)據(jù)傳送可直接完成編寫程序?qū)崿F(xiàn)下列要求的數(shù)據(jù)傳送。片內(nèi)RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV 40H,20H ;片內(nèi)RAM單元間的數(shù)據(jù)傳送可直接完成片外RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。編寫程序?qū)崿F(xiàn)下列要求的數(shù)據(jù)傳送。片內(nèi)RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV 40H,20H ;片內(nèi)RAM單元間的數(shù)據(jù)傳送可直接完成片外RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOVX A, DPTR ;片外DPTR單元的內(nèi)

36、容送入累加器A編寫程序?qū)崿F(xiàn)下列要求的數(shù)據(jù)傳送。片內(nèi)RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV 40H,20H ;片內(nèi)RAM單元間的數(shù)據(jù)傳送可直接完成片外RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV DPTR, #0020H ;片外RAM的地址送入DPTRMOVX A, DPTR ;片外DPTR單元的內(nèi)容送入累加器AMOV 40H,A ;累加器A的內(nèi)容送入片內(nèi)RAM 40H單元編寫程序?qū)崿F(xiàn)下列要求的數(shù)據(jù)傳送。片內(nèi)RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV 40H,20H ;片內(nèi)RAM單元間的數(shù)據(jù)傳送可直接完成片外RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV D

37、PTR, #0020H ;片外RAM的地址送入DPTRMOVX A, DPTR ;片外DPTR單元的內(nèi)容送入累加器AMOV 40H,A ;累加器A的內(nèi)容送入片內(nèi)RAM 40H單元片內(nèi)RAM20H單元的內(nèi)容送片外RAM4000H單元。MOVX DPTR,A ;A的內(nèi)容送入外部RAM4000H單元編寫程序?qū)崿F(xiàn)下列要求的數(shù)據(jù)傳送。片內(nèi)RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV 40H,20H ;片內(nèi)RAM單元間的數(shù)據(jù)傳送可直接完成片外RAM20H單元的內(nèi)容送片內(nèi)RAM40H單元。MOV DPTR, #0020H ;片外RAM的地址送入DPTRMOVX A, DPTR ;片外DPTR單元的內(nèi)

38、容送入累加器AMOV 40H,A ;累加器A的內(nèi)容送入片內(nèi)RAM 40H單元片內(nèi)RAM20H單元的內(nèi)容送片外RAM4000H單元。MOV DPTR,#4000H ; 片外RAM4000H的地址送入DPTRMOV A, 20H ;內(nèi)部RAM20H單元的內(nèi)容送入AMOVX DPTR,A ;A的內(nèi)容送入外部RAM4000H單元 5讀程序存儲器的指令(查表指令)MOVC A,A+PC ;A程序存儲器某單元數(shù)據(jù) 5讀程序存儲器的指令(查表指令)MOVC A,A+PC ;A程序存儲器某單元數(shù)據(jù)MOVC A,A+DPTR ;A程序存儲器某單元數(shù)據(jù) 5讀程序存儲器的指令(查表指令)MOVC A,A+PC ;A

39、程序存儲器某單元數(shù)據(jù)MOVC A,A+DPTR ;A程序存儲器某單元數(shù)據(jù) 其中A+PC或A+DPTR為程序存儲器某單元地址。 AA+PCA+DPTR movcmovc例:程序存儲器2000H單元的內(nèi)容送外部RAM2040H單元。 例:程序存儲器2000H單元的內(nèi)容送外部RAM2040H單元。 AA+PCA+DPTR movcmovc ARiDPTR movxmovx例:程序存儲器2000H單元的內(nèi)容送外部RAM2040H單元。 解:MOVC A,A+DPTR ;程序存儲器2000H單元內(nèi)容送入AMOVX DPTR,A ;A的內(nèi)容送入外部RAM2040H單元 AA+PCA+DPTR movcmo

40、vc ARiDPTR movxmovx例:程序存儲器2000H單元的內(nèi)容送外部RAM2040H單元。 解:MOV DPTR,#2000H ; DPTR指向2000H單元。MOV A, #00H ;A清零MOVC A,A+DPTR ;程序存儲器2000H單元內(nèi)容送入AMOVX DPTR,A ;A的內(nèi)容送入外部RAM2040H單元 AA+PCA+DPTR movcmovc ARiDPTR movxmovx例:程序存儲器2000H單元的內(nèi)容送外部RAM2040H單元。 解:MOV DPTR,#2000H ; DPTR指向2000H單元。MOV A, #00H ;A清零MOVC A,A+DPTR ;程

41、序存儲器2000H單元內(nèi)容送入AMOV DPTR,#2040H ; DPTR指向2040H單元MOVX DPTR,A ;A的內(nèi)容送入外部RAM2040H單元 AA+PCA+DPTR movcmovc ARiDPTR movxmovx 例:在程序存儲器中,有如下數(shù)據(jù)表格為:例:在程序存儲器中,有如下數(shù)據(jù)表格為:1020H:30H,31H,32H,33H,34H,35H,36H,37H1028H:38H,39H,41H,42H,43H,44H,45H,46H執(zhí)行程序一:執(zhí)行程序一:1010H:MOV A,#15H1012H:MOVC A,A+PC ;15H+1013H=1028H ,A(1028H

42、) 例:在程序存儲器中,有如下數(shù)據(jù)表格為:例:在程序存儲器中,有如下數(shù)據(jù)表格為:1020H:30H,31H,32H,33H,34H,35H,36H,37H1028H:38H,39H,41H,42H,43H,44H,45H,46H執(zhí)行程序一:執(zhí)行程序一:1010H:MOV A,#15H1012H:MOVC A,A+PC ;15H+1013H=1028H ,A(1028H)執(zhí)行結(jié)果:(執(zhí)行結(jié)果:(A)=38H,(,(PC)=1013H 例:在程序存儲器中,有如下數(shù)據(jù)表格為:例:在程序存儲器中,有如下數(shù)據(jù)表格為:1020H:30H,31H,32H,33H,34H,35H,36H,37H1028H:3

43、8H,39H,41H,42H,43H,44H,45H,46H執(zhí)行程序一:執(zhí)行程序一:1010H:MOV A,#15H1012H:MOVC A,A+PC ;15H+1013H=1028H ,A(1028H)執(zhí)行結(jié)果:(執(zhí)行結(jié)果:(A)=38H,(,(PC)=1013H執(zhí)行程序二:執(zhí)行程序二:1004H:MOV A,#02H1006H:MOV DPTR,#1020H1009H:MOVC A,A+DPTR ;02H+1020H=1022H,A (1022H), 例:在程序存儲器中,有如下數(shù)據(jù)表格為:例:在程序存儲器中,有如下數(shù)據(jù)表格為:1020H:30H,31H,32H,33H,34H,35H,36

44、H,37H1028H:38H,39H,41H,42H,43H,44H,45H,46H執(zhí)行程序一:執(zhí)行程序一:1010H:MOV A,#15H1012H:MOVC A,A+PC ;15H+1013H=1028H ,A(1028H)執(zhí)行結(jié)果:(執(zhí)行結(jié)果:(A)=38H,(,(PC)=1013H執(zhí)行程序二:執(zhí)行程序二:1004H:MOV A,#02H1006H:MOV DPTR,#1020H1009H:MOVC A,A+DPTR ;02H+1020H=1022H,A (1022H),執(zhí)行結(jié)果:(執(zhí)行結(jié)果:(A)=32H,(,(PC)=100AH 7.3.2算術(shù)運算指令算術(shù)運算指令 MCS-51單片機(jī)

45、指令系統(tǒng)中,算術(shù)運算指令共有24條。 該類指令按二進(jìn)制運算法則影響PSW的標(biāo)識位 算術(shù)運算指令只能進(jìn)行單字節(jié)2進(jìn)制數(shù)運算。若要進(jìn)行多字節(jié)運算或BCD碼運算等,用戶必須采取另外的措施。 1加法指令加法指令 (1)不帶進(jìn)位加法指令)不帶進(jìn)位加法指令類型指令格式操作說明機(jī)器碼不帶進(jìn)位的加法指令A(yù)DD A,#dataA(A)+#data24dataADD A,directA(A)+(direct) 25directADD A,RnA(A)+(Rn)00101rrrADD A,RiA(A)+(Ri)0010011i例:(A)=0C5H,R0=20H,(20H)=0AFH,執(zhí)行指令: ADD A,R0例:

46、(A)=0C5H,R0=20H,(20H)=0AFH,執(zhí)行指令: ADD A,R01100010110101111 01110100例:(A)=0C5H,R0=20H,(20H)=0AFH,執(zhí)行指令: ADD A,R0結(jié)果:(A)=74H;Cy=1;AC=1;OV=1;P=1。 CPU只能進(jìn)行無符號數(shù)的運算,并影響Cy、AC、P。但是按有符號數(shù)運算影響OV。 在進(jìn)行帶符號數(shù)的加法運算時,溢出標(biāo)志OV是一個重要的編程標(biāo)志,利用它可以判斷兩個帶符號數(shù)相加,和數(shù)是否溢出1100010110101111 01110100 (2)帶進(jìn)位加法指令)帶進(jìn)位加法指令 說明說明1:該類指令的助記符是:該類指令的

47、助記符是ADD加上加上C,可理解為進(jìn)位標(biāo),可理解為進(jìn)位標(biāo)志志CY參與運算。常用于多字節(jié)加法運算的高字節(jié)求和。參與運算。常用于多字節(jié)加法運算的高字節(jié)求和。 說明說明2:該類指令對:該類指令對PSW中中CY、AC、OV及及P標(biāo)志產(chǎn)生影標(biāo)志產(chǎn)生影響與響與ADD相同。相同。類型指令格式操作說明機(jī)器碼帶進(jìn)位的加法指令A(yù)DDC A,#dataA(A)+#data+(c)34#dataADDC A,directA(A)+(direct)+(c)35directADDC A,RnA(A)+(Rn)+(c)00111rrrADDC A,RiA(A)+(Ri)+(c)0011011i 例:設(shè)例:設(shè)(A)=6DH,

48、(R1)=25H,(25H)=98H,(CY)=1。執(zhí)行。執(zhí)行指令指令:ADDC A,R1分析執(zhí)行結(jié)果及對各標(biāo)志位的影響?分析執(zhí)行結(jié)果及對各標(biāo)志位的影響? 例:設(shè)例:設(shè)(A)=6DH,(R1)=25H,(25H)=98H,(CY)=1。執(zhí)行。執(zhí)行指令指令:ADDC A,R1分析執(zhí)行結(jié)果及對各標(biāo)志位的影響?分析執(zhí)行結(jié)果及對各標(biāo)志位的影響? 01101101 10011000+ c 00000110 例:設(shè)例:設(shè)(A)=6DH,(R1)=25H,(25H)=98H,(CY)=1。執(zhí)行。執(zhí)行指令指令:ADDC A,R1分析執(zhí)行結(jié)果及對各標(biāo)志位的影響?分析執(zhí)行結(jié)果及對各標(biāo)志位的影響?解:解:結(jié)果:(結(jié)

49、果:(A)=06H,(,(CY)=1分析:分析:CY求和后重新被置求和后重新被置1,(AC)=1;(OV)=0;(P)=0。 01101101 10011000+ c 00000110 例題:有兩個無符號16位二進(jìn)制數(shù)分別存于30H,31H和32H,33H單元中,求兩數(shù)和并將和存于32開始的單元中(高字節(jié)在高地址單元中)。MOV A,30HADD A,32HMOV 32H,A (31H)|(30H)+ (33H)|(32H)(34H)|(33H)|(32H) 例題:有兩個無符號16位二進(jìn)制數(shù)分別存于30H,31H和32H,33H單元中,求兩數(shù)和并將和存于32開始的單元中(高字節(jié)在高地址單元中)

50、。MOV A,30HADD A,32HMOV 32H,AMOV A,31HADDC A,33HMOV 33H,A (31H)|(30H)+ (33H)|(32H)(34H)|(33H)|(32H) 例題:有兩個無符號16位二進(jìn)制數(shù)分別存于30H,31H和32H,33H單元中,求兩數(shù)和并將和存于32開始的單元中(高字節(jié)在高地址單元中)。MOV A,30HADD A,32HMOV 32H,AMOV A,31HADDC A,33HMOV 33H,AMOV A,#00HADDC A,#00HMOV 34H,A (31H)|(30H)+ (33H)|(32H)(34H)|(33H)|(32H) (3)加

51、)加1指令指令 說明:該類指令只有說明:該類指令只有INC A對對PSW的的P標(biāo)志位有影標(biāo)志位有影響,其他指令對響,其他指令對PSW各標(biāo)志位均無影響。各標(biāo)志位均無影響。 類型指令格式操作說明機(jī)器碼加1指令I(lǐng)NC AA(A)+104INC directdirect(direct)+105directINC RnRn(Rn)+100001rrrINC Ri(Ri)(Ri)+10000011iINC DPTRDPTR(DPTR)+1A3 例例:設(shè)設(shè)(A)=7FH,(R0)=35H,(35H)=0FFH,(DPTR)=68FFH ,(36H)=9AH 。分析如下指令的執(zhí)行過程和結(jié)果。分析如下指令的執(zhí)行

52、過程和結(jié)果。(1) INC A ;A (A)+1 (A)=80H(2) INC R0 ;R0(R0)+1 (R0)=36H(3) INC 36H ;36H(36H)+1 (36H)=9BH(4) INC R0 ;R0(R0)+1 (35H)=00H(5) INC DPTR ;DPTR(DPTR)+1,(DPTR)=6900H (4)十進(jìn)制調(diào)整指令)十進(jìn)制調(diào)整指令 這條指令是在進(jìn)行這條指令是在進(jìn)行BCD碼加法運算時,跟有碼加法運算時,跟有ADD或或ADDC指令之后,用于對指令之后,用于對BCD碼的加法運算結(jié)果自動進(jìn)行修正,使其碼的加法運算結(jié)果自動進(jìn)行修正,使其仍為仍為BCD碼表達(dá)形式。碼表達(dá)形式

53、。 類型指令格式操作說明機(jī)器碼BCD碼加法的十進(jìn)制調(diào)整指令DA AD4 (4)十進(jìn)制調(diào)整指令)十進(jìn)制調(diào)整指令 這條指令是在進(jìn)行這條指令是在進(jìn)行BCD碼加法運算時,跟有碼加法運算時,跟有ADD或或ADDC指令之后,用于對指令之后,用于對BCD碼的加法運算結(jié)果自動進(jìn)行修正,使其碼的加法運算結(jié)果自動進(jìn)行修正,使其仍為仍為BCD碼表達(dá)形式。碼表達(dá)形式。 BCD碼是一種用碼是一種用4位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)的編碼,即位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)的編碼,即用用0000B1001B十個二進(jìn)制編碼表示十個二進(jìn)制編碼表示09十個十進(jìn)制數(shù)碼。然十個十進(jìn)制數(shù)碼。然而計算機(jī)在進(jìn)行運算時是按照二進(jìn)制規(guī)則進(jìn)行的,對而計算

54、機(jī)在進(jìn)行運算時是按照二進(jìn)制規(guī)則進(jìn)行的,對4位二進(jìn)制位二進(jìn)制數(shù)是按逢數(shù)是按逢16進(jìn)位的,不符合十進(jìn)制的運算規(guī)則,當(dāng)運算出現(xiàn)進(jìn)進(jìn)位的,不符合十進(jìn)制的運算規(guī)則,當(dāng)運算出現(xiàn)進(jìn)位或位或4位二進(jìn)制數(shù)大于位二進(jìn)制數(shù)大于1001B(9)時,就會導(dǎo)致錯誤結(jié)果。)時,就會導(dǎo)致錯誤結(jié)果。 類型指令格式操作說明機(jī)器碼BCD碼加法的十進(jìn)制調(diào)整指令DA AD4 例如,如下例如,如下BCD碼運算碼運算38 +79 結(jié)果為結(jié)果為B1H,對應(yīng)的十進(jìn)制數(shù)是,對應(yīng)的十進(jìn)制數(shù)是178,顯示結(jié)果出錯。正確,顯示結(jié)果出錯。正確的結(jié)果應(yīng)是的結(jié)果應(yīng)是117。因此。因此BCD碼加法運算后必須用碼加法運算后必須用DA指令進(jìn)行調(diào)整指令進(jìn)行調(diào)整 M

55、OV A,#38H;(A)=00111000B ADD A,#79H ;00111000B+01111001= 10110001ADA A ;調(diào)整調(diào)整(A)=00010111,(CY)=1 38+) 7910110001 00111000+)01111001 1117 (000100010111)例例3:兩個兩個BCD數(shù)在外部數(shù)在外部RAM的的2031H,2030H和和2041H,2040H中中, 求其和,結(jié)果放在內(nèi)部求其和,結(jié)果放在內(nèi)部32H31H30H中。中。 (2031H)|(2030H)+ (2041H)|(2040H) (32H)| (31H) | (30H)例例3:兩個兩個BCD數(shù)

56、在外部數(shù)在外部RAM的的2031H,2030H和和2041H,2040H中中, 求其和,結(jié)果放在內(nèi)部求其和,結(jié)果放在內(nèi)部32H31H30H中。中。 (2031H)|(2030H)R2+ (2041H)|(2040H)A (32H)| (31H) | (30H)例例3:兩個兩個BCD數(shù)在外部數(shù)在外部RAM的的2031H,2030H和和2041H,2040H中中, 求其和,結(jié)果放在內(nèi)部求其和,結(jié)果放在內(nèi)部32H31H30H中中。ADD A , R2DA AMOV 30H, A ADDC A , R2DA AMOV 31H,A MOV A,#00H ADDC A,#00H MOV 32H,A (20

57、31H)|(2030H)R2+ (2041H)|(2040H)A (32H)| (31H) | (30H)例例3:兩個兩個BCD數(shù)在外部數(shù)在外部RAM的的2031H,2030H和和2041H,2040H中中, 求其和,結(jié)果放在內(nèi)部求其和,結(jié)果放在內(nèi)部32H31H30H中。中。 MOV DPTR,#2030HMOVX A , DPTRMOV R2 , AMOV DPTR,#2040HMOVX A ,DPTRADD A , R2DA AMOV 30H, AMOV DPTR,#2031HMOVX A, DPTRMOV R2 ,AMOV DPTR,#2041HMOVX A , DPTRADDC A ,

58、 R2DA AMOV 31H,AMOV A,#00HADDC A,#00H MOV 32H,A (2031H)|(2030H)+ (2041H)|(2040H) (32H)| (31H) | (30H) 2減法指令減法指令 (1)帶借位減法指令)帶借位減法指令 說明:該類指令對說明:該類指令對PSW的的CY,AC,OV,P標(biāo)志有影響。標(biāo)志有影響。 (2)減)減1指令指令 僅僅DEC A 指令影響指令影響PSW的的P位。位。類型指令格式操作說明機(jī)器碼帶借位的減法指令SUBB A ,#dataA(A)-#data-(CY)94#dataSUBB A, directA(A)-(direct)-(CY

59、) 95directSUBB A,RnA(A)-(Rn)-(CY)10011rrrSUBB A,RiA(A)-(Ri)-(CY)1001011i減1指令DEC AA(A)-100010100DEC directdirect(direct)-115directDEC RnRn(Rn)-100011rrrDEC Ri(Ri)(Ri)-10001011i 例:設(shè)(例:設(shè)(A)=98H,(,(R3)=6AH,(,(CY)=1。執(zhí)行指令。執(zhí)行指令SUBB A,R3,分析執(zhí)行結(jié)果及對各標(biāo)志位的影響?,分析執(zhí)行結(jié)果及對各標(biāo)志位的影響? 結(jié)果:(結(jié)果:(A)=2DH 標(biāo)志位:(標(biāo)志位:(CY)=0, (AC)

60、=1,(,(P)=0。 看作無符號數(shù),結(jié)果正確;看作無符號數(shù),結(jié)果正確; 如果看作帶符號數(shù),一個負(fù)數(shù)減去一個正數(shù),結(jié)果為正如果看作帶符號數(shù),一個負(fù)數(shù)減去一個正數(shù),結(jié)果為正數(shù),結(jié)果錯誤。數(shù),結(jié)果錯誤。CPU產(chǎn)生溢出(產(chǎn)生溢出(OV)=1,指出錯誤。,指出錯誤。 (A) =1 0 0 1 1 0 0 0 (R3)=0 1 1 0 1 0 1 0 -) (CY)= 1 (A) =0 0 1 0 1 1 0 1 98H 6AH-) 1 2DH 例:有兩個無符號16位二進(jìn)制數(shù)分別存于30H,31H和32H,33H單元中,求兩數(shù)差并將差存于32開始的單元中(高字節(jié)在高地址單元中)。 MOV A,30HCL

溫馨提示

  • 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

提交評論