版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第四講--2
MCS-51單片機(jī)指令系統(tǒng)及其尋址方式(教材3.1~3.2節(jié))1微機(jī)原理及應(yīng)用
PrincipleandApplicationsofMicro-Computers教學(xué)目的:了解MCS-51單片機(jī)的指令集和尋址方程要求: 掌握MCS-51單片機(jī)指令系統(tǒng)的尋址方式,指令集難點(diǎn): 間接尋址,基址+變址寄存器尋址方式MCS-51單片機(jī)指令的一般格式MCS-51單片機(jī)的尋址方式寄存器尋址直接地址尋址立即數(shù)尋址寄存器間接尋址基址寄存器+變址寄存器間接尋址MCS-51單片機(jī)的指令集內(nèi)容2023/1/113為什么要學(xué)匯編語言?具有以下優(yōu)點(diǎn)(所以,在某些場合仍非常必要)時(shí)間短占用代碼空間少位操作指令豐富具有以下缺點(diǎn)難掌握適合小型系統(tǒng)基本學(xué)習(xí)方法掌握指令集,基本流程控制,單片機(jī)的資源2023/1/114指令系統(tǒng)概述指令——計(jì)算機(jī)能夠識別和執(zhí)行的命令。指令系統(tǒng)——指令的集合或全體,因機(jī)器而異。指令的三種表示形式二進(jìn)制形式——直接為CPU執(zhí)行16進(jìn)制形式——閱讀和書寫匯編形式——編寫程序。二進(jìn)制形式16進(jìn)制形式匯編形式011101000000101000100100000001001000000011111110740AH2404H80FEHMOVA,#0AHADDA,#04HSJMP$2023/1/115MCS-51單片機(jī)指令的一般格式一般格式為
[符號地址:]指令助記符[操作數(shù)1[,操作數(shù)2]][;注釋句]
如:ABC:MOV
A,B
;將寄存器B的內(nèi)容傳送到累加器A注意:
(1)“符號地址”的命名規(guī)則(代表指令所在地址,1-8個(gè)字母/數(shù)字,“:”結(jié)尾);(2)“指令助記符”和“操作數(shù)1”(以及“操作數(shù)2”)見MCS-51單片機(jī)的指令集;(3)“注釋句”必須以“;”開始,其后的整行都屬于注釋內(nèi)容;(4)其它某些特殊規(guī)則由匯編語言的編譯器所確定MCS-51單片機(jī)指令的一般格式MCS-51單片機(jī)的尋址方式寄存器尋址直接地址尋址立即數(shù)尋址寄存器間接尋址基址寄存器+變址寄存器間接尋址MCS-51單片機(jī)的指令集內(nèi)容2023/1/117為什么大多數(shù)匯編語言都需要掌握
“尋址方式”?絕大多數(shù)計(jì)算機(jī)系統(tǒng)的存儲器系統(tǒng)都是相似的(見第3講的內(nèi)容),可以分為以下幾部分CPU內(nèi)部的寄存器CPU內(nèi)部的數(shù)據(jù)存儲器(RAM)片外的(CPU外部)數(shù)據(jù)存儲器程序存儲器等不同的存儲器空間需要不同的訪問方式如,第3講曾提到SFR和高128字節(jié)RAM的訪問方法不同2023/1/118MCS-51單片機(jī)指令的尋址方式MCS-51單片機(jī)指令一共有5種尋址方式,用于訪問不同的存儲器空間(見p.34表3-1)寄存器尋址直接地址尋址立即數(shù)尋址寄存器間接尋址(變址尋址)基址寄存器+變址寄存器間接尋址說明:某些參考書把“位”訪問方法單獨(dú)列出,稱為“位尋址”.2023/1/119寄存器尋址方式
——指令選定的寄存器內(nèi)容就是實(shí)際操作數(shù)可訪問的存儲器空間片內(nèi)的4組8個(gè)通用寄存器:R0~R7由RS1、RS2兩位的值選定工作寄存器區(qū)示例(1)INCR1;(R1)=(R1)+1,或R1的內(nèi)容自加1(2)MOVR0,A;(R0)=(A),或A的內(nèi)容傳送到R0(3)MOVA,R0;(A)=(R0),或R0的內(nèi)容傳送到A特點(diǎn)一般是單操作數(shù)指令(如(1)),否則另一個(gè)操作數(shù)必定為累加器A(如(2)和(3))所有指令都是單字節(jié)的(指令碼占用1個(gè)字節(jié)的存儲空間)00H20H2FH7FH1FH30H80HFFH52的RAM區(qū)ORSFR普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)2023/1/1110直接地址尋址方式
——直接給出操作數(shù)所在存儲單元的地址可訪問的存儲器空間片內(nèi)低128字節(jié)的RAM片內(nèi)所有的SFR(SFR的名稱是對應(yīng)直接地址的別名)片內(nèi)所有可位尋址的位存儲空間(“位尋址”)示例(1)MOVA,B;(A)=(B),或B的內(nèi)容傳送到A(2)MOVA,0F0H;(A)=(0F0H),或0F0H的內(nèi)容傳送到A(3)MOV68H,69H;(68H)=(69H)(4)SETB68H;設(shè)置位地址單元68H的內(nèi)容為“1”特點(diǎn)一般都是雙字節(jié)(累加器A作為操作數(shù),或位操作)或三字節(jié)的指令00H20H2FH7FH1FH30H80HFFH52的RAM區(qū)ORSFR普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)2023/1/1111立即數(shù)尋址方式
——指令直接給出一個(gè)操作數(shù),加“#”可訪問的存儲器空間片內(nèi)的4組8個(gè)通用寄存器片內(nèi)所有數(shù)據(jù)存儲器(包括低、高128字節(jié))片內(nèi)所有的SFR示例(1)MOVR6,#10H;(R6)=10H(2)MOV68H,#34H;(68H)=34H(3)MOVB,#68H;(B)=68H(4)MOVDPTR,#6688H;(DPTR)=6688H,即(DPH)=66H和(DPL)=88H特點(diǎn)稱為“賦值語句”其中一個(gè)操作數(shù)必定是一個(gè)立即數(shù)00H20H2FH7FH1FH30H80HFFH52的RAM區(qū)ORSFR普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)2023/1/1112寄存器間接尋址方式
指令所選中的寄存器內(nèi)容是實(shí)際操作數(shù)地址(而不是操作數(shù))可訪問的存儲器空間片內(nèi)所有數(shù)據(jù)存儲器(包括低128字節(jié)和高128字節(jié)RAM)所有擴(kuò)展的(包括片內(nèi)或片外)數(shù)據(jù)存儲器和I/O端口示例(1)MOVA,@R0;(A)=((R0)), R0所指向的單元(片內(nèi)的)中的內(nèi)容傳送到A(2)MOVXA,@R0;(A)=((R0)), R0所指向的單元(擴(kuò)展的)中的內(nèi)容傳送到A(3)MOV@R1,A;((R1))=(A)(4)MOVX@DPTR,A;((DPTR))=(A)特點(diǎn)稱R0,R1和DPTR為指針,準(zhǔn)確地說R0和R1是8位數(shù)據(jù)指針,DPTR為16位的數(shù)據(jù)指針,其中一個(gè)操作數(shù)在指針?biāo)赶虻膯卧谐薘0,R1和DPTR外,其它任何單元都不能作為指針00H20H2FH7FH1FH30H80HFFH52的RAM區(qū)ORSFR普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)2023/1/1113寄存器間接尋址的圖例R0R700H07H30H順序執(zhí)行MOV30H,#58HMOVR0,#30HMOVA,@R0問1,接例數(shù)據(jù)MOV30H,#58HMOV@R0,#58H的結(jié)果一樣嗎?問2,接例數(shù)據(jù),執(zhí)行結(jié)果?MOV@R0,#32HMOV@R0,32H……30H58H58H0AH……E0HA32H2023/1/1114基址+變址寄存器間接尋址方式可訪問的存儲器空間程序存儲器(包括所有64K字節(jié)程序存儲空間)示例(僅有以下3個(gè)指令)(1)MOVCA,@A+DPTR;(A)=((A)+(DPTR))(2)MOVCA,@A+PC;(A)=((A)+(PC))(3)JMP@A+DPTR;(PC)=(A)+(DPTR)特點(diǎn)稱A為變址寄存器稱DPTR和PC為基址寄存器示例(1)和(2)稱為“查表指令”,上面最后一個(gè)指令稱為“程序散轉(zhuǎn)指令”查表指令必須以累加器A為目的操作數(shù),基址寄存器和變址寄存器作為指針,兩個(gè)單元中內(nèi)容之和(加法是最低位對齊)為源操作數(shù)地址2023/1/1115變址尋址的圖例MOVCA,@A+DPTR設(shè)DPTR=2000H,A=E0HE0A程序存儲區(qū)2141H9320E0H472140H………DPH20DPL00ALU20E0H47指令代碼2023/1/1116總結(jié):尋址方式與相應(yīng)的尋址空間方式利用的變量尋址空間寄存器R0~R7片內(nèi)通用寄存器直接尋址direct片內(nèi)RAM低128字節(jié)特殊功能寄存器SFR寄存器間址@R0,@R1@R0,@R1,@DPTR片內(nèi)RAM片外RAM與I/O口立即數(shù)#data--變址尋址@A+PC@A+DPTR程序存儲器MCS-51單片機(jī)指令的一般格式MCS-51單片機(jī)的尋址方式寄存器尋址直接地址尋址立即數(shù)尋址寄存器間接尋址基址寄存器+變址寄存器間接尋址MCS-51單片機(jī)的指令集內(nèi)容2023/1/1118MCS-51指令中所用符號說明Rn——通用寄存器R0~R7中的一個(gè)#data——8位立即數(shù)#data16——16位立即數(shù)direct——8位直接地址@Ri——R0或R1,可以間接尋址@DPTR——可按DPTR中地址對外部存儲器尋址bit——8位位地址addr11——11位目標(biāo)地址addr16——16位目標(biāo)地址rel——8位地址偏移量$——當(dāng)前指令的地址2023/1/1119MCS-51單片機(jī)的指令集共111條指令按指令所占字節(jié)數(shù)分類:單字節(jié)(49條);雙字節(jié)(46條);3字節(jié)(16條)按指令執(zhí)行時(shí)間分類:單周期(64條);雙周期(45條);4周期(2條)按指令的功能分類:數(shù)據(jù)傳送類(29條);算術(shù)運(yùn)算類(24條);邏輯運(yùn)算及移位類(24);控制轉(zhuǎn)移類(17條);位操作類(17條)2023/1/1120掌握指令集的基本方法指令集中每條指令都按以下3步S1:指令的助記符,操作數(shù)(包括隱含的操作數(shù))S2:指令的執(zhí)行過程S3:指令的執(zhí)行結(jié)果,結(jié)果的存儲單元例1,指令A(yù)DDCA,30HS1:助記符為“ADDC”,操作數(shù)為A(被加數(shù)),30H(加數(shù)),進(jìn)位位C(加數(shù),C為隱含的操作數(shù))S2:執(zhí)行過程:(C)+(A)+(30H)→(A),(C)S3:結(jié)果:和保存在A中,進(jìn)位保存在C中2023/1/1121“DAA”指令的示例S1:操作數(shù)為A,C和AC(其中C和AC是隱含的)S2:執(zhí)行過程:順序執(zhí)行以下兩步
S2-1:如果A的低半字節(jié)大于9或(AC)=1,那么(A)=(A)+06HS2-2:如果A的高半字節(jié)大于9或(C)=1,那么(A)=(A)+06H說明:兩次加法運(yùn)算,如果有進(jìn)位仍保存在C中.S3:結(jié)果保存在累加器A和進(jìn)位位C中2023/1/1122總結(jié)指令的一般格式五種尋址方式及它們的訪問空間掌握指令的基本方法總結(jié)指令的一般格式五種尋址方式及它們的訪問空間掌握指令的基本方法問題和討論24根據(jù)尋址方式的可訪問空間以及它們特點(diǎn),討論下面的指令分別屬于哪種尋址方式?(1)MOVR5,#20H(2)CLRA(3)CLRC指令“MOVR5,A”是一條傳送指令,執(zhí)行該指令后,源操作數(shù)的內(nèi)容發(fā)生變化了嗎?問題和討論25試寫出完成以下操作的指令序列(1)將R0的內(nèi)容傳送到R1;(2)內(nèi)部RAM單元60H的內(nèi)容傳送到寄存器R2;(3)外部RAM單元1000H的內(nèi)容傳送到內(nèi)部RAM單元60H;(4)外部RAM單元1000H的內(nèi)容傳送到寄存器R2;(5)外部RAM單元1000H的內(nèi)容傳送到外部RAM單元2000H下課數(shù)據(jù)傳送類指令:(29條/11)算術(shù)運(yùn)算類指令:(24條/8)邏輯運(yùn)算及移位類指令:(24條/2)控制轉(zhuǎn)移類指令:(17條)位操作(布爾操作)類指令:(17條)偽指令補(bǔ)充內(nèi)容
——指令系統(tǒng)2023/1/1127數(shù)據(jù)傳送指令(5種/29條)內(nèi)部存儲器間傳送: (MOV—16條)外部數(shù)據(jù)存儲器與累加器間傳送: (MOVX—4條)程序存儲器向累加器傳送: (MOVC—2條)數(shù)據(jù)交換:(XCH,XCHD,SWAP—5條)堆棧操作: (PUSH,POP—2條)2023/1/1128內(nèi)部存儲器間數(shù)據(jù)傳送路徑(16條)Direct直接尋址Acc累加器Rn寄存器#data立即數(shù)@Ri間接尋址MOVDPTR,#data162023/1/1129外部存儲器間數(shù)據(jù)傳送路徑(4條)Acc累加器Rn寄存器DPTR在51中,與外部RAM打交道的只可以是A累加器。所有需要送入外部RAM的數(shù)據(jù)必需要通過A送去,而所有要讀入的外部RAM中的數(shù)據(jù)也必需通過A讀入。
內(nèi)部RAM間可以直接數(shù)據(jù)傳遞如,要將外部(設(shè)為0100H單元的數(shù)據(jù))送入(設(shè)為0200H單元) MOVDPTR,#0100H MOVXA,@DPTR MOVDPTR,#0200H MOVX@DPTR,A2023/1/1130應(yīng)用舉例18段數(shù)碼管顯示MOVP1,#0FEH;11111110B可以使P1.0上的發(fā)光二極管點(diǎn)亮MOVP1,#0F0H;11110000B可以使P1口上的上面4個(gè)發(fā)光二極管點(diǎn)亮P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.75v2023/1/1131應(yīng)用舉例18段數(shù)碼管顯示MOVP1,#00H ;顯示8.MOVP1,#0F8H ;顯示7MOVP1,#88H ;顯示AP1.0aP1.1bP1.2cP1.3dP1.4eP1.5fP1.6gP1.7dp5v2023/1/1132算術(shù)運(yùn)算類指令不帶進(jìn)位加: (ADD—4條)帶進(jìn)位加: (ADDC—4條)增量指令: (INC—5條)十進(jìn)制調(diào)整指令: (DA—1條)減法指令: (SUBB—4條)減量指令: (DEC—4條)乘法指令: (MUL—1條)除法指令: (DIV—1條)2023/1/1133應(yīng)用舉例2BCD加法ALU只能進(jìn)行二進(jìn)制加法(即低4位向高4位逢16進(jìn)1),為實(shí)現(xiàn)BCD加法,就必須對ALU的加法結(jié)果進(jìn)行BCD調(diào)整,使其變成BCD數(shù)(BCD加法是逢10進(jìn)1的)。例:寫出85+59=144BCD加法程序,并對加法過程和BCD調(diào)整進(jìn)行分析。解: ORG 1000H MOV A,#85H ;A←#85H ADD A,#59H ;A←(A)+#59H DA A ;A←#44H,Cy=1 SJMP $ END2023/1/1134上例加法操作及BCD調(diào)整過程:A=10110011B 85+data=01110101B +5911011110B11100100B++01000100BCy=1144Cy中的進(jìn)位1是百位BCD,累加器A中的高低4位分別是十位BCD和個(gè)位BCD(即44H)。加60H調(diào)整加06H調(diào)整01100000B00000110B2023/1/1135邏輯運(yùn)算指令(24條)邏輯與指令: (ANL—6條)邏輯或指令: (ORL—6條)邏輯異或指令: (XRL—6條)累加器清除與求反指令: (CLR、CPL—2條)移位指令: (RL、RLC、RR、RRC—4條)2023/1/1136控制轉(zhuǎn)移指令(17條)無條件轉(zhuǎn)移指令: (LJMP、AJMP、SJMP、JMP—4條)條件轉(zhuǎn)移指令: (JZ、JNZ、CJNE、DJNZ—8條)子程序調(diào)用及返回指令: (LCALL、ACALL、RET、RETI—4條)空操作指令: (NOP—1條)2023/1/1137AJMP指令本指令是2KB范圍內(nèi)的絕對轉(zhuǎn)移指令:
AJMPaddr11 ;PC←(PC)+2(形成頁面地址PC15-11) ;PC10~0←addr11(形成頁面地址)
說明: 本指令是雙字節(jié)指令。指令碼為: a10a9a800001a7a6……a0
操作碼 其中a10~a0為低11位目標(biāo)地址。 編程時(shí)addr11常用符號地址,匯編時(shí)翻譯成機(jī)器碼。2023/1/1138AJMP指令第0區(qū)第1區(qū)……第32區(qū)0000H07FFH0800H0FFFHF800HFFFFH外部ROM的64KB可以分為32區(qū),每區(qū)2KB。PC15~PC11為頁面地址PC10~PC0為頁內(nèi)地址。0000H2023/1/1140布爾處理類指令(17條)布爾傳送指令: (MOV—2條)布爾狀態(tài)控制指令: (CRL、SETB、CPL—6條)布爾邏輯運(yùn)算指令: (ANL、ORL—4條)布爾條件轉(zhuǎn)移指令: (JC、JNC、JB、JNB、JBC—5條)解釋程序語句,并填寫運(yùn)行結(jié)果(1)411.MOV A,#08H ;2.MOV 30H,A ;3.MOV 31H,A ;4.MOV 32H,A ;5.MOV 33H,#30H ;6.MOV R6,#03H ;7.MOV R0,#30H ;8.MOV A,@R0 ;9.CLRC ;
AA:10.INC R0 ;11.ADDC A,@R0 ;12.DJNZ R6,AA ;當(dāng)?shù)?次執(zhí)行完這句指令時(shí),(R6)=13.RET當(dāng)上面程序執(zhí)行到“RET”處時(shí),填寫下面的寄存器或地址中的值:(A)
;(進(jìn)位位C)
;(R0);(R6)(30H)
;(31H)
;(32H)
;(33H)
。解釋程序語句,并填寫運(yùn)行結(jié)果(2)42
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度采光井玻璃更換與維護(hù)合同3篇
- 二零二五年度氣象站氣象數(shù)據(jù)安全保障合同3篇
- 2024蘇州租賃合同含寵物飼養(yǎng)及養(yǎng)護(hù)服務(wù)條款3篇
- 2024版民間借貸合同范例
- 2025年度茶樓裝修工程消防設(shè)施合同范本4篇
- 2025年度10kv配電站施工期間質(zhì)量檢測與驗(yàn)收合同正規(guī)范本3篇
- 2025年度教育機(jī)構(gòu)LOGO知識產(chǎn)權(quán)許可合同范本3篇
- 2025年度智能物流系統(tǒng)全國代理銷售合同4篇
- 2025年度廠房施工合同施工人員培訓(xùn)協(xié)議(新版)3篇
- 2025年度智能工廠改造裝修合同模板3篇
- 小學(xué)四年級數(shù)學(xué)知識點(diǎn)總結(jié)(必備8篇)
- GB/T 893-2017孔用彈性擋圈
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 醫(yī)學(xué)會自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項(xiàng)機(jī)電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動物遺傳育種學(xué)》動物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報(bào)告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
評論
0/150
提交評論