單片機(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頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5講:指令系統(tǒng)知識目標(biāo):掌握算術(shù)邏輯運(yùn)算技能目標(biāo):對P1口LED燈操作4/1/2023§3.3.2算術(shù)運(yùn)算指令1.不帶進(jìn)位加法指令(四條)2.帶進(jìn)位加法指令(四條)3.帶借位減法指令(四條)4.乘法指令(1條)5、除法指令(1條)6、加1指令(5條)7、減1指令(4條)8、十進(jìn)制調(diào)整指令(1條)Back4/1/20231、不帶進(jìn)位加法指令(四條)

匯編指令格式機(jī)器碼格式操作注釋ADDA,Rn;00101rrr(A)+(Rn)→A將工作寄存器內(nèi)容和累加器A中的數(shù)相加,“和”存放于累加器A中ADDA,direct;00100101(A)+(direct)→A將內(nèi)部RAM單元內(nèi)容和direct累加器A中的數(shù)相加,“和”存放于累加器A中ADDA,@Ri;0010011i(A)+((Ri))→A將間接尋址(Ri為R0或R1)所得的片內(nèi)RAM單元中內(nèi)容和累加器A中的數(shù)相加,“和”存放于累加器A中ADDA,#data;00100100(A)+#data→A將立即數(shù)的8位無符號二進(jìn)制data數(shù)和累加器A中的數(shù)相加,“和”存放于累加器A中4/1/20232、帶進(jìn)位加法指令(四條)匯編指令格式機(jī)器碼格式操作注釋ADDCA,Rn;00111rrr(A)+CY+(Rn)→A將工作寄存器內(nèi)容與CY及累加器A中的數(shù)相加,“和”存放于累加器A中ADDCA,direct;00110101(A)+CY+(direct)→A將內(nèi)部RAM單元內(nèi)容與directCY及累加器A中的數(shù)相加,“和”存放于累加器A中ADDCA,@Ri;0011011i(A)+CY+((Ri))→A將間接尋址(Ri為R0或R1)所得的片內(nèi)RAM單元中內(nèi)容與CY及累加器A中的數(shù)相加,“和”存放于累加器A中ADDCA,#data;00110100(A)+CY+#data→A將立即數(shù)的8位無符號二進(jìn)data制數(shù)與CY及累加器A中的數(shù)相加,“和”存放于累加器A中4/1/2023說明:本組指令的功能是同時把源操作數(shù)所指出的內(nèi)容和進(jìn)位標(biāo)志未CY都加到累加器A中,結(jié)果存放到A中,其余的功能和上面的ADD指令相同。本組指令常用于多字節(jié)加法。

例:設(shè)(A)=0C3H,(R0)=0AAH,(CY)=1。

執(zhí)行指令“ADDCA,R0”后的結(jié)果及標(biāo)志位如何?解:(A):C3H=11000011+(CY):1=0000000111000100+(R0):AAH=10101010(A):6EH=01101110標(biāo)志位:CY=1,OV=1,AC=0,結(jié)果:(A)=6EH,(R0)=0AAH。

4/1/2023例:編程,將(30H),(31H)單元中的數(shù)與(40H),(41H)單元中的數(shù)相加,結(jié)果存于(30H),(31H)單元中。解: MOVA,30H ADDA,40H MOV30H,A MOVA,31H ADDCA,41H MOV31H,ABack4/1/2023

說明:這組指令的功能是從累加器A中減去源操作數(shù)所指出的數(shù)及進(jìn)位位CY的值,差保留在累加器A中。 由于89C51指令系統(tǒng)中沒有不帶借位的減法指令,如需要的話,可以在“SUBB”指令前用“CLRC”指令將Cy清0,這一點(diǎn)必須注意。4/1/2023例:設(shè)(A)=0C9H,(R2)=54H,Cy=1。

執(zhí)行指令“SUBBA,R2”的結(jié)果如何?解: (A)=0C9H=11001001B-)Cy=1=00000001B11001000B-)(R2)=54H=01010100B(A)=74H=01110100B結(jié)果為:(A)=74H標(biāo)志位為:Cy=0AC=0OV=1P=0Back4/1/20234、乘法指令(1條)該指令若乘積大于0FFH,則OV置1,否則OV清0。Cy位總是被清0。匯編指令格式機(jī)器碼格式操作MULAB ;10100100(A)×(B)→B15-8A7-0該指令將累加器A和寄存器B中兩個無符號數(shù)相乘,所得16位積的低字節(jié)存放在A中,高字節(jié)存放中B中。例:(A)=4EH,(B)=5DH,執(zhí)行指令“MULAB”后結(jié)果如何?

解:結(jié)果為:(B)=1CH,(A)=56H,表示積(BA)=1C56H,OV=1。Back4/1/20236、加1指令(5條)

該組指令的操作不影響PSW。若原單元內(nèi)容為FFH,加1后溢出為00H,也不影響PSW標(biāo)志。匯編指令格式機(jī)器碼格式操作注釋INCA;00000100(A)+1→AA中內(nèi)容加1。INCRn;00001rrr(Rn)+1→RnRn中內(nèi)容加1。INCdirect;00000101(direct)+1→directdirect單元中內(nèi)容加1。directINC@Ri;0000011i((Ri))+1→(Ri)Ri間接尋址所得的片內(nèi)RAM單元中內(nèi)容加1。INCDPTR;10100011(DPTR)+1→DPTRDPTR中內(nèi)容加1例:比較指令“INCA”和“ADDA,#01H”的結(jié)果。解: “INCA”指令只將A的內(nèi)容加1,標(biāo)志位沒有變化。而“ADDA,#01H”指令不僅將A的內(nèi)容加1,還影響標(biāo)志位變化。4/1/2023例:若:(R1)=30H,(30H)=11H

求執(zhí)行下面指令后的結(jié)果。

INC@R1;(30H)=12H

INCR1;(R1)=31H解:結(jié)果為:(30H)=12H,(R1)=31H。不影響PWS.Back4/1/20237、減1指令(4條)匯編指令格式機(jī)器碼格式操作注釋DECA;00010100(A)-1→AA中內(nèi)容減1。DECRn;00011rrr(Rn)-1→RnRn中內(nèi)容減1。DECdirect;00010101(direct)-1→directdirect單元中內(nèi)容減1。directDEC@Ri;0001011i((Ri))-1→(Ri)Ri間接尋址所得的片內(nèi)RAM單元中內(nèi)容減1。

該組指令的操作不影響PSW。Back4/1/2023例: 設(shè)累加器A內(nèi)容為:01010110B(即為56的BCD碼),寄存器R3的內(nèi)容為01100111B(即67的BCD碼),CY內(nèi)容為1。求執(zhí)行下列指令后的結(jié)果。 ADDCA,R3;

DAA;解:先執(zhí)行ADDCA,R3; (A):01010110BCD:56(R3):01100111BCD:67

(+)(CY):00000001BCD:01 和:10111110即(A)=10111110且影響標(biāo)志位CY=0,AC=0;

再執(zhí)行DAA;因?yàn)锳中的高四位值為11,大于9,低四位值為14,也大于9,所以內(nèi)部調(diào)整自動進(jìn)行加66H的操作: 10111110

調(diào)整+)01100110 100100100BCD:124即(A)=00100100=24BCD,CY=1;AC=1。Back4/1/2023§3.3.3邏輯操作指令

邏輯操作指令包括:與、或、異或、清除、求反、移位等操作。該指令組全部操作數(shù)都是8位25條指令。1.簡單操作指令(2條)2.移位指令(4條)3.邏輯“與”指令(6條)4.邏輯“或”指令(6條)5.邏輯“異或”指令(6條)Back4/1/20231.簡單操作指令(2條)Back匯編指令格式機(jī)器碼格式操作注釋CLRA;111001000→A累加器A清0指令,只影響標(biāo)志位P。CPLA;11110100(A)

→A累加器A取反指令,不影響標(biāo)志位4/1/20233.邏輯“與”指令(6條)匯編指令格式 機(jī)器碼格式 操作ANLA,Rn; 01011rrr (A)∧(Rn)→A

ANLA,direct; 01010101 (A)∧(direct)→A

directANLA,@Ri; 0101011i (A)∧((Ri))→A

ANLA,#data; 01010100 (A)∧data→A data

ANLdirect,A; 01010010 (direct)∧(A)→direct

directANLdirect,#data; 01010011 (direct)∧#data→direct direct data這組指令中前四條指令是將累加器A的內(nèi)容和操作數(shù)所指出的內(nèi)容按位進(jìn)行邏輯“與”,結(jié)果存放在A中。后兩條指令是將直接地址單元中的內(nèi)容和操作數(shù)所指出的單元的內(nèi)容按位進(jìn)行邏輯“與”,結(jié)果存入直接地址單元中。若直接地址正好是I/O端口,則為“讀——改——寫”操作。Back4/1/20234.邏輯“或”指令(6條)匯編指令格式 機(jī)器碼格式 操作ORLA,Rn; 01001rrr (A)∨(Rn)→A

ORLA,direct; 01000101 (A)∨(direct)→A

directOR

溫馨提示

  • 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

提交評論