3 80c51單片機(jī)的指令系統(tǒng)(2)_第1頁(yè)
3 80c51單片機(jī)的指令系統(tǒng)(2)_第2頁(yè)
3 80c51單片機(jī)的指令系統(tǒng)(2)_第3頁(yè)
3 80c51單片機(jī)的指令系統(tǒng)(2)_第4頁(yè)
3 80c51單片機(jī)的指令系統(tǒng)(2)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三章80C51微控制器指令系統(tǒng)(2),3.3.2算術(shù)運(yùn)算指令,2 .減法命令減法類命令共分為8個(gè),2個(gè)組。包括4個(gè)帶借用的減法指令和4個(gè)減法1指令。(1)借用減命令助記符為SUBB,4茄子命令為命令機(jī)械代碼格式操作SUBB A,Rn1001 1rrr (A)-(Rn)-CY A SUBB A,direct 1001 0101(A)ri 1001如果需要,可以在發(fā)出SUBB命令之前使用“CLR C”命令將CY位清空為零。進(jìn)位減法主要用于多位元組減法計(jì)算,在低位元組高位元組產(chǎn)生借用時(shí),CY必須設(shè)定1,在牙齒情況下,必須對(duì)高位元組運(yùn)算使用借方減法指令。無(wú)、3.3.2算術(shù)運(yùn)算類別指令,例如,計(jì)算兩個(gè)

2、16位數(shù)的差值。減少量為9876H,低字節(jié)為32H,高字節(jié)為33H。損耗為6789H,低字節(jié)存儲(chǔ)在30H單元中,高字節(jié)存儲(chǔ)在31H單元中。將結(jié)果的低字節(jié)和高字節(jié)分別放在單元34H和35H中。3.3.2算術(shù)運(yùn)算類命令,第一步:減去低字節(jié),借用最高位,CY位置1。第二步:減去高字節(jié)。由于減法的高字節(jié)低的字節(jié)借用了1,因此高字節(jié)應(yīng)該減少1。借用時(shí)cy放1,因此等于減去CY。9876h,1001 1000 0111 0110 0111 1000 1001,6789h,0011 0000 1110 1101,3 0 E D,因此,借用減法都用于高字節(jié)減法,低字節(jié)減法時(shí)如果沒(méi)有借用減法,則必須先將CY比特

3、清除為零,3.3.2算術(shù)運(yùn)算類命令,MOV A,32H將減少的低字節(jié)發(fā)送到累加器,clr c。低字節(jié)不借用就減去;CY蛙泳0、SUBB A、30H、MOV 34H、A;將低字節(jié)的計(jì)算結(jié)果發(fā)送到34H,MOV A,33H。將相減的高字節(jié)發(fā)送到累加器,SUBB A,31H。減去借用,MOV 35H,a;將高字節(jié)的計(jì)算結(jié)果發(fā)送到34H。具體步驟:3.3.2算術(shù)運(yùn)算類命令,借用減命令影響PSW的位:CY位:最高位(第7位)在借用時(shí)為1,借用時(shí)為0牙齒。AC位:第三位借用位置1,沒(méi)有借用時(shí)為0。P位:A的數(shù)字可能會(huì)更改,P也可能會(huì)更改。AC=1,3.3.2算術(shù)運(yùn)算類命令,OV位:-嗯?-嗯?對(duì)于微控制器

4、算術(shù)運(yùn)算類命令,加法和減法可以執(zhí)行有符號(hào)操作,其他命令只能執(zhí)行無(wú)符號(hào)操作數(shù)。例如(-68H)-76H=?-68,76,3.3.2算術(shù)運(yùn)算類命令,概括地說(shuō),在有符號(hào)加法和減法運(yùn)算中,如果第7位(符號(hào)位)更改,結(jié)果將出錯(cuò),因此使用OV=1表示錯(cuò)誤。加法和減法時(shí),不能分辨是無(wú)符號(hào)數(shù)字還是有符號(hào)數(shù)字。所以在做無(wú)符號(hào)數(shù)的加減運(yùn)算中,OV位有時(shí)也發(fā)生變化,此時(shí)我們可以忽略O(shè)V。9878H-5686H,3.3.2算術(shù)運(yùn)算類別指令,(2)減去1指令助憶鍵DEC以使用指令機(jī)器代碼格式DEC rn 0001 RRR(rn)-1 rn DEC direct 0001 0101(direct),例如,假設(shè)A=00H,

5、DEC A,A=FFH,PSW你們都保持不變。SUBB A、#01H、A=FFH、CY=1、例如A=;3.3.2算術(shù)運(yùn)算類命令,3 .乘法命令,乘法命令的助記符為MUL,只有一個(gè)指令。命令機(jī)器代碼格式操作MULAB 1010 0100 (A) (B)、A07和B815。牙齒命令的功能是將累加器A和寄存器B的兩個(gè)8位無(wú)符號(hào)計(jì)數(shù)相乘,將16位乘積的低8位字節(jié)放入A,將高8位字節(jié)放入B。乘法命令不影響CY位。CY總是影響OV位:0,3.3.2算術(shù)運(yùn)算類命令,乘法命令。OV=1,表示乘積大于8位。a不能再放了。必須將高字節(jié)放在b中。OV=0,表示乘積小于或等于8位數(shù)。a完全可以放下。此時(shí),B等于0。示

6、例:(A)=4EH,(B)=5DH是mulab,b a,3.3.2算術(shù)運(yùn)算類命令,4。除法命令、除法命令的助記符為DIV,只有1。命令機(jī)器代碼格式操作DIV AB 1000 0100 (A)(B)、商A、剩馀B。牙齒命令的功能是將A除以B。a和B的內(nèi)容都是8位無(wú)符號(hào)整數(shù)。得到的份額在A,剩下的在B。分割命令不影響CY位。CY始終表示當(dāng),0,除數(shù)b為0時(shí),a的結(jié)果不確定,并且OV設(shè)置為1,無(wú)法執(zhí)行除法。3.3.3邏輯運(yùn)算符類命令,包括、and、or、xor、清除、反轉(zhuǎn)、移位等操作。這些指令的操作數(shù)都是8位,共25個(gè)指令。參與運(yùn)算的操作數(shù)可分為兩類茄子:?jiǎn)尾僮鲾?shù)邏輯運(yùn)算和雙操作數(shù)邏輯運(yùn)算。1 .命

7、令的操作對(duì)象(如“邏輯運(yùn)算符單個(gè)操作對(duì)象”命令)共有7個(gè):清理0、反轉(zhuǎn)、循環(huán)左移、舍入循環(huán)左移、循環(huán)右移、舍入循環(huán)右移、舍入循環(huán)右移和半字節(jié)更換命令。累加器A、3.3.3邏輯運(yùn)算符類指令、(1)累加器清理0指令、指令機(jī)器代碼格式操作CLRA110 0100a、清除累加器A。牙齒操作不影響標(biāo)志位。(2)累加器執(zhí)行逆指令,指令機(jī)器代碼格式操作cpla 110100(A)A,累加器A的內(nèi)容返回比特,并放入A。牙齒操作不影響標(biāo)志位。3.3.3邏輯運(yùn)算符類命令,(3)循環(huán)右移命令,命令機(jī)器代碼格式操作RR A 0000 0011,將累加器的內(nèi)容向右移動(dòng)一位到位循環(huán),并將A 0的內(nèi)容移動(dòng)到a7。牙齒操作不

8、影響標(biāo)志位。,(4)循環(huán)左移命令,命令機(jī)器代碼格式操作RL A 0010 0011,將累加器的內(nèi)容向左移動(dòng)一位作為位循環(huán),a7的內(nèi)容移動(dòng)到A 0,牙齒操作不影響標(biāo)記位。、3.3.3邏輯運(yùn)算符類命令,(5)舍入循環(huán)右移命令,命令機(jī)器代碼格式操作RRC A 0001 0011,累加器A的內(nèi)容和舍入位一起向右移一步,A 0移至舍入位CY,CY的內(nèi)容移至a7。(6)使用舍入循環(huán)左移命令、操作命令機(jī)器代碼格式RLC A 0011 0011、將累加器A的內(nèi)容和舍入位左移一位,a7將舍入位CY移至A 0,CY的內(nèi)容移至A0。通常使用RLC命令執(zhí)行累加器A乘以2操作。cy,cy,3.3.3邏輯運(yùn)算符類命令,(

9、7)累加器半字節(jié)更換命令,命令機(jī)器代碼格式操作SWAP A 1100 0100,牙齒命令的功能是累加器A的低半字節(jié)(a3a0雙操作數(shù)邏輯運(yùn)算符命令、雙操作數(shù)邏輯運(yùn)算符命令包括ANL(邏輯與)、ORL(邏輯,第一個(gè)操作數(shù):A direct第二個(gè)操作數(shù):arn direct # datari,)對(duì)于并行端口操作,為“讀取和復(fù)蓋”。操作不影響標(biāo)志位。,雙操作數(shù)邏輯運(yùn)算符命令特征:(1)邏輯“and”操作命令組命令的助記符為ANL,共6個(gè)命令:ANL A,Rn;(a) (a) (rn) anl a,direct(a) (a) (direct) anl a,ri;(a)(a)(ri)anl a,# da

10、ta(a) (a) # data anl direct,a;(direct) (direct) (a) anldirect,# data(direct)(direct)#使用data邏輯and運(yùn)算指令清除。3.3.3邏輯運(yùn)算符類命令、(2)邏輯或“計(jì)算命令組的助記符為ORL,共6個(gè)命令:ORL A,RN;(a) (a) (rn) ORL a,direct;(a) (a) (direct) ORL a,ri;(a)(a)(ri)ORL a,# data(a) (a) # data ORL direct,a;(direct) (direct) (a) orldirect,# data(direct

11、)(direct)#使用data邏輯or運(yùn)算指令作為位置。3.3.3邏輯運(yùn)算符類命令,(3)邏輯“xor”操作命令組命令的助記符為XRL,共6個(gè)命令:xrl a,rn;(a) (a) (rn) xrl a,直接;(a) (a)(直接)xrl a,ri;(a)(a)(ri)xrl a,# data(a) (a) #數(shù)據(jù)xrldirect,a;(direct) (direct) (a) xrldirect,# data (direct) (direct) # data,3.3.3邏輯運(yùn)算符類命令,3.控制傳輸命令共可分為17個(gè)。無(wú)條件傳輸調(diào)用和返回條件傳輸循環(huán)傳輸null操作命令、3.3.4控制傳

12、輸類命令、1無(wú)條件傳輸命令:等命令共4個(gè):SJMP rel ajmp addr 11 ljmp addr 16 jmp a dptr等命令的功能是節(jié)目無(wú)條件傳輸、3.3.4控制傳輸類命令、(1命令可以在命令前旋轉(zhuǎn)128 B,也可以在命令后旋轉(zhuǎn)127 B。例如,設(shè)置(PC)=0101H,轉(zhuǎn)入地址標(biāo)記為RELADR的單元0123H,因此,rel=0123H(0101H 2)=20H,3.3.4控制傳輸類命令,執(zhí)行命令SJMP (2)因此,程序的目標(biāo)地址必須在2 KB的范圍內(nèi),包括AJMP命令后第一個(gè)命令的第一個(gè)字節(jié)。3.3.4控制傳輸類命令,例如設(shè)置(PC)=0456H,標(biāo)簽JMPADR牙齒指向的

13、單元0123H。執(zhí)行命令是AJMP JMPADR執(zhí)行結(jié)果(PC)=0123H,因此程序?qū)⒁?123H為單位切換并運(yùn)行。(3)長(zhǎng)傳輸(LJMP)命令:提供由兩個(gè)字節(jié)和三個(gè)字節(jié)組成的16位地址。因此,節(jié)目轉(zhuǎn)換的目標(biāo)地址可以包含節(jié)目存儲(chǔ)的全部64 KB空間。3.3.4控制傳輸類命令,例如設(shè)置(PC)=0123H,標(biāo)簽JMPADR牙齒指向的單元3456H。運(yùn)行命令是LJMP JMPADR運(yùn)行結(jié)果(PC)=3456H,因此程序以3456H為單位運(yùn)行。(4)間接傳輸(JMP)命令:目標(biāo)地址是累加器A的8位無(wú)符號(hào)計(jì)數(shù)加上數(shù)據(jù)指針DPTR的內(nèi)容。加法運(yùn)算不會(huì)影響累加器A和數(shù)據(jù)指針DPTR的原始內(nèi)容。如果累加結(jié)

14、果大于64 KB,則從節(jié)目?jī)?nèi)存的0地址向下繼續(xù)。3.3.4控制傳輸類命令,設(shè)置(A)=5,(DPTR)=4567H。執(zhí)行命令是JMP A DPTR執(zhí)行結(jié)果(PC)=(A) (DPTR)=4567H 5H=456CH,因此程序以456CH為單位運(yùn)行。2.調(diào)用和返回命令等指令共有四種:ACALL addr11LCALL addr16RETRETI、3.3.4控制傳輸類命令、(1)絕對(duì)調(diào)用(ACALL)命令:無(wú)條件調(diào)用以addr11開頭的子程序。運(yùn)行時(shí),在PC上添加2以獲得以下命令的地址,將牙齒16位地址推送到堆棧(PCL,PCH),然后在堆棧指針上添加2。然后,命令提供的11位目標(biāo)地址發(fā)送到PC10PC0,PC15PC11的值保持不變,程序切換到子程序的第一個(gè)地址運(yùn)行。目標(biāo)地址由指令1字節(jié)高3位和指令2字節(jié)組成。因此,調(diào)用的子例程的第一個(gè)地址必須與ACAL

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論