單片機(jī)——算術(shù)運(yùn)算類指令_第1頁
單片機(jī)——算術(shù)運(yùn)算類指令_第2頁
單片機(jī)——算術(shù)運(yùn)算類指令_第3頁
單片機(jī)——算術(shù)運(yùn)算類指令_第4頁
單片機(jī)——算術(shù)運(yùn)算類指令_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)12 算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令(24條條) Arithmetic Operations 主要對主要對8位無符號數(shù);也可用于帶符號數(shù)運(yùn)算。位無符號數(shù);也可用于帶符號數(shù)運(yùn)算。 包括:加、減、乘、除、加包括:加、減、乘、除、加1、減、減1運(yùn)算指令運(yùn)算指令 影響影響PSW有關(guān)位。有關(guān)位。 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)2算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令(6種種/24條)條)加法運(yùn)算:加法運(yùn)算: (ADD4條條)帶進(jìn)位加法運(yùn)算帶進(jìn)位加法運(yùn)算: (ADDC4條條)帶借位減法運(yùn)算帶借位

2、減法運(yùn)算: (SUBB4條條)加加1/減減1操作:操作: (INC,DEC9條條)單字節(jié)乘單字節(jié)乘/除法運(yùn)算除法運(yùn)算: (MUL,DIV2條條)十進(jìn)制調(diào)整:十進(jìn)制調(diào)整: (DA A1條條) 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)3加法運(yùn)算:加法運(yùn)算: (ADD4條)條)帶進(jìn)位加法運(yùn)算帶進(jìn)位加法運(yùn)算: (ADDC4條)條)帶借位減法運(yùn)算:帶借位減法運(yùn)算: (SUBB4條)條)所有的加法所有的加法(ADD)、帶進(jìn)位加法、帶進(jìn)位加法(ADDC)、帶借位、帶借位減法減法(SUBB)運(yùn)算都是以運(yùn)算都是以 A為一個加數(shù)或被減數(shù)為一個加數(shù)或被減數(shù),最最終結(jié)果也存進(jìn)終結(jié)果

3、也存進(jìn) A 。加法加法(ADD)、帶進(jìn)位加法、帶進(jìn)位加法(ADDC) 以及帶借位減以及帶借位減法法(SUBB)運(yùn)算中運(yùn)算中,如果產(chǎn)生了進(jìn)位或借位如果產(chǎn)生了進(jìn)位或借位,將自動將自動對對PSW中的中的Cy標(biāo)志位置標(biāo)志位置“1” 。帶進(jìn)位加法帶進(jìn)位加法(ADDC):(A)(A)+(Cy)+(第二操作數(shù)第二操作數(shù))帶借位減法帶借位減法(SUBB):(A)(A)-(Cy)-(第二操作數(shù)第二操作數(shù)) 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)4ADD A,#data ; AdataAADD A,direct ; A(direct )AADD A,Rn ; ARnAADD

4、A,Ri ; A(Ri)A用途:用途:將將A A中的值與源操作數(shù)所指內(nèi)容相加,最終結(jié)果中的值與源操作數(shù)所指內(nèi)容相加,最終結(jié)果 存在存在A A中。中。1.不帶進(jìn)位位的加法指令(4 4條)條)加法指令加法指令 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)5CY=0,AC=1,P=0,OV=1, (A)=B4H 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)62.帶進(jìn)位位的加法指令(4條)條)ADDC A,Rn; ARnCYAADDC A,direct; A(direct )CYAADDC A,Ri ; A(Ri)CYAADDC A,#d

5、ata; AdataCYA用途:用途:將將A中的值中的值和其后面的值以及進(jìn)位位和其后面的值以及進(jìn)位位C中的值相中的值相加,最終加,最終結(jié)果存在結(jié)果存在A,常用于多字節(jié)數(shù)運(yùn)算中。,常用于多字節(jié)數(shù)運(yùn)算中。 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)7說明:說明:由于由于51單片機(jī)是一種單片機(jī)是一種8位機(jī),所以只能位機(jī),所以只能做做8位的數(shù)學(xué)運(yùn)算,但位的數(shù)學(xué)運(yùn)算,但8位運(yùn)算的范圍只有位運(yùn)算的范圍只有0255,這在實(shí)際工作中是不夠的,因此就,這在實(shí)際工作中是不夠的,因此就要進(jìn)行擴(kuò)展,一般是將要進(jìn)行擴(kuò)展,一般是將2個個8位位(兩字節(jié)兩字節(jié))的數(shù)的數(shù)學(xué)運(yùn)算合起來,成為一個

6、學(xué)運(yùn)算合起來,成為一個16位的運(yùn)算,這位的運(yùn)算,這樣,可以表達(dá)的數(shù)的范圍就可以達(dá)到樣,可以表達(dá)的數(shù)的范圍就可以達(dá)到065535。 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)8例: 先做先做67H+A0H=107H,而,而107H顯然超過了顯然超過了0FFH,因此最終保存在,因此最終保存在A中的是中的是07H,而,而1則到了則到了PSW中的中的CY位了。換言之,位了。換言之,CY就相當(dāng)于是就相當(dāng)于是100H。 然后再做然后再做10H + 30H + CY,結(jié)果是,結(jié)果是41H,所,所以最終的結(jié)果是以最終的結(jié)果是4107H。1067H+30A0H0001 0000

7、 0110 0111 0011 0000 1010 0000 0100 0001 0000 0111 1067H30A0H4107H 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)9例:例:設(shè)設(shè)1067H存在存在R1R0中,中, 3020H存在存在R3R2中中,計算計算R1R0+R3R2,結(jié)果存在,結(jié)果存在R5R4中。中。MOV A,R0ADD A,R2 ;R0+R2A和和CYMOV R4,AMOV A,R1ADDC A,R3 ;R1+R3+CYA和和CYMOV R5,A 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)10又例: 先做

8、先做67H+20H=87H,沒有超過,沒有超過0FFH,因此,因此最終保存在最終保存在A中的是中的是87H,而,而PSW中的中的CY=0。 然后再做然后再做10H + 30H + CY,結(jié)果是,結(jié)果是40H,所,所以最終的結(jié)果是以最終的結(jié)果是4087H。1067H+3020H0001 0000 0110 0111 0011 0000 0010 0000 0100 0000 1000 0111 1067H3020H4087H 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)11DA A在進(jìn)行在進(jìn)行BCD碼加法運(yùn)算時,跟在碼加法運(yùn)算時,跟在ADD和和ADDC指指令之后,

9、用于對累加器令之后,用于對累加器A中剛進(jìn)行的兩個中剛進(jìn)行的兩個BCD碼的加碼的加法的結(jié)果進(jìn)行十進(jìn)制調(diào)整。法的結(jié)果進(jìn)行十進(jìn)制調(diào)整。例:例:A=0001 0101BCD(代表十進(jìn)制數(shù)(代表十進(jìn)制數(shù)15) ADD A,#83. 十進(jìn)制調(diào)整指令(1條)條); A=1DH,按二進(jìn)制規(guī)律加,按二進(jìn)制規(guī)律加; A=23H,按十進(jìn)制規(guī)律加,按十進(jìn)制規(guī)律加 DA A 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)12 調(diào)整要完成的任務(wù)是:調(diào)整要完成的任務(wù)是:(1)當(dāng)累加器)當(dāng)累加器A中的中的低低4位數(shù)出現(xiàn)了非位數(shù)出現(xiàn)了非BCD碼(碼(10101111)或低)或低4位產(chǎn)生進(jìn)位位產(chǎn)生進(jìn)

10、位(AC=1),則應(yīng)在低),則應(yīng)在低4位加位加6調(diào)整,以產(chǎn)調(diào)整,以產(chǎn)生低生低4位正確的位正確的BCD結(jié)果。結(jié)果。(2)當(dāng)累加器)當(dāng)累加器A中的中的高高4位位數(shù)出現(xiàn)了非數(shù)出現(xiàn)了非BCD碼(碼(10101111)或高)或高4位產(chǎn)生進(jìn)位位產(chǎn)生進(jìn)位(CY=1),則應(yīng)在高),則應(yīng)在高4位加位加6調(diào)整,以產(chǎn)生調(diào)整,以產(chǎn)生高高4位正確的位正確的BCD結(jié)果。結(jié)果。 十進(jìn)制調(diào)整指令執(zhí)行后,十進(jìn)制調(diào)整指令執(zhí)行后,PSW中的中的CY表表示結(jié)果的百位值示結(jié)果的百位值。 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)13例例 若(若(A)0101 0110B,表示的,表示的BCD碼為碼為5

11、6,(R3)0110 0111B,表示的,表示的BCD碼為碼為67,(,(CY)0。執(zhí)行以下指令:執(zhí)行以下指令:ADD A,R2DA A由于(由于(A)0010 0011B,即,即23,且(,且(CY)1,即,即結(jié)果為結(jié)果為BCD數(shù)數(shù)123。應(yīng)該注意,應(yīng)該注意,DA指令不能對減法進(jìn)行十進(jìn)制調(diào)整。指令不能對減法進(jìn)行十進(jìn)制調(diào)整。 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)14減法指令(8條)條)SUBB A,Rn ; ARnCYASUBB A,direct ; A(direct )CYASUBB A,Ri ; A(Ri)CYASUBB A,#data ; Adat

12、aCYA將將A中的值減去源操作數(shù)所指內(nèi)容以及進(jìn)位位中的值減去源操作數(shù)所指內(nèi)容以及進(jìn)位位C中的中的值,最終結(jié)果存在值,最終結(jié)果存在A中。中。1. 帶借位的減法指令(4條)條) 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)15例:例: SUBB A,R2設(shè):設(shè): A=C9H,R2=55H,CY=1,執(zhí)行指令之后,執(zhí)行指令之后,A中的值為中的值為73H。 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)16說明:說明:沒有不帶借位的減法指令,如果需沒有不帶借位的減法指令,如果需要做不帶位的減法指令(在做第一次相減要做不帶位的減法指令(在做第

13、一次相減時),只要將時),只要將CY清零即可。清零即可。對帶符號數(shù),要注意對帶符號數(shù),要注意OV標(biāo)志。標(biāo)志。OV=1,出,出錯。錯。 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)17例例:設(shè)(:設(shè)(A)=52H, (R0)=B4H執(zhí)行指令:執(zhí)行指令: CLR C SUBB A, R0結(jié)果為:結(jié)果為: 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)18加加1/1/減減1 1操作:操作: (INCINC,DEC9DEC9條)條)INC, DECINC, DEC與用加與用加/ /減法指令做加減法指令做加1/1/減減1 1 操作不操作不同之

14、處在于同之處在于INCINC、DECDEC不影響標(biāo)志位不影響標(biāo)志位(CYCY、OVOV、ACAC). .只有涉及累加器只有涉及累加器A A的指令的指令I(lǐng)NC AINC A、DEC ADEC A才影響奇偶標(biāo)志才影響奇偶標(biāo)志P P。 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)19單字節(jié)乘單字節(jié)乘/ /除運(yùn)算除運(yùn)算: : (MUL,DIV2條條)兩個單字節(jié)數(shù)的乘兩個單字節(jié)數(shù)的乘/除法運(yùn)算只在除法運(yùn)算只在A與與B之間進(jìn)行。之間進(jìn)行。MUL AB: (A)與與(B)相乘相乘, 積為積為16位數(shù)位數(shù), (B)積的積的高高8位位; (A)積的積的低低8位位DIV AB: (

15、A)除以除以(B),結(jié)果用結(jié)果用2字節(jié)表示字節(jié)表示, (A)商的整數(shù)部分商的整數(shù)部分;(B)余數(shù)余數(shù) 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)20乘法指令執(zhí)行后,進(jìn)位標(biāo)志乘法指令執(zhí)行后,進(jìn)位標(biāo)志CY總是清零,即總是清零,即CY=0除法指令執(zhí)行后,進(jìn)位標(biāo)志除法指令執(zhí)行后,進(jìn)位標(biāo)志CY和溢出標(biāo)志和溢出標(biāo)志OV均被均被清零清零。若若除數(shù)除數(shù)B中的內(nèi)容中的內(nèi)容為為0時,除法運(yùn)算沒有意義,結(jié)果為時,除法運(yùn)算沒有意義,結(jié)果為不定值,此時溢出標(biāo)志不定值,此時溢出標(biāo)志OV被置為被置為1,即,即OV=1,而,而CY仍為仍為0. 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院

16、第三章 MCS-51指令系統(tǒng)211、寫出下列程序的運(yùn)行結(jié)果。、寫出下列程序的運(yùn)行結(jié)果。MOV SP,# 40HMOV 42H,#85HMOV 55H,#37HPUSH 42HPUSH 55HPOP 42HPOP 55H(SP)=? (42H)= ? (55H)= ?練習(xí)題練習(xí)題 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)222、執(zhí)行下面程序段后,片內(nèi)、執(zhí)行下面程序段后,片內(nèi)RAM 30H和片和片外外RAM 30H單元的值是:單元的值是:MOV 30H, #30MOV R1, #30HMOV A, #03HMOVX R1, AXCH A, R1MOVX R1,

17、A內(nèi)部內(nèi)部RAM(30H)=?;外部?;外部RAM(30H)=? 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)233、判斷題、判斷題 下面指令是否正確,并將錯誤指令改正之。下面指令是否正確,并將錯誤指令改正之。MOV #30H , AMOV DPTR , ADA R1 DIV A , R0MOV 30H , 40HPUSH #30H 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)245 邏輯運(yùn)算類指令(24條)條)主要用于對主要用于對2個操作數(shù)按個操作數(shù)按位進(jìn)行邏輯位進(jìn)行邏輯操作,結(jié)果送到操作,結(jié)果送到A或直接尋址單元?;蛑苯訉ぶ穯?/p>

18、元。v 主要操作主要操作 與、或、異或、移位、取反、清零等。與、或、異或、移位、取反、清零等。v 對標(biāo)志位的影響對標(biāo)志位的影響 除了目的操作數(shù)為除了目的操作數(shù)為ACC的指令影響奇偶標(biāo)志的指令影響奇偶標(biāo)志P外,外,一般不影響標(biāo)志位。一般不影響標(biāo)志位。Logic Operations 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)25邏輯運(yùn)算指令的常見用法邏輯運(yùn)算指令的常見用法邏輯與邏輯與ANL用于用于清清0或者或者保留保留某些位:某些位:例例: ANL A, #0FH; 則則(A) = 0AH( 已知累加器已知累加器A中已存有數(shù):中已存有數(shù):9AH )邏輯或邏輯或O

19、RL用于用于置置1或者或者保留保留某些位:某些位:例例: ORL A, #0FH; 則則(A) = 9FH邏輯異或邏輯異或XRL用于用于取反取反或者或者保留保留某些位:某些位:例例: XRL A, #0FH; 則則(A) = 95H 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)261 邏輯或指令邏輯或指令(6條)條)ORL A,Rn ;ARnAORL A,direct ;A(direct)AORL A,Ri ;A(Ri)AORL A,#data;AdataAORL direct,A;(direct)A(direct)ORL direct,#data ;(dire

20、ct)data(direct)影響影響P標(biāo)志標(biāo)志后兩條指令,若直接地址為后兩條指令,若直接地址為I/O端端口,則為口,則為“讀改寫讀改寫”操作。操作。 OR Logic Instruction 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)27例:例:71H和和56H相或:相或: 01110001 (71H) ) 01010110 (56H) 01110111 即即77H 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)282 邏輯與指令邏輯與指令 (6條)條)ANL A,Rn ;ARnAANL A,direct ;A(direct)A

21、ANL A,Ri ;A(Ri)AANL A,#data ;AdataAANL direct,A ;(direct)A(direct)ANL direct,#data ;(direct)data(direct)影響影響P標(biāo)志標(biāo)志后兩條指令,若直接地址為后兩條指令,若直接地址為I/O端口,則為端口,則為“讀改寫讀改寫”操作。操作。 ANd Logic Instruction 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)29例:例:71H和和56H相與:相與:01110001 (71H) )01010110 (56H) 01010000 即即50H 成成都都理理工工大

22、大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)303 邏輯異或指令(6條)條)XRL A,Rn ;A RnAXRL A,direct ;A (direct)AXRL A,Ri ;A (Ri)AXRL A,#data ;A dataAXRL direct,A ;(direct) A(direct)XRL direct,#data ;(direct) data(direct)影響影響P標(biāo)志標(biāo)志后兩條指令,若直接地址為后兩條指令,若直接地址為I/O端口,則為端口,則為“讀讀改寫改寫”操作操作。 eXclusive-oR Logic Instruction 成成都都理理工工大大學(xué)學(xué)工工程程

23、技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)31例:例:71H和和56H相異或:相異或: 01110001 (71H) ) 01010110 (56H) 00100111 即即27H 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)324 清清0與與取反指令(2條)條)取反:取反:CPL A ;/AA例:例:若若A=5CH,執(zhí)行,執(zhí)行CPL A 結(jié)果:結(jié)果:A=A3H清清0:CLR A ;0AComPlement Logic Operation 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)335 循環(huán)移位指令循環(huán)移位指令(4條)條)RL ARR ARLC ARRC AA.7 A.0A.7 A.0A.7 A.0CYCYA.7 A.0后兩條指令,影響后兩條指令,影響P標(biāo)志和標(biāo)志和CY。 Rotate Logic instruction 成成都都理理工工大大學(xué)學(xué)工工程程技技術(shù)術(shù)學(xué)學(xué)院院第三章 MCS-51指令系統(tǒng)34例:例:若若A=5CH,CY=1,執(zhí)行,執(zhí)行RLC A后,后,v 對對RLC、RRC指令,在指令,在CY=0時時 RLC

溫馨提示

  • 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

提交評論