




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第三章 MCS-51指令系統(tǒng) Instruction Set,2020年8月12日2時55分,51系列單片機指令集含有111條指令,每條指令在程序存儲器ROM中占據(jù)一定的空間,以字節(jié)為單位。按指令所占字節(jié)數(shù)分類 : 單字節(jié)(49條) 雙字節(jié)(46條) 3字節(jié)(16條),2020年8月12日2時55分,每條指令在執(zhí)行時要花去一定的時間,以機器周期為單位。按指令執(zhí)行時間分類: 單周期(64條) 雙周期(45條) 4周期(2條),2020年8月12日2時55分,按指令的功能分類,可分為5大類: 數(shù)據(jù)傳送類(29條) 算術(shù)運算類(24條) 邏輯運算及移位類(24條) 控制轉(zhuǎn)移類(17條) 位操作類(1
2、7條),2020年8月12日2時55分,指令格式,標(biāo)號:操作碼 目的操作數(shù) ,源操作數(shù) ;注釋 例:Loop: MOV R0, #50H ;(R0)=50H,方括符 表示可選項 標(biāo)號代表指令所在地址,1-8個字母/數(shù)字,“:”結(jié)尾 操作碼就是指令功能助記符,指令實體 目的操作數(shù) 源操作數(shù) 注釋,以“;”開頭,2020年8月12日2時55分,常用符號,Rn:工作寄存器中的寄存器R0、R1R7之一,,Ri:工作寄存器中的寄存器R0或R1,#data:8位立即數(shù),#data16:16位立即數(shù),direct:片內(nèi)RAM或SFR的地址(8位),Ri:間接尋址寄存器,bit:片內(nèi)RAM或SFR的位地址,a
3、ddr11:11位目的地址,addr16:16位目的地址,2020年8月12日2時55分,rel: 補碼形式的8位地址偏移量。 偏移范圍為-128127 /bit:位操作指令中,該位求反后參與操作,不影響該位 X:片內(nèi)RAM的直接地址或寄存器 (X):X中的內(nèi)容 (X):由X所指指出的單元中的內(nèi)容 :箭頭左邊的內(nèi)容送入箭頭右邊的單元內(nèi),2020年8月12日2時55分,寄存器尋址 立即尋址 寄存器間接尋址 直接尋址 變址尋址(基址寄存器+變址寄存器間接尋址) 相對尋址 位尋址,尋址方式:指令按地址獲得操作數(shù)的方式 七種尋址方式,一條指令可能含多種尋址方式,3.2 尋址方式,2020年8月12日2
4、時55分,一、 立即尋址 Immediate Addressing,操作數(shù)就包含在指令代碼中,稱為立即數(shù),用“”表示。 MCS-51 如:MOV P1, #80H MOV R7, #0F5H MOV DPTR,#1245H,操作數(shù)存在程序存儲器中,2020年8月12日2時55分,二、 直接尋址 Direct Addressing 直接使用數(shù)所在單元的地址找到了操作數(shù),所以稱 這種方法為直接尋址。 操作數(shù)在SFR、內(nèi)部RAM、位地址空間。 如: MOV A,00H MOV C,60H MOV A,0F0H,2020年8月12日2時55分,三、 寄存器尋址 Register Addressing,
5、對選定的工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR中的數(shù)進行操作。 例:MOV A,R0;將R0工作寄存器中的數(shù)據(jù)送到累加器A中去。,2020年8月12日2時55分,四、 寄存器間接尋址 Register Indirect Addressing,把地址放在另外一個寄存器中,根據(jù)這個寄存器中的數(shù)值決定該到哪個單元中取數(shù)據(jù)。 R0,R1-8位地址,片內(nèi)低128字節(jié)或片外 DPTR-16位,片外64KB MCS-51 如:MOV A,R0 MOVX A,R0 MOVX A,DPTR,操作數(shù)在片內(nèi)RAM中,操作數(shù)在片外RAM中,操作數(shù)在片外RAM中,2020年8月12日2時55分,
6、在51單片機中訪問特殊功能寄存器SFR只能采用直接尋址方式的原因:SFR分布在80H0FFH范圍內(nèi),而52系列單片機有256字節(jié)的片內(nèi)RAM,其中的80H0FFH的RAM與SFR所占地址重疊。,MOV A, 90H 等效于 MOV A, P1 屬直接尋址 MOV A, R0 ;事先已知 (R0) = 90H 執(zhí)行的操作:A (90H) 屬寄存器間接尋址, 隨意寫的指令如:MOV A, 85H 則是非法的!,于是規(guī)定: 80H0FFH范圍內(nèi)的RAM只能用寄存器間接尋址方式,而SFR只能用直接尋址方式。從而解決了地址沖突的問題。例如:,2020年8月12日2時55分,存儲器配置(片內(nèi)RAM),51
7、片內(nèi)RAM 128字節(jié)(00H7FH) 89C52片內(nèi)RAM 256字節(jié)(00H0FFH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SFR分布在80H-FFH 其中92個位可位尋址,80H,FFH,89C51 128字節(jié),89C52 256字節(jié),只能直接尋址,只能寄存器間接尋址,2020年8月12日2時55分,以DPTR或PC為基址寄存器,累加器A為變址寄存器。把兩者內(nèi)容相加,結(jié)果作為操作數(shù)的地址。 常用于查表操作。 MCS-51 MOVC A, A+DPTR ;(A+DPTR) A MOVC A, A+
8、PC; PC+1 PC, (A+PC)A,五、 變址尋址(基址+變址),Base-Register-plus-Index-Register-Indirect Addressing,2020年8月12日2時55分,如:MOVC A,A+DPTR 設(shè)DPTR=2000H,A=E0H,20E0H,47,2020年8月12日2時55分,六、 相對尋址,Relative Addressing,當(dāng)前PC值加上指令中規(guī)定的偏移量 rel,構(gòu)成實際的操作數(shù)地址 例: SJMP rel 操作:跳轉(zhuǎn)到的目的地址 = 當(dāng)前16位PC值 + rel,2020年8月12日2時55分,注意: 1)“當(dāng)前PC值”指程序中下
9、一條指令所在的首地址, 是一個16位數(shù); 2)符號“rel”表示“偏移量”,是一個帶符號的單字 節(jié)數(shù),范圍是:-128+127(80H7FH),在實際編程中,“rel” 通常用標(biāo)號代替,2020年8月12日2時55分,如:JC 23H,1025H,23H,1002H,當(dāng)前PC,2020年8月12日2時55分,對片內(nèi)RAM的位尋址區(qū)和某些可位尋址的特殊功能寄存器進行位操作時的尋址方式。 如: SETB 3DH; 將27H.5位置1 CLR C ;Cy位清0,七 位尋址 Bit Addressing,操作數(shù)在片內(nèi)RAM位地址區(qū)或SFR某些位中,2020年8月12日2時55分,尋址方式涉及的存儲器空
10、間,2020年8月12日2時55分,3.3 數(shù)據(jù)傳送類指令(29條) Data Transfer Instruction,2020年8月12日2時55分,MCS-51 助記符: 助記符: MOV、MOVX、MOVC XCH、XCHD、SWAP PUSH、POP 源操作數(shù)尋址方式(5種): 立即尋址、直接尋址、寄存器尋址、 寄存器間接尋址、變址尋址。 目的操作數(shù)尋址方式(3種): 直接尋址、寄存器尋址、寄存器間接尋址; 除了目的操作數(shù)為ACC的指令影響奇偶標(biāo)志P外, 一般不影響標(biāo)志位。,2020年8月12日2時55分,Acc 累加器,Direct 直接尋址,Ri 間接尋址,Rn 寄存器,#dat
11、a 立即數(shù),Rn: R0R7 Ri: R0,R1 #data:8位立即數(shù) #data16:16位立即數(shù) direct:直接地址 rel: 8位帶符號偏移量,內(nèi)部存儲器間傳送指令 (16條): MOV 類指令的操作方向總是后面的操作數(shù) 指向前面的操作數(shù)! 例:MOV A,30H (A)(30H),2020年8月12日2時55分,MOV A, R0 MOV A, direct MOV A, Ri MOV A, data 這組指令的功能是:把源操作數(shù)的內(nèi)容送入累加器A。 例如: MOV A, 10H; 該指令執(zhí)行時將立即數(shù) 10H送入累加器A中。,1. 數(shù)據(jù)傳送到累加器A的指令(4條),2020年8
12、月12日2時55分,2. 數(shù)據(jù)傳送到工作寄存器Rn的指令(3條) MOV Rn, A MOV Rn, direct MOV Rn, data,2020年8月12日2時55分,這組指令的功能是: 把源操作數(shù)的內(nèi)容送入當(dāng)前工作寄存器區(qū)的R0R7中的某一個寄存器。指令中Rn在內(nèi)部數(shù)據(jù)存儲器中的地址由當(dāng)前的工作寄存器區(qū)選擇位RS1、RS0 確定, 可以是 00H07H、08H0FH、10H17H、18H1FH。 例如: MOV R0, A, 若當(dāng)前RS1、RS0 設(shè)置為 00 (即工作寄存器 0 區(qū)), 執(zhí)行該指令時,將累加器A中的數(shù)據(jù)傳送至工作寄存器R0(內(nèi)部RAM 00H)單元中。,2020年8月
13、12日2時55分,3. 數(shù)據(jù)傳送到內(nèi)部RAM單元或特殊功能寄存器SFR的指令 (8條) MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, Ri MOV direct, data MOV Ri, A MOV Ri, direct MOV Ri, data,2020年8月12日2時55分,這組指令的功能是:把源操作數(shù)的內(nèi)容送入內(nèi)部RAM單元或特殊功能寄存器。其中第三條指令和第五條指令都是三字節(jié)指令。第三條指令的功能很強, 能實現(xiàn)內(nèi)部RAM之間、特殊功能寄存器之間或特殊功能寄存器與內(nèi)部RAM之間的直接數(shù)據(jù)傳送。,2020年8月12
14、日2時55分,4、 十六位數(shù)的傳遞指令(1條),MOV DPTR,#data16 8051是一種8位機,這是唯一的一條16位立即數(shù)傳遞指令。功能:將一個16位的立即數(shù)送入DPTR中去。其中高8位送入DPH,低8位送入DPL。,2020年8月12日2時55分,例:MOV DPTR,#1234H執(zhí)行完了之后DPH中的值為12H,DPL中的值為34H。如果我們分別向DPH,DPL送數(shù),則結(jié)果也一樣。 如下面兩條指令: MOV DPH,#35H MOV DPL,#12H。 則就相當(dāng)于執(zhí)行了 MOV DPTR,#3512H。,2020年8月12日2時55分,5、 累加器A與片外RAM之間的數(shù)據(jù)傳遞類指令
15、(4條),MOVX A,Ri MOVX Ri,A MOVX A,DPTR MOVX DPTR,A,2020年8月12日2時55分,說明: 1.在51中,與外部存儲器RAM打交道的只可以是A累加器。所有需要送入外部RAM的數(shù)據(jù)必需要通過A送去,而所有要讀入的外部RAM中的數(shù)據(jù)也必需通過A讀入。 在此我們可以看出內(nèi)外部RAM的區(qū)別了,內(nèi)部RAM間可以直接進行數(shù)據(jù)的傳遞,而外部則不行。 比如,要將外部RAM中某一單元(設(shè)為0100H單元的數(shù)據(jù))送入另一個單元(設(shè)為0200H單元),也必須先將0100H單元中的內(nèi)容讀入A,然后再送到0200H單元中去。,2020年8月12日2時55分,2.要讀或?qū)懲獠?/p>
16、的RAM,當(dāng)然也必須要知道RAM的地址,在后兩條指令中,地址是被直接放在DPTR中的。而前兩條指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址。高8位地址由P2口來提供。 3.使用時應(yīng)先將要讀或?qū)懙牡刂匪腿隓PTR或Ri中,然后再用讀寫命令。,2020年8月12日2時55分,例:將外部RAM中100H單元中的內(nèi)容送入外部RAM中200H單元中。 MOV DPTR,#0100H MOVX A,DPTR MOV DPTR,#0200H MOVX DPTR,A,2020年8月12日2時55分,6、 讀程序存儲器指令(2條),MOVC A,A+DPTR MOVC A,A+PC 本組
17、指令是將ROM中的數(shù)送入A中。本組指令也被稱為查表指令,常用此指令來查一個已做好在ROM中的表格 說明:查找到的結(jié)果被放在A中,因此,本條指令執(zhí)行前后,A中的值不一定相同。,2020年8月12日2時55分,例:有一個數(shù)在R0中,要求用查表的方法確定它的平方值(此 數(shù)的取值范圍是0-5) MOV DPTR,#0100H MOV A,R0 MOVC A,A+DPTR . ORG 0100H DB 0,1,4,9,16,25,如果R0中的值為2,則最終地址為0100H+2為0102H,到0102H單元中找到的是4。,2020年8月12日2時55分,1.給出依次執(zhí)行每條指令后的結(jié)果,MOV 23H,#
18、30H MOV 12H,#34H MOV R0,#23H MOV R7,12H MOV R1,#12H MOV A,R0 MOV 34H,R1 MOV 45H,34H MOV DPTR,#6712H MOV 12H,DPH MOV R0,DPL MOV A,R0,;(23H)=30H ;(12H)=34H ;(R0)=23H,;(R7)=34H ;(R1)=12H ;(A)=30H,;(34H)=34H ;(45H)=34H ;(DPTR)=6712H,;(12H)=67H ;(R0)=12H ;(A)=67H,內(nèi)部RAM,2020年8月12日2時55分,2、在8051單片機片內(nèi)RAM中,已知
19、(30H)38H,(38H)40H,(40H)48H,(48H)90H,請分析依次執(zhí)行下面指令的結(jié)果。 MOVA,40H MOVR0,A MOVP1,0F0H MOVR0,30H MOVDPTR,3848H MOV40H,38H MOVR0,30H MOV90H,R0 MOV18H,30H MOVA,R0 MOVP2,P1,; (A)=48H ; (R0)=48H ; (P1)=0F0H ; (48H)=38H ; (DPTR)=3848H ; (40H)=40H ; (R0)=38H ; (90H)=38H ; (18H)=30H ; (A)=40H ; (P2)=0F0H,2020年8月1
20、2日2時55分,3、請用數(shù)據(jù)傳送指令來實現(xiàn)下列要求的數(shù)據(jù)傳送。 (1)把R0的內(nèi)容送到R1 (2)內(nèi)部RAM20H單元的內(nèi)容傳送到A中。 (3)外部RAM2000H單元的內(nèi)容送到R0。 (4)外部ROM1000H單元的內(nèi)容送內(nèi)部RAM20H單元。,2020年8月12日2時55分,7、 堆棧操作(2條),PUSH direct ;SPSP+1,(SP)(direct) POP direct ; (direct) (SP), SPSP-1 第一條為壓入指令,就是將direct中的內(nèi)容送入堆棧中,第二條為彈出指令,就是將堆棧中的內(nèi)容送回到direct中。,2020年8月12日2時55分,例: MOV
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 別墅花園裝修合同范本
- 《錦瑟》教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊
- 借貸合同范本u
- 勞動合同范本陜西
- 傳銷性質(zhì)合同范本
- 產(chǎn)品銷售協(xié)議合同范本
- 企業(yè)授權(quán)合同范本
- 2024年重慶大學(xué)機器人研究所招聘筆試真題
- 上海貨物短途運輸合同范本
- 2024年溫州蒼南農(nóng)商銀行招聘筆試真題
- 廣東粵教版第3冊上信息技術(shù)課件第5課神奇的變化-制作形狀補間動畫(課件)
- 動力工程及工程熱物理專業(yè)英語課件
- 幼兒系列故事繪本課件達芬奇想飛-
- (中職)中職生禮儀實用教材完整版PPT最全教程課件整套教程電子講義(最新)
- 出納收入支出日記賬Excel模板
- 給水排水用格柵除污機通用技術(shù)條件
- DBJ61_T 179-2021 房屋建筑與市政基礎(chǔ)設(shè)施工程專業(yè)人員配備標(biāo)準(zhǔn)
- 渝價〔2013〕430號
- 一年級下冊綜合實踐活動課件-身邊的水果和蔬菜全國通用16張
- 市政工程主要施工機械設(shè)備
- 書香里的童年
評論
0/150
提交評論