![微機(jī)原理匯編語言程序設(shè)計(jì)課件_第1頁](http://file4.renrendoc.com/view/18357acacb150e9260e92b17d845bf9b/18357acacb150e9260e92b17d845bf9b1.gif)
![微機(jī)原理匯編語言程序設(shè)計(jì)課件_第2頁](http://file4.renrendoc.com/view/18357acacb150e9260e92b17d845bf9b/18357acacb150e9260e92b17d845bf9b2.gif)
![微機(jī)原理匯編語言程序設(shè)計(jì)課件_第3頁](http://file4.renrendoc.com/view/18357acacb150e9260e92b17d845bf9b/18357acacb150e9260e92b17d845bf9b3.gif)
![微機(jī)原理匯編語言程序設(shè)計(jì)課件_第4頁](http://file4.renrendoc.com/view/18357acacb150e9260e92b17d845bf9b/18357acacb150e9260e92b17d845bf9b4.gif)
![微機(jī)原理匯編語言程序設(shè)計(jì)課件_第5頁](http://file4.renrendoc.com/view/18357acacb150e9260e92b17d845bf9b/18357acacb150e9260e92b17d845bf9b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
微機(jī)原理及應(yīng)用MCS-51單片機(jī)第七章匯編語言程序設(shè)計(jì)程序設(shè)計(jì)語言簡介程序設(shè)計(jì)的步驟和方法轉(zhuǎn)移指令和分支程序循環(huán)程序子程序及其調(diào)用程序設(shè)計(jì)舉例機(jī)器語言計(jì)算機(jī)唯一能夠識(shí)別和執(zhí)行的語言匯編語言“符號(hào)語言”,用指令助記符代表機(jī)器語言指令高級(jí)語言面向算法、過程、對(duì)象,類似自然語言,可移植性好,須經(jīng)解釋或翻譯后才能被執(zhí)行程序設(shè)計(jì)語言簡介匯編機(jī)器語言目標(biāo)程序匯編語言源程序程序設(shè)計(jì)的步驟分析課題,確定算法和思路根據(jù)算法和思路畫出流程圖根據(jù)流程圖編寫程序上機(jī)調(diào)試,排除錯(cuò)誤流程圖圖例起止框處理框判斷框連線開始結(jié)束XX+1YY-1F>5?YN程序設(shè)計(jì)的方法結(jié)構(gòu)化設(shè)計(jì)模塊化設(shè)計(jì)開發(fā)方法自底向上開發(fā)先底層開發(fā)自頂向下開發(fā)先頂層開發(fā)混合方法匯編起始偽指令格式:ORG<起始地址>功能:指定匯編源程序編譯成機(jī)器語言程序 的起始地址例如:ORG0000Hljmp0100HORG0100HStart:movA,#5Ahsjmp$END匯編結(jié)束偽指令格式:END[起始地址]功能:停止匯編示例:ORG0000Hljmp0100HORG0100HStart:movA,#5Ahsjmp$END movA,#0A5h定義字節(jié)偽指令格式:<標(biāo)號(hào):>DB<項(xiàng)或項(xiàng)表>功能:把項(xiàng)或項(xiàng)表的數(shù)值存入從標(biāo)號(hào)開始的連續(xù)單元,其中項(xiàng)或項(xiàng)表可以是一個(gè)字節(jié)、數(shù)或以引號(hào)括起來的字符串。
ORG1000HDat:DB11h,22h,’A’,”BCD”END定義位偽指令格式:<符號(hào)>BIT<位地址>功能:定義位變量地址UBIT20H.0VBIT20H.1WBIT20H.2XBIT20H.3YBIT20H.4ZBIT20H.5QBIT20H.6賦值偽指令格式:<符號(hào)>EQU<變量值>功能:定義符號(hào)變量值
XEQU05HYEQU06H匯編語言格式指令格式:標(biāo)號(hào):助記符
參數(shù),參數(shù);注釋偽指令格式:名字定義符參數(shù),…,參數(shù);注釋轉(zhuǎn)移指令和分支程序控制轉(zhuǎn)移類指令無條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令比較轉(zhuǎn)移指令循環(huán)轉(zhuǎn)移指令分支程序用cjne實(shí)現(xiàn)三分支用jmp@A+DPTR實(shí)現(xiàn)多分支無條件轉(zhuǎn)移指令絕對(duì)無條件轉(zhuǎn)移指令長轉(zhuǎn)移指令短轉(zhuǎn)移指令間接轉(zhuǎn)移指令格式:ajmpaddr11;功能:無條件轉(zhuǎn)向指令中提供的11位地址。
轉(zhuǎn)移范圍:2K,PC15~11不變例:ajmpStart絕對(duì)無條件轉(zhuǎn)移指令a10a9a800001a7a6a0短轉(zhuǎn)移指令格式:sjmprel;(PC)(PC)+2,(PC)(PC)+rel功能:相對(duì)轉(zhuǎn)向指令,rel為一字節(jié)補(bǔ)碼形式的相對(duì)偏移量.轉(zhuǎn)移范圍:-128~+127例:sjmpLoop
sjmp$間接轉(zhuǎn)移指令(散轉(zhuǎn))格式:jmp@A+DPTR;(PC)(A)+(DPTR)功能:根據(jù)A與DPTR的內(nèi)容轉(zhuǎn)移,轉(zhuǎn)移的目標(biāo)地址可變.例:movDPTR,JMP_TBLjmp@A+DPTRJMP_TBL:ajmpLable1ajmpLable2..
條件轉(zhuǎn)移指令判零轉(zhuǎn)移指令判位變量轉(zhuǎn)移指令判位變量并清零轉(zhuǎn)移指令判布爾累加器C轉(zhuǎn)移指令判位變量轉(zhuǎn)移指令格式:jbbit,rel;rel:8位相對(duì)偏移量功能:(PC)(PC)+3,
IF(bit)=1THEN(PC)(PC)+relELSEgo
on格式:jnbbit,rel;rel:8位相對(duì)偏移量功能:(PC)(PC)+3,
IF(bit)=0THEN(PC)(PC)+relELSEgo
on判位變量并清零轉(zhuǎn)移指令格式:jbcbit,rel;rel:8位相對(duì)偏移量功能:(PC)(PC)+3,
IF(bit)=1THEN(PC)(PC)+reland(bit)=0ELSEgo
on判布爾累加器C轉(zhuǎn)移指令格式:jcrel;rel:8位相對(duì)偏移量功能:(PC)(PC)+2,
IF(C)=1THEN(PC)(PC)+relELSEgo
on格式:jncrel;rel:8位相對(duì)偏移量功能:(PC)(PC)+2,
IF(C)=0THEN(PC)(PC)+relELSEgo
on循環(huán)轉(zhuǎn)移指令格式:djnzRn,rel;rel:8位相對(duì)偏移量功能:(PC)(PC)+2,(Rn)(Rn)-1
IF(Rn)0THEN(PC)(PC)+relELSEgo
on格式:djnzdirect,rel;rel:8位相對(duì)偏移量功能:(PC)(PC)+3,
IF(direct)0THEN(PC)(PC)+relELSEgo
on用cjne實(shí)現(xiàn)三分支
cjneR0,#0,MP1movR1,#0sjmpMP3MP1:movA,R0jnbACC.7,MP2movR1,#0FFhsjmpMP3MP2:movR1,#01hMP3:sjmp$y=開始結(jié)束y0y-1y+1x=0?x<0?YYNNR0xR1y用jmp@A+DPTR實(shí)現(xiàn)多分支KeyB5:movDPTR,#JMPTBLclrCsubbA,#0AhrlAJMP@A+DPTRJMPTBL:ajmpAAAajmpBBBajmpCCCajmpDDD循環(huán)程序循環(huán)程序結(jié)構(gòu)單循環(huán)程序例1:多字節(jié)求和例2:內(nèi)部數(shù)據(jù)區(qū)清零多重循環(huán)程序例3:50ms延時(shí)程序循環(huán)程序結(jié)構(gòu)循環(huán)初始化:循環(huán)控制變量的初始化、數(shù)據(jù)變量的初始化循環(huán)工作部分:循環(huán)主體,重復(fù)執(zhí)行的計(jì)算循環(huán)控制部分:循環(huán)變量的修改、終止控制例1:多字節(jié)求和ORG0000HSUM:movR3,#0movR4,#0movR0,#50HmovR2,#5Loop:movA,R4addA,@R0movA,R4incR0clrAaddcA,R3movR3,AdjnzR2,Loopsjmp$END例2:內(nèi)部數(shù)據(jù)區(qū)清零
ORG0000HZero:movR0,#30HmovR7,#10movA,#00HLoop:mov@R0,AincR0djnzR7,Loopsjmp$END例3:50ms延時(shí)程序Delay:movR7,#200Del1:movR6,#123nopDel2:djnzR6,Del2djnzR7,Del1sjmp$;1us;1us;1us;2us;2us子程序及其調(diào)用子程序調(diào)用與返回指令子程序設(shè)計(jì)方法子程序的調(diào)用過程與子程序嵌套調(diào)用過程中的參數(shù)傳遞通過寄存器傳遞通過堆棧傳遞通過數(shù)據(jù)指針(DPTR)傳遞子程序調(diào)用與返回指令絕對(duì)調(diào)用指令acalladdr11;(PC)(PC)+2,(SP)(SP)+1((SP))(PC0~7),(SP)(SP)+1,((SP))(PC8~15),(PC0~10)addr11,(PC11~15)
不變lcalladdr16返回指令ret;(PC8~15)((SP)),(SP)(SP)-1(PC0~7)((SP)),(SP)(SP)-1舉例:子程序調(diào)用與返回指令舉例ORG0000HStart:movA,#0acallSub1movA,#0lcallSub2sjmpSub1:incAretSub2:decAretEND子程序設(shè)計(jì)方法格式:;子程序名;子程序功能:;入口參數(shù):;出口參數(shù):;占用資源:子程序名:...子程序的調(diào)用過程與子程序嵌套主程序要使用子程序時(shí)通過call指令子程序執(zhí)行完后通過ret指令返回防止自然進(jìn)入子程序和自然退出子程序子程序嵌套正在執(zhí)行主程序CPU正在執(zhí)行子程序SubACPU正在執(zhí)行子程序SubB通過寄存器傳遞方法簡單、參數(shù)有限例:
ORG0000HMain:movR0,#40hmovR7,#10HlcallZerosjmp$;子程序名:Zero;功能:對(duì)內(nèi)部數(shù)據(jù)區(qū)清零;入口參數(shù):R0內(nèi)部數(shù)據(jù)區(qū);R7內(nèi)部數(shù)據(jù)區(qū)長度;出口參數(shù):無;占用資源:A,R0,R7Zero:clrALoop:mov@R0,AincR0djnz,R7,Loopret通過堆棧傳遞ORG0000HMain:mov70H,#40hmov71H,#10Hpush70hpush71hlcallZerosjmp$;子程序名:Zero;功能:對(duì)內(nèi)部數(shù)據(jù)區(qū)清零;入口參數(shù):70內(nèi)部數(shù)據(jù)區(qū)地址;71h內(nèi)部數(shù)據(jù)區(qū)長度;出口參數(shù):無;占用資源:A,R0,R7,70h,71hZero:popDPHpopDPLpop07h;R7pop00h;R0clrALoop:mov@R0,AincR0djnz,R7,LooppushDPLpushDPHret通過數(shù)據(jù)指針(DPTR)傳遞將待傳遞參數(shù)緊跟在調(diào)用指令之后
ORG0000HMain:nopacallPrintDB:”THISISANEXAMPLE”DB:0AH,0DH,00HNext:nopsjmp$ENDPrint:popDPHpopDPLPPP1:movA,#00hmovcA,@A+DPTRincDPTRjzPPPEndPPP2:movP1,AsjmpPPP1PPPEnd:jmp@A+DPTR程序設(shè)計(jì)舉例算術(shù)運(yùn)算程序?多字節(jié)加法?多字節(jié)BCD碼減法邏輯運(yùn)算程序
?數(shù)據(jù)的拼裝?
ASCII碼二進(jìn)制查表程序
?以PC為指針?以DPTR為指針散轉(zhuǎn)程序?轉(zhuǎn)移指令表?地址偏移量表?轉(zhuǎn)向地址表多字節(jié)加法2F5BA7C3H(43424140)H+14DF35B8H(53525150)H
ORG0000HJia:movR0,#40hmovR1,#50hmovR2,#4
clrCJia1:movA,@R1addcA,@R0mov@R0,AincR0incR1
djnzR2,Jia1movF0,Csjmp$END多字節(jié)BCD碼減法99887766H(43424140)H-44556677H(53525150)H
ORG0000HJia:movR0,#40hmovR1,#50hmovR2,#4
clrCJia1:movA,#9AhsubbA,@R1addA,@R0mov@R0,A
incR0incR1
djnzR2,Jia1movF0,Csjmp$END數(shù)據(jù)的拼裝x7x6x5x4x3x2x1x0(20H)y7y6y5y4y3y2y1y0(21H)y2y0y0x4x3x2x1x0(30H)
ORG0000HStart:mov30h,20hanl30h,#00011111bmovA,21hswapArlAanlA,#11100000borl30h,Asjmp$ENDASCII碼二進(jìn)制
ORG0000HAtoH:movA,#’A’clrCsubbA,#30hcjneA,#0Ah,NEQsjmpBIGNEQ:jcAENDBIG:subbA,#07hAEND:sjmp$END
ORG0000HHtoA:movA,#0BhaddA,#90hdaAaddcA,#40hdaAsjmp$END以PC為指針查表程序TB1:movA,R2addA,R2movR3,AaddA,#06HmovcA,@A+PCxchA,R3addA,#03HmovcA,@A+PCmovR4,Asjmp$TAB1:DW1520,3721,4264DW7850,3483,32657DW883,9943,1000DW4051,6785,8931DW4468,5871DW13284,27808END以DPTR為指針查表程序LTB2:movDPTR,#TAB2movA,R3clrCrlcAmovR3,AxchA,R2rlcAxchR2,AaddA,DPLmovDPL,AmovA,DPHaddcA,R2movDPH,AclrAmovcA,@A+DPTRmovR2,AclrAincDPTRmovcA,@A+DPTRmovR3,AretTAB2:DW......使用轉(zhuǎn)移指令表的散轉(zhuǎn)程序
ORG0000HmovR2,#2Main:movDPTR,#TAJ1movA,R2addA,R2jncNADDincDPTRNADD:jmp@A+DPTRTBJ1:ajmpPRG0ajmpPRG1ajmpPRG2ajmpPRG3sjmp$PRG0:movA,#0sjmpHaltPRG1:movA,#1sjmpHaltPRG2:movA,#2sjmpHaltPRG3:movA,#3Halt:sjmp$END使用地址偏移量表的散轉(zhuǎn)程序JMP3:movR2,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年在線雜志訂閱服務(wù)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年微生物生態(tài)失調(diào)與疾病關(guān)聯(lián)研究行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年壇口封口效率提升方案企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年戶外通訊基站備用電源行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025年濃縮料項(xiàng)目可行性研究報(bào)告
- 2025-2030年地下水位動(dòng)態(tài)監(jiān)測網(wǎng)絡(luò)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年在線棋類大師講座企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年口紅自動(dòng)化包裝設(shè)備行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年戶外教育營地電力集成行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 賣山合同范本
- 布草類送洗記錄表
- 三年級(jí)數(shù)學(xué)口算題300道 (可直接打印)
- 益生芽孢桿菌體外抑菌活性及耐藥性研究
- 2023數(shù)聯(lián)網(wǎng)(DSSN)白皮書
- 消防設(shè)施操作和維護(hù)保養(yǎng)規(guī)程
- 反面典型案例剖析材料范文(通用6篇)
- 社區(qū)養(yǎng)老驛站運(yùn)營方案模版
- 鐵道概論(高職)PPT完整全套教學(xué)課件
- 餐飲行業(yè)品牌介紹商務(wù)宣傳PPT模板
- 關(guān)于中小企業(yè)人才流失的調(diào)查分析報(bào)告畢業(yè)論文
- 教科版五年級(jí)下冊(cè)科學(xué)同步練習(xí)全冊(cè)
評(píng)論
0/150
提交評(píng)論