![學習單片機的指令系統(tǒng)教學課件_第1頁](http://file4.renrendoc.com/view/55fc278bc88f640b18d827b87d395920/55fc278bc88f640b18d827b87d3959201.gif)
![學習單片機的指令系統(tǒng)教學課件_第2頁](http://file4.renrendoc.com/view/55fc278bc88f640b18d827b87d395920/55fc278bc88f640b18d827b87d3959202.gif)
![學習單片機的指令系統(tǒng)教學課件_第3頁](http://file4.renrendoc.com/view/55fc278bc88f640b18d827b87d395920/55fc278bc88f640b18d827b87d3959203.gif)
![學習單片機的指令系統(tǒng)教學課件_第4頁](http://file4.renrendoc.com/view/55fc278bc88f640b18d827b87d395920/55fc278bc88f640b18d827b87d3959204.gif)
![學習單片機的指令系統(tǒng)教學課件_第5頁](http://file4.renrendoc.com/view/55fc278bc88f640b18d827b87d395920/55fc278bc88f640b18d827b87d3959205.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章單片機的指令系統(tǒng)
§2.1指令系統(tǒng)概述單片機所能執(zhí)行的指令的集合稱為指令系統(tǒng)。以助記符、符號地址、標號等書寫程序的語言稱為匯編語言。2.1.1指令分類〔1〕按功能分〔2〕按字長分〔3〕按執(zhí)行時間分2.1.2指令格式[標號]:操作碼[目的操作數(shù)],[源操作數(shù)];[注釋]2.1.3指令字長和指令周期指令周期是指執(zhí)行一條指令所需要的時間。
2.1.4符號約定⑴#data:8位立即數(shù),取值在00H~0FFH之間。⑵#data16:16位立即數(shù),取值在0000H~0FFFFH之間。⑶Rn:工作存放器,n=0~7,即工作存放器組中的一個工作存放器。⑷Ri:用于存放器間接尋址的工作存放器,i=0或1,即工作存放器R0和R1。⑸direct:8位直接地址,片內RAM地址00H~0FFH。⑹addr11:11位目的地址。⑺addr16:16位目的地址。⑻bit:位地址。⑼DPTR:雙數(shù)據(jù)指針存放器⑽Pi:MCS-51單片機的I/O口,i=0~3。⑾@:存放器間接尋址前綴。⑿rel:8位帶符號地址偏移量。⒀$:當前指令的地址。⒁(X):片內RAM單元X中的內容。⒂((X)):X中的內容所指向單元的內容。⒃←:左邊的內容被右邊的內容所取代?!?.2尋址方式2.2.1直接尋址
直接尋址:指令中直接給出操作數(shù)存儲地址的尋址方式。1.尋址范圍。 〔1〕片內RAM的低128單元。 〔2〕特殊功能存放器SFR。2.使用本卷須知 尋址特殊功能存放器SFR時,可以用直接地址,也可以用存放器名。 INCA;A內容加1,存放器尋址方式 INCACC ;直接尋址方式 INC0E0H ;直接尋址方式2.2.2立即尋址立即尋址:在指令中直接給出操作數(shù)的尋址方式。
例如:將十進制數(shù)200傳送到累加器A中。 MOVA,#0C8H MOV A,#200 MOVA,#11001000B 2.2.3存放器尋址 存放器尋址:操作數(shù)存放于存放器中的尋址方式。 可用于存放器尋址的存放器有: 〔1〕四個工作存放器組中的工作存放器R0~R7,共32個工作存放器。 〔2〕特殊功能存放器,如A、B、DPTR、Pi等。2.2.4存放器間接尋址 存放器間接尋址:操作數(shù)的地址存放在存放器中的尋址方式。1.尋址范圍〔1〕片內RAM256B地址單元?!?〕對片外RAM64KB地址單元。 例如:將片內RAM55H單元的數(shù)據(jù)50H傳送到累加器A中。指令如下: MOVR0,#55H MOVA,@R0;執(zhí)行結果〔A〕=50H 例如:將片外RAM0500H單元的數(shù)據(jù)50H傳送到累加器A中。指令如下: MOVDPTR,#0500H MOVXA,@DPTR2.使用本卷須知 〔1〕為區(qū)別存放器尋址方式,作為存放器間接尋址的存放器前面加@。 〔2〕存放器間接尋址方式不能用于對特殊功能存放器SFR的尋址。 例如:MOVR0,#0F0H; MOVA,@R0〔3〕堆棧操作指令也是間接尋址方式,它以堆棧指針SP作為間接尋址存放器。2.2.5變址尋址 變址尋址:以DPTR或PC中的數(shù)據(jù)為根本地址,以A中的數(shù)據(jù)為地址偏移量,基地址與地址偏移量之和作為被尋址數(shù)據(jù)地址的尋址方式。 查表操作指令為: MOVCA,@A+PC MOVCA,@A+DPTR 例如:將程序存儲器050AH單元中的常數(shù)50H送到累加器A中。指令如下: MOVA,#0AH MOVDPTR,#0500H MOVCA,@A+DPTR 幾點說明: 〔1〕變址尋址方式只能對程序存儲器進展尋址,因此只能用于讀取數(shù)據(jù),而不能用于存放數(shù)據(jù),它主要用于查表操作。 〔2〕變址尋址指令只有3條: MOVCA,@A+PC MOVCA,@A+DPTR JMP@A+DPTR2.2.6相對尋址 相對尋址:在執(zhí)行程序的過程中,CPU尋找相對于當前程序計數(shù)器PC值的下一條指令地址的尋址方式。 例如:當程序狀態(tài)字存放器PSW的最高位時,程序轉移到標號為LOOP的語句執(zhí)行。 ORG0000H SJMPMAIN ORG0030H MAIN:SETBC JCLOOP ………… LOOP:MOVA,#30H ……………2.2.7位尋址 位尋址:針對可位地址的片內RAM空間和可位尋址的特殊功能存放器進展尋址的方式。〔1〕內部RAM的位尋址區(qū),共16個單元的128位,單元地址為20H~7FH,位地址的表示方法可以用直接位地址或單元地址加位的表示方法。 例如:將2FH單元的最高位的值傳送到PSW.7。指令如下: MOVC,7FH MOVC,2FH.7〔2〕特殊功能存放器SFR中可位尋址的存放器共11個,其位地址在指令中有4種表達方式。 例如:對程序狀態(tài)字PSW存放器輔助進位位AC進展操作 ①直接使用位地址:MOVC,0D6H ②位名稱表示法:MOVC,AC ③單元地址加位的表示法:MOVC,0D0H.6 ④專用存放器符號加位的表示法: MOVC,PSW.6§2.3數(shù)據(jù)傳送類指令2.3.1內部數(shù)據(jù)傳送指令MOV<目的操作數(shù)>,<源操作數(shù)>;注釋 〔1〕立即尋址數(shù)據(jù)傳送指令 指令功能:把源操作數(shù)送指定單元或存放器,源操作數(shù)為立即數(shù)。 MOVA,#data MOVRn,#data MOV@Ri,#data MOVdirect,#data〔2〕片內RAM單元與累加器A間傳送數(shù)據(jù)指令MOVA,RnMOVRn,AMOVA,@RiMOV@Ri,AMOVA,directMOVdirect,A〔3〕片內RAM單元間的數(shù)據(jù)傳送指令 MOVdirect,Rn MOVRn,direct MOVdirect,@Ri MOV@Ri,direct MOVdirect2,direct1例2-1:將P1口讀得的數(shù)據(jù)傳送給P2口。指令如下: 直接尋址: MOV0A0H,90H 通過累加器A: MOVA,P1 MOVP2,A 直接傳送: MOVP2,P1例如:將R0中的數(shù)傳給R7。指令如下: MOVA,R0 MOVR7,A〔4〕十六位數(shù)據(jù)傳送指令 MOVDPTR,#data16 例2-2:將數(shù)據(jù)1000H傳送到數(shù)據(jù)指針DPTR中。指令如下: MOVDPTR,#1000H 例2-3:設內部RAM中〔30H〕=40H,〔40H〕=10H,P1口作輸入口,〔P1〕=0CAH,程序如下: MOVR0,#30H MOVA,@R0 MOVR1,A MOVB,@R1 MOV@R1,P1 MOVP2,P1 執(zhí)行后的結果是什么?2.3.2堆棧操作指令 PUSHdirect;SP←(SP)+1,(SP)←(direct) POPdirect;direct←((SP)),SP←(SP)-1例2-4:設〔30H〕=X,〔40H〕=Y,試用堆棧實現(xiàn)30H和40H單元中的數(shù)據(jù)交換。 MOVSP,#50H PUSH40H PUSH30H …………… POP40H POP30H2.3.3數(shù)據(jù)交換指令〔1〕整字節(jié)交換指令XCHA,Rn;〔A〕←→〔Rn〕XCHA,@Ri;〔A〕←→〔〔Ri〕〕XCHA,direct;〔A〕←→〔direct〕〔2〕低半字節(jié)交換指令XCHDA,@Ri;(ACC.3~ACC.0)←→((Ri.3)~〔Ri.0))〔3〕累加器高、低半字節(jié)交換指令SWAPA;(ACC.7~ACC.4)←→(ACC.3~ACC.0) 例2-6片內50H單元中有一個十進制數(shù)0~9,試編程把它變?yōu)橄鄳腁SCII碼并存入50H單元。2.3.4外部數(shù)據(jù)傳送指令存儲器〔1〕用數(shù)據(jù)指針DPTR作地址存放器的存放器間接尋址指令MOVXA,@DPTR;A←((DPTR))MOVX@DPTR,A;(DPTR)←〔A〕〔2〕用Ri作地址存放器的存放器間接尋址指令MOVXA,@Ri ;A←((Ri))MOVX@Ri,A ;(Ri)←〔A〕例2-6:假設外部RAM中,〔20FFH〕=30H,〔2100H〕=15H。執(zhí)行以下指令后A中的內容是多少?MOVDPTR,#20FFHMOVA,@DPTRINCDPTRMOVA,@DPTR 例2-7:把片外RAM的70H單元中的一個數(shù)X,送到片外RAM的1010H單元。2.3.5查表操作指令MOVCA,@A+DPTR;A←((A〕+(DPTR))MOVCA,@A+PC;A←((A)+(PC))例2-8:累加器A中有一個0~9范圍內的數(shù),用以上查表指令編出能查出該數(shù)平方值的程序。設平方表表頭地址為TABLE?!?〕采用DPTR作為基址存放器MOVDPTR,#TABELMOVCA,@A+DPTRTABLE:DB0,1,4,9,16 DB25,36,49,64,81〔2〕采用PC作為基址存放器ORG1FFBH1FFBHADDA,#data;修正量1FFDHMOVCA,@A+PC ;查表1FFEHSJMP$2000HDB02001HDB12002HDB4…2021HDB81§2.4算術運算和邏輯指令2.4.1算術運算指令1.加法指令〔1〕不帶進位的加法指令 ADDA,Rn ADDA,direct ADDA,@Ri ADDA,#data 例2-9:試分析8051執(zhí)行如下指令后,累加器A和PSW各標志位的變化狀況。 MOVA,#0CFH ADDA,#0A5H〔2〕帶進位加法指令帶進位加法運算指令常用于多字節(jié)加法運算。ADDCA,Rn; A←(A)+(Rn)+CyADDCA,direct; A←(A)+(direct)+CyADDCA,@Ri; A←(A)+((Ri))+CyADDCA,#data; A←(A)+data+Cy 例2-10:設〔A〕=0AAH,〔R0〕=55H,Cy=1執(zhí)行如下指令后,PSW的值是多少? ADDCA,R02.帶借位減法指令SUBBA,Rn ;A←(A)+(Rn)-CySUBBA,direct ;A←(A)-(direct)-CySUBBA,@Ri ;A←(A)-((Ri))-CySUBBA,#data ;A←(A)-data-Cy3.加1和減1指令〔1〕加1指令INCA ;A←〔A〕+1INCRn ;Rn←〔Rn〕+1INCdirect ;direct←〔direct〕+1INC@Ri ;〔Ri〕←〔〔Ri〕〕+1INCDPTR ;DPTR←〔DPTR〕+1〔2〕減1指令減1指令與加1指令使用方法一樣。DECA;A←〔A〕-1DECRn;Rn←〔Rn〕-1DEC@Ri;〔Ri〕←〔〔Ri〕〕-1DECdirect ;direct←〔direct〕-14.乘法指令MULAB〔1〕進位標志位Cy總是清“0〞?!?〕累加器A中的值影響奇偶標志位P?!?〕當積大于255〔B中的內容不為0〕時,OV=1,否那么OV=0。5.除法指令DIVAB〔1〕對Cy和P標志的影響與乘法時一樣?!?〕當除數(shù)為0時,除法沒有意義,OV=1,否那么OV=0。6.二~十進制調整指令DAA假設AC=1或A3~A0>9,那么A←〔A〕+06H;假設Cy=1或A7~A4>9,那么A←〔A〕+60H。 2.4.2邏輯運算指令 1.邏輯“與〞、“或〞、“異或〞指令邏輯 邏輯與指令: ANLA,Rn ;A←〔A〕∧〔Rn〕 ANLA,@Ri ;A←〔A〕∧〔〔Ri〕〕 ANLA,direct ;A←〔A〕∧〔direct〕 ANLA,#data ;A←〔A〕∧#data ANLdirect,A ;direct←〔direct〕∧〔A〕 ANLdirect,#data ;direct←〔direct〕∧#data 例2-12:計算立即數(shù)#35H和#78H相與的結果。 邏輯或指令: ORLA,Rn ;A←〔A〕∨〔Rn〕 ORLA,@Ri ;A←〔A〕∨〔〔Ri〕〕 ORLA,direct ;A←〔A〕∨〔direct〕 ORLA,#data ;A←〔A〕∨〔#data〕 ORLdirect,A ;direct←〔A〕∨〔Rn〕 ORLdirect,#data ;direct←(direct)∨(#data) 例2-13:使用AT89S51控制12位模/數(shù)轉換器AD574A進展模/數(shù)轉換,讀取12位數(shù)據(jù)時要求先讀取高8位,再讀取低4位,而低4位數(shù)據(jù)在存放單元中又處在高4位,讀取的原始數(shù)據(jù)如以下圖所示。設讀取數(shù)據(jù)的高8位存放在片內RAM的31H單元,低8位存放在片內RAM的30H單元。請將讀取的數(shù)據(jù)按正確的12位數(shù)據(jù)存放。 邏輯異或指令: 異或指令是按位異或,即當參與異或運算的兩個位同為“0〞或“1〞時,結果為“0〞;當參與異或運算的兩個位不同時,結果為“1〞。 XRLA,Rn ;A←〔A〕〔Rn〕 XRLA,@Ri ;A←〔A〕〔〔Rn〕〕 XRLA,direct ;A←〔A〕〔direct〕 XRLA,#data ;A←〔A〕#data XRLdirect,A ;direct←〔direct〕〔A〕 XRLdirect,#data ;direct←〔direct〕#data 例2-14:計算立即數(shù)#35H和#78H相異或的結果。 2.移位指令 RLA ;累加器內容循環(huán)左移 RLCA ;累加器內容帶Cy循環(huán)左移 RRA ;累加器循環(huán)右移 RRCA ;累加器內容帶Cy循環(huán)右移 3.清零、取反指令 CLRA;A←0,累加器A清0,不影響標志位 CPLA;A←〔/A〕,累加器A的內容按位取反,不影響標志位§2.5控制轉移和位操作指令 1.無條件轉移指令 〔1〕長轉移指令 LJMPaddr16;PC←addr16 〔2〕絕對轉移指令 AJMPaddr11;PC←addr11 〔3〕短轉移指令 SJMPrel;PC←〔PC〕+2 ;PC←〔PC〕+rel 〔4〕間接轉移指令 JMP@A+DPTR;PC←〔A〕+〔DPTR〕 2.條件轉移指令 〔1〕累加器判零轉移指令 JZrel ;累加器A為0轉移 JNZrel ;累加器A不為0轉移
〔2〕比較轉移指令 CJNE<目的操作數(shù)>,<源操作數(shù)>,rel CJNEA,#data,rel CJNEA,direct,rel CJNE@Ri,#data,rel CJNERn,#data,rel 如果目的操作數(shù)小于源操作數(shù),那么Cy置1,否那么Cy清0。本指令執(zhí)行后不影響任何操作數(shù)。 〔3〕減1條件轉移指令 DJNZRn,rel ;〔Rn〕←〔Rn〕-1 ;假設〔Rn〕=0,那么PC←〔PC〕+2 ;假設〔Rn〕≠0,那么PC←〔PC〕+2+rel DJNZdirect,rel;direct←〔direct〕-1 ;假設〔direct〕=0,那么PC←〔PC〕+3 ;假設〔direct〕≠0,那么PC←〔PC〕+3+rel 例2-16:設R0、R1、R2的內容分別為01H、0AH、20H,執(zhí)行以下程序: L1:…… L2:…… L3:…… DJNZR0,L1 DJNZR1,L2 DJNZR2,L3 3.子程序調用和返回指令 〔1〕調用指令 ①長調用指令 LCALLaddr16 ;PC←(PC)+3 ;SP←(SP)+1,(SP)←PC7~PC0 ;SP←(SP)+1,(SP)←PC15~PC8 ;PC←addr16
②絕對調用指令
ACALLaddr11 ;PC←(PC)+2 ;SP←(SP)+1,(SP)←PC7~PC0 ;SP←(SP)+1,(SP)←PC15~PC8 ;PC10~0←addr11〔2〕子程序返回指令RET RET ;PC15~PC8←〔SP〕 ;SP←〔SP〕-1 ;PC7~PC0←〔SP〕 ;SP←〔SP〕-1〔3〕中斷報務程序返回指令 RETI ;PC15~PC8←〔SP〕 ;SP←〔SP〕-1 ;PC7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同模板學校食堂承包經(jīng)營合同范本
- Unit2 He's cool(說課稿)2023-2024學年外研版(三起)四年級下冊
- 2025合同模板工程的變更范本
- 2025江蘇:安全責任寫進集體合同模板范本
- Unit1 School(說課稿)-2024-2025人教版(新起點)英語一年級上冊
- 2023七年級語文上冊 第四單元 綜合性學習 少年正是讀書時說課稿 新人教版
- Unit5 I'm cleaning my room(說課稿)-2023-2024學年人教精通版英語五年級下冊001
- 2024年九年級語文下冊 第二單元 第5課 孔乙己說課稿 新人教版
- 2024-2025學年高中化學下學期第20周 常見氣體的制備說課稿
- Unit 1 people of achievement Reading for writing 說課稿-2024-2025學年高中英語人教版(2019)選擇性必修第一冊
- 進模模具設計
- 完整,滬教版小學四年級英語上冊單詞表
- 2021年高考化學真題和模擬題分類匯編專題20工業(yè)流程題含解析
- 2023年北京市高考作文評分標準及優(yōu)秀、滿分作文
- 2023年大唐尿素投標文件
- 《鋼鐵是怎樣煉成的》名著閱讀(精講課件) 初中語文名著導讀
- 縮窄性心包炎課件
- 《工程電磁場》配套教學課件
- 職位管理手冊
- 東南大學 固體物理課件
- 行政人事助理崗位月度KPI績效考核表
評論
0/150
提交評論