




已閱讀5頁,還剩23頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2019/10/30,email:qinyemei,1,單片機原理及應用,主講:覃業梅 中南林業科技大學涉外學院,第三章 mcs-51的指令系統,2019/10/30,2,3.1 指令系統概述,mcs51單片機共有111條指令 單字節指令49條 雙字節指令45條 三字節指令17條 單周期指令64條 雙周期指令45條 四周期指令2條(乘法、除法) 數據傳送類指令28條 算術運算類指令24條 邏輯操作類指令25條 位操作指令17條 控制轉移類指令17條,2019/10/30,3,3.2 指令格式,mcs51單片機匯編語言指令由操作碼和操作數兩部分組成。 指令的格式為: 【標號】:操作碼 【目的操作數】,【源操作數】;注釋 標號表示該指令的符號地址,可以是數字和字母或字母和數字的組合 操作碼規定了指令所實現的操作功能 目的操作數指令執行后結果的存放的地方 源操作數參加指令執行的數據來源 注釋是為方便用戶閱讀而加的注釋,可有可無,注意:一條指令中可以沒有標號、操作數和注釋,但是一定要有操作碼。,2019/10/30,4,3.3 指令系統的尋址方式,尋址方式:在指令中說明操作數所在地址的方法 單片機存儲數的地方有:片內ram(地址為00h7fh)、通用寄存器(r0r7)、特殊功能寄存器(地址在80hffh)以及片外ram,除此以外,程序存儲器還可以存放表格等數據。,2019/10/30,5,2019/10/30,6,-128127,2019/10/30,7,尋址問題,如果某條指令還有兩個操作數,例如mov a,data,它究竟屬于立即尋址還是寄存器尋址?,這要看以哪個操作數為參照物了。因為操作數分為源操作數(數據從哪來)和目的操作數(數據準備送到哪去),所以在討論上面這條指令時,對于源操作數data是“立即尋址”,但對于操作數a來說是“寄存器尋址”,2019/10/30,8,3.5 mcs-51指令系統分類介紹,符號指令的操作數中使用的符號 rn當前寄存器組r0r7 ri間接尋址的2個通用寄存器r1和r0 direct內部ram或sfr,表示對它們直接尋址 data立即數 rel相對轉移偏移量 bit內部ram或sfr中的位地址 /bit對bit取反 addr11,addr1611或16位目的地址 間址寄存器的前綴標志 (x)x中的內容 (x)由x尋址的單元中的內容,2019/10/30,9,1、數據傳送類,dptr,a+dptr,a+pc,movc,空間是256b,空間是64kb,2019/10/30,10,堆棧操作 push direct ;(sp)+1sp, (direct) sp pop direct ;(sp)direct,(sp)-1sp 字節交換 xch a, xchd a, ri,注意:順序,rn direct ri,2019/10/30,11,例題,在8051單片機片內ram中,已知(30h)38h,(38h)40h,(40h)48h,(48h)90h,寫出下列指令按順序執行后的結果,mov a,40h mov r1,a mov p1,0f0h mov r1,#30h mov dptr,1234h mov 40h,38h mov r1,30h mov 90h,r1 mov 48h,30h mov a,r1 mov p0,p1,; ( a)48h,; ( r1)48h,; ( p1)0f0h,; ( 90h)30h,; ( dptr ) 1234h,;(40h)40h,; ( r1)38h,; ( p1)38h,;(48h)38h,; ( a)40h,; ( p0)38h,執行后:(a)=40h, (dptr)=1234h, (30h)=38h, (38h)=40h, (40h)=40h, (48h)=38h, (p1)=38h, (p0)=38h,2019/10/30,12,例題,1、 (a)=85h,(dptr)=2100h,執行movc a,a+dptr 2、a=12h,ri=50h,(50h)=34h,則執行完指令xchd a,ri后的a,ri,50h,執行后a51h,a14h,ri50h,(50h)32h,2019/10/30,13,例題,mov a,0 mov r0,61h mov r0,0 xch a,50h xchd a,r0 mov 60h,a,;r061h,;(61h)00h,;a37h,(50h)00h,;a30h,(61h)07h,若執行下列程序前,(50h)37h,,;a00h,;(60h)30h,執行完本段程序后,(50h)00h,(a)30h,(r0)61h,(61h)07h,(60h)30h。既這段程序的作用是:將片內ram50h單元的8位數據中的低4位取出,送片內ram61h,而高4位取出,送片內ram60h,2019/10/30,14,2、算術操作類,(1) 加法類 add/addc a,#data direct rn ri,* 對cy、ac、ov、p 均有影響 * psw的組成,第6、7位不同時進位,則ov=1,2019/10/30,15,subb a,,#data direct rn ri,* 對cy、ac、ov、p 均有影響 * psw的組成,第6、7位不同時借位,則ov=1,(2) 減法類,2019/10/30,16,(3) 加1,減1類,inc dec * 影響p,a direct rn ri dptr,a direct rn ri,例:若a32h,(50h)f3h 則執行完下列指令后,a?,50h? inc a inc 50h,解:a33h,(50h)f4h,2019/10/30,17,(4) bcd碼調整,da a * 僅當兩個bcd碼相加時,才對其結果進行調整,該指令僅接在add/addc后 * 低半字節9或ac=1時,低4位+6,即(a)+6a 高半字節9或c=1時,高4位+6,即(a)+60ha,bcd碼(binary-coded decimal)或稱二-十進制代碼,是一種二進制的數字編碼形式,用二進制編碼的十進制代 碼。這種編碼形式利用了四個位元來儲存一個十進制的數碼,使二進制和十進制之間的轉換得以快捷的進行。逢9(1001)進1。,2019/10/30,18,(5) 乘除法,mul ab ;(a) (b) (b)(a) * 當乘積255時,ov=1。 div ab ;(a) (a)為商 ;(b) (b)為余數 * 當(b)=0時,ov=1。,a存低8位,b存高8位,2019/10/30,19,例題,1、設(a)=53h,(r0)=0fch執行指令:add a,r0 2、c=1,執行指令后a的內容 mov a,#20h mov b,a add a,b subb a,#10h,執行結果: (a) 01010011 +(r0) = +11111100 (a) 01001111 cy=1,ac=0,ov=0,p=1。,執行結果: (a)=2fh,2019/10/30,20,3、邏輯運算類,clr cpl rl rlc rr rrc swap,a,anl orl a, xrl,direct rn ri #data,anl orl direct, xrl,a #data,一個操作數,兩個操作數,帶進位,2019/10/30,21,例題,1、若a36h,(30h)=1eh,則執行下列指令后,a=?,(30h)=? anl a,0fh anl 30h,f0h,(a)06h,(30h)10h,執行完該指令后,(a)47h,則執行完該指令后,ac7h,cy0,2、若a8eh,則執行指令 rr a后,a?,3、上題中,c=1,執行rrc a后,a=?c=?,2019/10/30,22,4、控制轉移類,ajmp addr11 ;低11位地址變,高5位不變 sjmp rel ljmp addr16 ;16位地址 jmp a+dptr jz(jnz) rel ;對a的判斷 cjne a, direct, rel a, cjne rn, #data ri, djnz rn,rel djnz direct,rel,無條件跳轉,條件跳轉,addr11,addr16,rel都可用標號表示,間接地址作為下條指令的地址送入pc,2019/10/30,23,acall addr11 ;低11位地址變,高5位不變 lcall addr16 ;16位地址 ret reti nop,調用,子程序,注意: 在調用子程序時(sp)+1sp,(pcl) sp; (sp)+1sp,(pch) sp; 在子程序返回時 (sp) pch, (sp)-1sp; (sp) pcl, (sp)-1sp;,2019/10/30,24,例題,1、kwr:ajmp 100h kwr地址為1030h,執行后程序轉移到 ; kwr地址為3030h,執行后程序轉移到 ; 2、krd:sjmp pkrd pkrd地址為0123h,目的地址;krd值為0100h。 rel=0123h-(0100h+2)=21h 3、pm: mov r1,a rl a add a,r1 mov dptr,#pmtb jmp a+dptr pmtb: ljmp pm0 ;轉向命令0處理入口 ljmp pm1 ;轉向命令1處理入口 ljmp pm2 ;轉向命令2處理入口 ljmp pm3 ;轉向命令3處理入口,1100h,3100h,2019/10/30,25,例題,4、若(sp)=60h,標號ma值為1123h,子程序sub位于0345h,執行: ma:acall sub 結果: (sp)= , (61h)= , (62h)= , (pc)= 。 5、若(sp)=60h,標號strt值為0100h,子程序dir位于8100h,執行: strt:acall dir 結果: (sp)= , (61h)= , (62h)= , (pc)= 。 6、若(sp)=62h, (62h)=07h, (61h)=30h,執行: ret 結果: (sp)= , (pc)= 。,62h,25h,11h,1345h,62h,03h,01h,8100h,60h,0730h,2019/10/30,26,5、位操作類,mov c,bit mov bit ,c clr cpl c或bit setb anl c, bit或/bit orl jc(jnc) rel ;對c的操作 jb(jnb) bit, rel jbc bit, rel,位傳送,位條件轉移,2019/10/30,27,指令練習,rr34:clr a mov r0,#30h mo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電氣工程師資格證書考試復習計劃制定試題及答案
- 礦山開采施工隊合同協議
- 私人建房買賣合同協議
- 礦山石子運輸合同協議
- 砌石工勞動合同協議
- 直播經紀合同競業協議
- 知識產權原稿件合同協議
- 直播藝人簽約合同協議
- 礦砂開采勞務合同協議
- 禮品團購協議合同協議
- 陜西省建筑施工質量驗收技術資料統一用表
- 漁用配合飼料原料課件
- 夾層鋼結構施工方案鋼結構夾層施工方案
- JJG 861-2007酶標分析儀
- GB/T 9788-1988熱軋不等邊角鋼尺寸、外形、重量及允許偏差
- GB/T 28708-2012管道工程用無縫及焊接鋼管尺寸選用規定
- GB/T 22083-2008建筑密封膠分級和要求
- GB/T 11864-2008船用軸流通風機
- GB 2759-2015食品安全國家標準冷凍飲品和制作料
- 認識數字“5”課件
- 加速康復外科(ERAS)骨科患者疼痛知識、術后疼痛機體影響和陣痛原則方法
評論
0/150
提交評論