第03章 指令系統(tǒng)-02_第1頁
第03章 指令系統(tǒng)-02_第2頁
第03章 指令系統(tǒng)-02_第3頁
第03章 指令系統(tǒng)-02_第4頁
第03章 指令系統(tǒng)-02_第5頁
已閱讀5頁,還剩92頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2021-10-1612021-10-162 2021-10-163 2021-10-164 2021-10-165 2021-10-166 2021-10-167 2021-10-168 2021-10-169 在寄存器的名稱前面加前綴標(biāo)志“” 訪問內(nèi)部RAM或外部數(shù)據(jù)存儲(chǔ)器的低256個(gè)字節(jié)時(shí),只能采用R0或R1作為間址寄存器。例如: MOV R1,#40H MOV A,R1; 把內(nèi)部RAM中地址為40H單元內(nèi)容送A。2021-10-1610 尋址范圍:尋址范圍:(1)訪問內(nèi)部)訪問內(nèi)部RAM區(qū),區(qū),51系列系列128個(gè)字節(jié),個(gè)字節(jié),52系列系列256個(gè)字節(jié),個(gè)字節(jié),用用R0或或R1間接尋址

2、,其通用形式為:間接尋址,其通用形式為: MOV A ,Ri(2)訪問片外數(shù)據(jù)存儲(chǔ)器的低)訪問片外數(shù)據(jù)存儲(chǔ)器的低256字節(jié),用字節(jié),用R0或或R1間接尋址,間接尋址,其通用形式為:其通用形式為: MOVX A ,Ri(3)對(duì)片外數(shù)據(jù)存儲(chǔ)器的)對(duì)片外數(shù)據(jù)存儲(chǔ)器的64K字節(jié)的間接尋址,用字節(jié)的間接尋址,用DPTR作間作間址寄存器。例如:址寄存器。例如: MOVX A,DPTR(4)堆棧區(qū))堆棧區(qū) 堆棧操作指令堆棧操作指令PUSH(壓棧)和(壓棧)和POP(出棧)使用堆棧指針(出棧)使用堆棧指針(SP)作間址寄存器)作間址寄存器2021-10-1611 2021-10-1612 2021-10-16

3、13 在相對(duì)尋址的轉(zhuǎn)移指令中,給出了地址偏移量,在相對(duì)尋址的轉(zhuǎn)移指令中,給出了地址偏移量,以以“rel”表示,即把表示,即把PC的當(dāng)前值加上偏移量就構(gòu)成的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址:了程序轉(zhuǎn)移的目的地址: 目的地址目的地址 = 轉(zhuǎn)移指令所在的地址轉(zhuǎn)移指令所在的地址 + 轉(zhuǎn)移指令轉(zhuǎn)移指令的字節(jié)數(shù)的字節(jié)數(shù) + rel 偏移量偏移量rel是一帶符號(hào)的是一帶符號(hào)的8位二進(jìn)制數(shù)補(bǔ)碼數(shù)。位二進(jìn)制數(shù)補(bǔ)碼數(shù)。范圍是:范圍是:128 +1272021-10-1614 51系列單片機(jī)有位處理功能,可以對(duì)數(shù)據(jù)位進(jìn)行操作,例如:MOV C,40H ;把位40H的值送到位累加器C。 尋址范圍包括: (1

4、)內(nèi)部RAM中的位尋址區(qū)。 (2)特殊功能寄存器中的可尋址位。2021-10-1615 特殊功能寄存器可尋址位在指令中有如下特殊功能寄存器可尋址位在指令中有如下4種的表示方法:種的表示方法: a. 直接使用位地址直接使用位地址 SETB 0D5H b. 位名稱的表示方法位名稱的表示方法 SETB F0 c. 特殊功能寄存器符號(hào)加位數(shù)的表示方法特殊功能寄存器符號(hào)加位數(shù)的表示方法 SETB PSW.5 d. 單元地址加位數(shù)的表示方法單元地址加位數(shù)的表示方法 SETB (0D0H).52021-10-1616 2021-10-1617 2021-10-16182021-10-1619 2021-10

5、-1620 2021-10-1621 2021-10-1622 2021-10-1623 2021-10-1624 2021-10-1625 direct指的是內(nèi)部RAM或SFR的地址2021-10-1626 2021-10-1627 2021-10-1628 習(xí)題:習(xí)題:用兩種尋址方式實(shí)現(xiàn),將片內(nèi)用兩種尋址方式實(shí)現(xiàn),將片內(nèi)RAMRAM 60H 60H單元的數(shù)據(jù)傳送給累加器單元的數(shù)據(jù)傳送給累加器A A。解:解: MOV A,#60HMOV A,#60H()MOV RMOV R0 0,#60H #60H () MOV AMOV A,RR0 0;A= 30HA= 30H;(4FH)= 30H(4F

6、H)= 30H;R R0 0= 20H= 20H;(20H)= 30H(20H)= 30H;(21H)= 30H(21H)= 30HMOV RMOV R0 0,60H 60H MOV AMOV A,RR0 0 () 解:解: MOV A,60HMOV A,60H () 結(jié)果結(jié)果A=32HA=32H2021-10-1629 只有指令表中的指令才有對(duì)應(yīng)指令代碼,計(jì)算機(jī)才能只有指令表中的指令才有對(duì)應(yīng)指令代碼,計(jì)算機(jī)才能執(zhí)行。編程時(shí),不能隨意創(chuàng)造發(fā)明指令。執(zhí)行。編程時(shí),不能隨意創(chuàng)造發(fā)明指令。1. 一條指令中不能同時(shí)出現(xiàn)兩個(gè)工作寄存器:一條指令中不能同時(shí)出現(xiàn)兩個(gè)工作寄存器:非法非法指令:指令:MOV R

7、MOV R1 1,R R2 2MOV RMOV R2 2,RR0 02. 間址寄存器只能使用間址寄存器只能使用 R R0 0、R R1 1。 非法非法指令:指令: MOV AMOV A,RR2 23. SFRSFR區(qū)只能直接尋址,不能用寄存器間接尋址。區(qū)只能直接尋址,不能用寄存器間接尋址。非法非法指令:指令: MOV RMOV R0 0,#80H#80H MOV A MOV A,RR0 04. 指令表指令表(P309): B B:指令字節(jié)數(shù),:指令字節(jié)數(shù),M M:機(jī)器周期數(shù):機(jī)器周期數(shù)2021-10-1630 2021-10-1631 2021-10-1632 【例1】: (A)=30H,執(zhí)行

8、地址1000H處的指令1000H: MOVC A,A+PC 本指令占用一個(gè)字節(jié),執(zhí)行結(jié)果將程序存儲(chǔ)器中1031H的內(nèi)容送入A。 缺點(diǎn):表格只能存放在該條查表指令后面的256個(gè)單元之內(nèi),表格的大小受到限制,且表格只能被一段程序所利用。【例2】:(DPTR)=8100H (A)=40H 執(zhí)行指令MOVC A,A+DPTR 本指令的執(zhí)行結(jié)果只和指針DPTR及累加器A的內(nèi)容有關(guān),與該指令存放的地址及常數(shù)表格存放的地址無關(guān),因此表格的大小和位置可以在64K程序存儲(chǔ)器中任意安排,一個(gè)表格可以為各個(gè)程序塊公用。2021-10-1633 2021-10-1634 2021-10-1635 MOV DPTRMO

9、V DPTR,#2000H#2000HMOVX AMOVX A,DPTRDPTRMOV DPTRMOV DPTR,#2100H#2100HMOVX DPTRMOVX DPTR,A A習(xí)題:習(xí)題:將片外將片外RAM 0000HRAM 0000H單元的數(shù)據(jù)傳送到片內(nèi)單元的數(shù)據(jù)傳送到片內(nèi)RAMRAM的的60H60H單元單元。; DPTR= 2000HDPTR= 2000H; A= XA= X; DPTR= 2100HDPTR= 2100H; (2100H)= X(2100H)= X片外數(shù)據(jù)存儲(chǔ)器不能直接尋址。片外數(shù)據(jù)存儲(chǔ)器不能直接尋址。下列為下列為非法非法指令:指令: MOVX AMOVX A,20

10、00H 2000H MOVX 2100H MOVX 2100H,2000H2000HDPTRX2021-10-1636 2021-10-1637 例例1:當(dāng)(當(dāng)(SP)=60H,(A)=30H,(B)=70H時(shí),執(zhí)時(shí),執(zhí)行:行: PUSH ACC ; (SP)+1=61HSP,(A)61H PUSH B ; (SP)+1=62HSP,(B)62H 結(jié)果:結(jié)果:(61H)=30H, (62H)=70H, (SP)=62H例例2 :當(dāng)當(dāng) (SP) =62H,(62H) =70H,(61H) =30H, 執(zhí)執(zhí)行:行: POP DPH ;(SP)DPH,(SP)-1SP POP DPL ;(SP)DP

11、L,(SP)-1SP 結(jié)果:結(jié)果:(DPTR)=7030H,(SP)=60H2021-10-1638 2021-10-1639 2021-10-1640 2021-10-1641 2021-10-1642 與數(shù)據(jù)傳送指令不同,多數(shù)算術(shù)運(yùn)算指令會(huì)與數(shù)據(jù)傳送指令不同,多數(shù)算術(shù)運(yùn)算指令會(huì)影響影響標(biāo)志位標(biāo)志位的狀態(tài),即的狀態(tài),即CPUCPU執(zhí)行算術(shù)運(yùn)算指令后,執(zhí)行算術(shù)運(yùn)算指令后,根據(jù)數(shù)據(jù)操作情況自動(dòng)設(shè)置標(biāo)志位的狀態(tài)。根據(jù)數(shù)據(jù)操作情況自動(dòng)設(shè)置標(biāo)志位的狀態(tài)。MCS-51 MCS-51 的程序狀態(tài)字寄存器的程序狀態(tài)字寄存器 PSWPSW 為標(biāo)志寄存器。為標(biāo)志寄存器。 其格式如下:字節(jié)地址為其格式如下:字節(jié)地

12、址為D0H位位 序序B7B6B5B4B3B2B1B0位符號(hào)位符號(hào) CYACF0RS1RS0OVF1P2021-10-1643 2021-10-1644 1)F0、F1 :用戶自定義標(biāo)志位。:用戶自定義標(biāo)志位。2)RS1、RS0 : 工作寄存器區(qū)選擇位。工作寄存器區(qū)選擇位。 復(fù)位時(shí),復(fù)位時(shí),PSW=00H例:例:復(fù)位后,設(shè)置使用工作寄存器復(fù)位后,設(shè)置使用工作寄存器3 3區(qū),區(qū), 其余標(biāo)志位不變。其余標(biāo)志位不變。解:解: MOV PSWMOV PSW,# # 18H 18H位位 序序B7B6B5B4B3B2B1B0位符號(hào)位符號(hào) CYACF0RS1RS0OVF1P2021-10-1645 2021-

13、10-1646 使用加法指令時(shí),要注意累加器A中的運(yùn)算結(jié)果對(duì)各個(gè)標(biāo)志位的影響:(1)如果位7有進(jìn)位,則置“1”進(jìn)位標(biāo)志Cy,否則清“0”Cy(2)如果位3有進(jìn)位,置“1”輔助進(jìn)位標(biāo)志Ac,否則清“0”Ac(Ac為PSW寄存器中的一位)(3)如果位6有進(jìn)位,而位7沒有進(jìn)位,或者位7有進(jìn)位,而位6沒有,則溢出標(biāo)志位OV置“1”,否則清“0”O(jiān)V。2021-10-1647 【例1】 (A)=53H,(R0)=FCH,執(zhí)行指令A(yù)DD A,R0結(jié)果:(A)= 4FH,Cy=1,Ac=0,OV=0, P=1(A中結(jié)果1的位數(shù)為奇數(shù))注意:上面的運(yùn)算中,由于位6 6和位7 7同時(shí)有進(jìn)位,所以標(biāo)志位OV=0O

14、V=0。2021-10-1648 【例2】 (A)=85H,(R0)=20H,(20H)=AFH,執(zhí)行指令:ADD A,R0結(jié)果:(A)= 34H,Cy=1,Ac=1,OV=1,P=1注意:由于位7 7有進(jìn)位,而位6 6無進(jìn)位,所以標(biāo) 志位OV=1 OV=1 2021-10-1649 【例3.2】 片內(nèi)RAM單元40H、41H中分別存放被加數(shù)、加數(shù),相加結(jié)果存放到41H、40H單元。程序如下: MOVR0,#40H;設(shè)置地址指針 MOVA,R0;取被加數(shù) INCR0 ADDA,R0;兩數(shù)相加 DECR0 MOVR0,A;存放和的低8位 INCR0 JCCARRY MOVR0,#0;相加結(jié)果無進(jìn)

15、位 RETCARRY: MOV R0,#1;相加結(jié)果有進(jìn)位 RET2021-10-1650 2021-10-1651 【例1】(A A)=85H, (20H)=FFH, Cy=1=85H, (20H)=FFH, Cy=1執(zhí)行指令: ADDC A,20HADDC A,20H結(jié)果:(A)= 85H,Cy=1,Ac=1,OV=0,P=1注意:上面的運(yùn)算中,由于位6 6和位7 7同時(shí)有進(jìn)位,所以標(biāo)志位OV=0OV=0。2021-10-1652 2021-10-1653 適應(yīng)條件:(1 1)該指令執(zhí)行前,一般有一條加法指令。(2 2)加法指令中的兩個(gè)加數(shù),應(yīng)該是用壓縮BCDBCD碼表示的十進(jìn)制數(shù),和存放

16、在A A中。(3 3)執(zhí)行完DADA指令后,A A中存放的數(shù)是兩個(gè)加數(shù)的十進(jìn)制和,也使用壓縮BCDBCD碼表示。 若(A)=56h (R5)=67h ADD A,R5 DA A 結(jié)果(A)=23;Cy=12021-10-1654 十進(jìn)制加法指令十進(jìn)制加法指令:僅對(duì)僅對(duì)加法加法結(jié)果進(jìn)行調(diào)整結(jié)果進(jìn)行調(diào)整ADD AADD A,源操作數(shù),源操作數(shù) DA ADA A帶進(jìn)位十進(jìn)制加帶進(jìn)位十進(jìn)制加1 1法法指令:指令: ADDC AADDC A,源操作數(shù),源操作數(shù) DA ADA A作業(yè):作業(yè):BCDBCD碼加法編程。碼加法編程。設(shè)設(shè)X X、Y Y為為4 4位壓縮位壓縮BCDBCD碼,求碼,求 Z=X+YZ=

17、X+Y。BCDBCD調(diào)整指令:調(diào)整指令:BCDBCD:Binary-Coded-DecimalBinary-Coded-Decimal ( (二進(jìn)制編碼的十進(jìn)制)二進(jìn)制編碼的十進(jìn)制) DA ADA A ;把;把A A中按二進(jìn)制相加后的結(jié)果中按二進(jìn)制相加后的結(jié)果 調(diào)整成按調(diào)整成按BCDBCD數(shù)相加的結(jié)果數(shù)相加的結(jié)果調(diào)整原因:調(diào)整原因:1 1、相加結(jié)果大于、相加結(jié)果大于9 9,進(jìn)入無效編碼區(qū);,進(jìn)入無效編碼區(qū); 2 2、相加結(jié)果有進(jìn)位,跳過無效編碼區(qū)。、相加結(jié)果有進(jìn)位,跳過無效編碼區(qū)。調(diào)整方法:調(diào)整方法:進(jìn)行加進(jìn)行加“6 6”修正。修正。2021-10-1655 【例3.3】 試編寫4位BCD碼加

18、法程序。設(shè)被加數(shù)存放在片內(nèi)RAM單元40H、41H中,加數(shù)存放在42H、43H單元中,相加后結(jié)果存放到分別存放被加數(shù)、加數(shù),相加結(jié)果存放到40H、41H單元中(假定數(shù)據(jù)是高位在前,低位在后,且假定相加的結(jié)果仍為4位BCD碼)。程序如下: MOVR0,#41H;設(shè)置地址指針R0 MOVR1,#43H;設(shè)置地址指針R1 MOVA,R0 ADDA,R1;十位、個(gè)位數(shù)相加 DAA;十進(jìn)制調(diào)整 MOVR0,A DECR0;修改地址指針 DECR1 MOVA,R0 ADDCA,R1;千位、百位數(shù)相加 DAA;十進(jìn)制調(diào)整 MOVR0,A RET2021-10-1656 2021-10-1657 【例1】(A

19、 A)= =C9C9H,H,(R2R2)= =5454H, Cy=1H, Cy=1執(zhí)行指令: SUBBSUBB A, A,R2R2結(jié)果:(A)= 74H,Cy=0,Ac=0,OV=1,P=0注意:上面的運(yùn)算中,由于位6 6向位7 7借位,位7沒有借位,所以標(biāo)志位OV=1OV=1。2021-10-1658 2021-10-1659 2021-10-1660 注意:注意:沒有指令沒有指令 DEC DPTR DEC DPTR 可用指令可用指令 DEC DPLDEC DPL 代替代替2021-10-1661 ABAB乘數(shù)乘數(shù)被乘數(shù)被乘數(shù)積積2021-10-1662 ABAB除數(shù)除數(shù)被除數(shù)被除數(shù)整數(shù)部分

20、整數(shù)部分余數(shù)部分余數(shù)部分2021-10-1663 2021-10-1664 2021-10-1665 2021-10-1666 2021-10-1667 2021-10-1668 A7A0RL AA7A0RR AA7A0RLC AA7A0RRC ACyCy 2021-10-1669 2021-10-1670 2021-10-1671 2021-10-1672 2021-10-1673 2021-10-1674 2021-10-1675 2021-10-1676 2021-10-1677 【例3.4】 將片外RAM的1100H11FFH的256個(gè)單元清0。程序如下: MOV R7,#00H ;設(shè)置計(jì)數(shù)初值 CLR A MOV DPTR,#1100H;設(shè)置片外RAM單元首址LOOP:MOVX DPTR,A INC DPTR DJNZ R7,LOOP RET2021-10-1678 2021-10-1679 2021-10-1680 2021-10-1681 2021-10-1682 2021-10-1683 2021-10-1684 2021-10-1685 2021-10-1686 2021-10-1687 2021-10-1688 2021-10-168

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論