![第講匯編程序的編寫_第1頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/10/9fe0162a-0ee3-416a-8b6e-df328c43d195/9fe0162a-0ee3-416a-8b6e-df328c43d1951.gif)
![第講匯編程序的編寫_第2頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/10/9fe0162a-0ee3-416a-8b6e-df328c43d195/9fe0162a-0ee3-416a-8b6e-df328c43d1952.gif)
![第講匯編程序的編寫_第3頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/10/9fe0162a-0ee3-416a-8b6e-df328c43d195/9fe0162a-0ee3-416a-8b6e-df328c43d1953.gif)
![第講匯編程序的編寫_第4頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/10/9fe0162a-0ee3-416a-8b6e-df328c43d195/9fe0162a-0ee3-416a-8b6e-df328c43d1954.gif)
![第講匯編程序的編寫_第5頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/10/9fe0162a-0ee3-416a-8b6e-df328c43d195/9fe0162a-0ee3-416a-8b6e-df328c43d1955.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第5講:匯編程序的編寫電氣工程系電氣工程系趙志衡趙志衡Tel:86413623E-mail:MCS-51 MCS-51 單單 片片 機(jī)機(jī) 原原 理理 及及 設(shè)設(shè) 計(jì)計(jì)2課程主要內(nèi)容 匯編程序的基本知識(shí) 常用匯編程序設(shè)計(jì)方法MCS-51 MCS-51 匯匯 編編 程程 序序 的的 編編 寫寫 3匯編程序的基本知識(shí)匯編指令的基本結(jié)構(gòu):匯編指令的基本結(jié)構(gòu):標(biāo)號(hào):操作碼助記符 第1操作數(shù),第2操作數(shù);注釋Loop1: mov a, #0ffh; 累加器累加器A賦值為賦值為ff mov a,#10h mov a,#16 標(biāo)號(hào):表示該指令所在的符號(hào)地址,一般由字母和數(shù)字組成,標(biāo)號(hào):表示該指令所在的符號(hào)地
2、址,一般由字母和數(shù)字組成, 第一位為字母,其余位為字母、數(shù)字任選。第一位為字母,其余位為字母、數(shù)字任選。操作碼助記符、第操作碼助記符、第1操作數(shù)和操作數(shù)和 第第2操作數(shù):指令的核心部分。對(duì)于某操作數(shù):指令的核心部分。對(duì)于某些指令可能不存在完整的兩個(gè)操作數(shù)。些指令可能不存在完整的兩個(gè)操作數(shù)。注釋:是由用戶加入的文本,對(duì)匯編程序不起任何作用,只是方便注釋:是由用戶加入的文本,對(duì)匯編程序不起任何作用,只是方便閱讀。閱讀。 * 第第1操作數(shù)又稱目的操作數(shù),第操作數(shù)又稱目的操作數(shù),第2操作數(shù)又稱源操作數(shù)操作數(shù)又稱源操作數(shù) * 51不區(qū)分大小寫不區(qū)分大小寫4匯編程序的基本知識(shí) 匯編語言的構(gòu)成匯編語言的構(gòu)成
3、 指令性語句(指令性語句(51指令系統(tǒng))指令系統(tǒng)) 指示性語句:偽指令指示性語句:偽指令 偽指令:偽指令不屬于偽指令:偽指令不屬于MCS51指令系統(tǒng)中的指令,指令系統(tǒng)中的指令,它是程序員發(fā)給匯編程序的命令,也稱為匯編程序它是程序員發(fā)給匯編程序的命令,也稱為匯編程序控制命令??刂泼?。 程序設(shè)計(jì)流程程序設(shè)計(jì)流程5常用的部分偽指令 ORG END EQU DB 6偽指令簡(jiǎn)介 ORG 起點(diǎn)指令 ORG addr16 org 0000h ORG指令用于指明程序代碼或數(shù)據(jù)塊在存儲(chǔ)器中的起始地址。addr16代表一個(gè)16位地址,即程序或數(shù)據(jù)塊的首地址。 EQU 等值指令 符號(hào) EQU 表達(dá)式 aaa eq
4、u 30h mov a,aaa mov a,#aaa EQU指令用于為程序中的任意符號(hào)賦值。 程序中的常量通常可以用符號(hào)代替,便于修改。 主程序前要先用equ指令為常量符號(hào)賦值。7偽指令簡(jiǎn)介 DB 定義字節(jié)指令 標(biāo)號(hào): DB 數(shù)據(jù)列表 DB指令用于定義字節(jié)型數(shù)據(jù)或數(shù)據(jù)串,并將數(shù)據(jù)作為常數(shù)填入指定的存儲(chǔ)器單元中。 END 結(jié)束匯編指令 標(biāo)號(hào):END END指令置于程序結(jié)尾處,作為源程序結(jié)束的標(biāo)志。8程序設(shè)計(jì)流程(1)明確要求和要達(dá)到的目的(2)確定解決問題的計(jì)算方法和步驟(3)畫出流程圖(4)分配內(nèi)存地址(5)按流程圖編寫程序(6)上機(jī)匯編、調(diào)試、修改直至最后確定源程序9程序結(jié)構(gòu):程序結(jié)構(gòu): 順
5、序結(jié)構(gòu)順序結(jié)構(gòu) 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 分支結(jié)構(gòu)分支結(jié)構(gòu) 子程序結(jié)構(gòu)子程序結(jié)構(gòu) 復(fù)合結(jié)構(gòu):多種程序結(jié)構(gòu)的組合復(fù)合結(jié)構(gòu):多種程序結(jié)構(gòu)的組合10簡(jiǎn)單程序(順序結(jié)構(gòu)) 大量使用數(shù)據(jù)傳送類指令 注意正確選擇指令以提高效率11將20H單元內(nèi)的壓縮BCD碼變換成相應(yīng)ASCII碼放在21H、22H中Org 0hLjmp 2000hORG 2000HMOV R0,#22HMOV R0,#00MOV A,20HXCHD A,R0ORL 22H,#30HSWAP AORL A,#30HMOV 21H,Az:SJMP zEND15BYTE ,11TMOV A,20HMOV B,#10HDIV ABORL B,#30HMO
6、V 22H,BORL A,#30HMOV 21H,ASJMP $END15BYTE 14T12BCD碼與ASCII碼對(duì)照 030H 131H 232H 333H 434H 535H 636H 737H 838H 939H13分支程序 根據(jù)程序要求無條件或有條件改變程序執(zhí)行的順序,選擇程序的流向 特點(diǎn):程序中含有轉(zhuǎn)移類指令 關(guān)鍵:正確選用轉(zhuǎn)移指令14正確運(yùn)用轉(zhuǎn)移指令無條件分支程序 程序設(shè)計(jì)者事先設(shè)計(jì)好的 LJMP有條件分支程序根據(jù)已經(jīng)執(zhí)行的程序中標(biāo)志位、A或內(nèi)部RAM的某些位的結(jié)果決定程序的流向 JZ/JNZ、CJNE、DJNZ、位控制轉(zhuǎn)移類指令(JC、JNC、JB、JNB、JBC)15注 意
7、使用條件轉(zhuǎn)移指令形成分支前使用條件轉(zhuǎn)移指令形成分支前一定保證供條件轉(zhuǎn)移指令進(jìn)行判別的條件是有意一定保證供條件轉(zhuǎn)移指令進(jìn)行判別的條件是有意義的。義的。JC LOOP 正確選定所用的轉(zhuǎn)移條件及轉(zhuǎn)移目標(biāo)地正確選定所用的轉(zhuǎn)移條件及轉(zhuǎn)移目標(biāo)地址址16循環(huán)程序 循環(huán)初始化 循環(huán)次數(shù)計(jì)數(shù)器、工作寄存器設(shè)初值等 循環(huán)體 盡量簡(jiǎn)練 循環(huán)控制 檢查結(jié)束條件,及時(shí)退出循環(huán)17注意循環(huán)嵌套允許外重循環(huán)嵌套內(nèi)重循環(huán)循環(huán)體不能交叉不能從循環(huán)程序外部跳入循環(huán)程序內(nèi)部18例:10個(gè)數(shù)據(jù)排序 常用氣泡法(兩兩比較法):它先使E0和E1進(jìn)行比較,若E0E1,則兩數(shù)交換,否則不動(dòng),然后E1和E2進(jìn)行比較,按同樣的原則,決定是否交換
8、,一直比較下去,最后完成E8和E9的比較及交換。經(jīng)過10-1次比較后,E9位置必然得到數(shù)組中的最大值。猶如一個(gè)氣泡冒到水頂,如此循環(huán)即可完成排序。 實(shí)驗(yàn)中采用的循環(huán)結(jié)束判據(jù):一輪比較中沒有數(shù)據(jù)交換,排序結(jié)束。19 將將RAM地址為地址為50H59H中的中的10個(gè)數(shù)據(jù)個(gè)數(shù)據(jù),從小到大進(jìn)行排序從小到大進(jìn)行排序 (實(shí)驗(yàn)實(shí)驗(yàn)1)Size equ 10Change equ 00HSort:mov rO, #50Hmov r7, #Size-lclr ChangeGoon:Mov a, r0Inc r0mov B, r0cjne a, B, NotEqualsjmp NextNotEqual:jc Nex
9、tsetbChangexcha, r0decrOxcha, r0incrONext:Djnz r7, GoonJb Change, SortLjmp $end20查表程序的設(shè)計(jì)主要用于 復(fù)雜代碼轉(zhuǎn)換顯示 數(shù)據(jù)補(bǔ)償:傳感器補(bǔ)償 復(fù)雜函數(shù)計(jì)算: Y=SIN(X)21查表指令 在51中建議使用的查表指令為 MOVC A,A+DPTR 最好不用 MOVC A,A+PC !22查表指令的使用例 求09的平方 ORG 0000H LJMP A1 ORG 0080HA1: NOP NOP MOV SP,#60H MOV DPTR,#2000H MOV A,#03H;將09之內(nèi)任意一個(gè)數(shù)賦值給A。 MOVC
10、A,A+DPTRA2: SJMP A2 ORG 2000H DB 00h,01h,04h,09h,10h,19h,24h,31h,40h,51h END23查表指令的使用例 求09的平方 ORG 0000H LJMP A1 ORG 0080HA1: NOP NOP MOV SP,#60H MOV DPTR,#tab MOV A,#03H;將09之內(nèi)任意一個(gè)數(shù)賦值給A。 MOVC A,A+DPTRA2: SJMP A2Tab: DB 00h,01h,04h,09h,10h,19h,24h,31h,40h,51h END24子程序的設(shè)計(jì) 子程序和運(yùn)算程序是程序設(shè)計(jì)的兩大支柱。 子程序的概念:完成確
11、定任務(wù),并能為其他程序反復(fù)調(diào)用的程序段。要求子程序在結(jié)構(gòu)上具有通用性和獨(dú)立性。 例如:代碼轉(zhuǎn)換,運(yùn)算程序等。25子程序編寫的注意事項(xiàng) 子程序調(diào)用:LCALL 子程序返回:RET 子程序嵌套注意的問題:嵌套深度與堆棧區(qū)大小的問題. 子程序第一條必須有標(biāo)號(hào).正確傳遞參數(shù):入口參數(shù)和出口參數(shù).注意現(xiàn)場(chǎng)的保護(hù)和恢復(fù)26子程序的參數(shù)傳遞 (方法很多) 通過寄存器傳遞MAIN: mov r0,#30Hmov r7,#0AHlcall SUBR mov b,r1 .SUBR: push a push psw mov a,r7 clr c subb a,r0 mov r1,a pop psw pop a ret end減法子程序subr,入口參數(shù)r7、r0;出口參數(shù)r1。功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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合同模板中央空調(diào)銷售合同范本
- 北京億歐網(wǎng)盟科技有限公司-新質(zhì)生產(chǎn)力系列:2025中國(guó)消費(fèi)級(jí)AI硬件價(jià)值洞察及GEEK50榜單報(bào)告
- 2024年三年級(jí)道德與法治下冊(cè) 第四單元 多樣的交通和通信 11四通八達(dá)的交通第二課時(shí)說課稿 新人教版
- 2024年秋七年級(jí)地理上冊(cè) 第五章 世界的發(fā)展差異 5.2《國(guó)際經(jīng)濟(jì)合作》說課稿2 (新版)湘教版
- 9 古代科技 耀我中華(說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治五年級(jí)上冊(cè)
- 養(yǎng)殖設(shè)備銷售合同范例
- 2024年一年級(jí)道德與法治上冊(cè) 第16課 我有一雙明亮的眼睛說課稿 未來版
- 9 種豆子 說課稿-2023-2024學(xué)年科學(xué)二年級(jí)下冊(cè)冀人版
- 出售電廠鍋爐合同范例
- 人員轉(zhuǎn)公司合同范例
- 投標(biāo)廢標(biāo)培訓(xùn)
- 腦卒中課件完整版本
- 藥房保潔流程規(guī)范
- 電子信息工程基礎(chǔ)知識(shí)單選題100道及答案解析
- 血液透析器課件
- 吊車司機(jī)雇傭合同協(xié)議書
- 新華師大版八年級(jí)下冊(cè)初中數(shù)學(xué)全冊(cè)課時(shí)練(課后作業(yè)設(shè)計(jì))
- 致命性大出血急救專家共識(shí)
- 住院成人高血糖患者血糖監(jiān)測(cè)醫(yī)護(hù)協(xié)議處方共識(shí)
- JTS-169-2017碼頭附屬設(shè)施技術(shù)規(guī)范
- DL-T5816-2020分布式電化學(xué)儲(chǔ)能系統(tǒng)接入配電網(wǎng)設(shè)計(jì)規(guī)范
評(píng)論
0/150
提交評(píng)論