




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章匯編語(yǔ)言程序設(shè)計(jì)
算術(shù)運(yùn)算程序設(shè)計(jì)匯編語(yǔ)言程序的結(jié)構(gòu)
匯編語(yǔ)言概述
非數(shù)值操作程序設(shè)計(jì)4.1匯編語(yǔ)言概述一、匯編語(yǔ)言與匯編的概念機(jī)器語(yǔ)言:用指令的二進(jìn)制碼編寫(xiě)的程序CPU能識(shí)別,執(zhí)行速度快難記、難讀、難寫(xiě)、難查匯編語(yǔ)言:用指令助記符編寫(xiě)的程序機(jī)器語(yǔ)言匯編語(yǔ)言翻譯(匯編)源程序目標(biāo)程序匯編語(yǔ)言特點(diǎn)程序精練,執(zhí)行速度快,適合于實(shí)時(shí)控制處理接口技術(shù)、中斷技術(shù)很方便需要熟悉硬件,編程有一定難度高級(jí)語(yǔ)言面向?qū)ο蠛蛦?wèn)題,接近自然語(yǔ)言,易學(xué)易用獨(dú)立于機(jī)器一條語(yǔ)句可對(duì)應(yīng)一段匯編語(yǔ)言程序既然有了高級(jí)語(yǔ)言,為什么還要學(xué)習(xí)匯編語(yǔ)言?二、匯編語(yǔ)言源程序的格式MCS-51的匯編語(yǔ)句采用典型的四分段格式:標(biāo)號(hào)段操作碼段操作數(shù)段注釋段標(biāo)號(hào)的構(gòu)成原則是什么?注釋段起什么作用?三、偽指令起始指令:ORG匯編結(jié)束:END─指導(dǎo)匯編過(guò)程的命令定義字節(jié):DB──定義若干個(gè)8位數(shù)據(jù)例:ORG3000HTABL:DB30H,31H,’2’,’A’匯編后:TABL=3000H
(3000H)=30H, (3001H)=31H, (3002H)=32H, (3003H)=41H,定義字:DW──定義若干個(gè)16位數(shù)據(jù)匯編后:TAB=3010H
(3010H)=12H
(3011H)=34H
(3012H)=00H
(3013H)=56H
例:
ORG3010HTAB:DW1234H,56H賦值:EQU──將一個(gè)數(shù)或符號(hào)賦給變量位地址賦值:BIT四、源程序的匯編第一次匯編:查出機(jī)器碼,并對(duì)應(yīng)地址列表第二次匯編:計(jì)算偏移量rel什么叫匯編?有幾種匯編的方法?1.手工匯編rel=目標(biāo)地址-源地址-3(對(duì)3字節(jié)指令)2.機(jī)器匯編利用專用軟件(稱為匯編程序),由計(jì)算機(jī)完成匯編工作。經(jīng)過(guò)兩次掃描過(guò)程:第一次掃描:檢查語(yǔ)法錯(cuò)誤,確定符號(hào)名字;建立使用的全部符號(hào)名字表;每一符號(hào)名字后跟一對(duì)應(yīng)值(地址或數(shù))。第二次掃描:是在第一次掃描基礎(chǔ)上,將符號(hào)地址轉(zhuǎn)換成地址(代真);利用操作碼表將助記符轉(zhuǎn)換成相應(yīng)的目標(biāo)碼。
4.2匯編語(yǔ)言程序的結(jié)構(gòu)一、匯編語(yǔ)言程序設(shè)計(jì)步驟1.分析題意,明確要求2.建立數(shù)學(xué)模型并確定算法3.畫(huà)程序流程圖程序流程圖是解題步驟及算法的具體化直觀清晰地體現(xiàn)了程序的設(shè)計(jì)思路4.分配內(nèi)存單元確定程序與數(shù)據(jù)的存放地址熟悉所用單片機(jī)指令系統(tǒng)所編程序要正確并具有可讀性5.編寫(xiě)程序6.程序優(yōu)化縮短程序長(zhǎng)度加快運(yùn)行速度節(jié)省存儲(chǔ)單元7.上機(jī)調(diào)試檢驗(yàn)源程序的正確性使用開(kāi)發(fā)系統(tǒng)利用仿真軟件二、順序程序結(jié)構(gòu)
根據(jù)ASCII碼表,十進(jìn)制數(shù)0~9的ASCII碼和它的BCD碼之間僅相差30H,本題需要把一個(gè)字節(jié)的兩位BCD數(shù)進(jìn)行拆分,然后分別和30H拼接,即得到相應(yīng)的ASCII碼。程序按順序執(zhí)行,無(wú)分支,無(wú)轉(zhuǎn)移例1:將壓縮BCD碼轉(zhuǎn)換成ASCII碼源程序XCHD是什么指令?SWAP是什么指令?三、分支程序結(jié)構(gòu)具有判斷和轉(zhuǎn)移功能的程序【例4-4】求符號(hào)函數(shù)Y的值源程序EQUEQUJNBACC.7,POSI是什么指令?四、循環(huán)程序結(jié)構(gòu)例1:已知數(shù)塊長(zhǎng)度L,求累加和已知內(nèi)部RAM的BLOCK單元開(kāi)始有一無(wú)符號(hào)數(shù)據(jù)塊,塊長(zhǎng)在LEN單元。請(qǐng)編出求數(shù)據(jù)塊中各數(shù)累加和、并存入SUM單元的程序解法一:先判斷后處理程序中INCR2指令有什么用途?解法二:先處理后判斷EQUEQUEQU例2:查找最大值算法:逐個(gè)比較,大者送入MAX單元查找最大值源程序1EQUEQUEQUJCNEXT是什么指令?五、主程序調(diào)用子程序結(jié)構(gòu)序絕對(duì)調(diào)用:ACALLaddr11長(zhǎng)調(diào)用:
LCALLaddr16子程序返回:RET例:將一批壓縮BCD碼轉(zhuǎn)換成ASCII碼
編寫(xiě)程序,把以R0所指為起始地址的壓縮BCD碼轉(zhuǎn)換為ASCII碼,存于以R1所指為起始地址的片內(nèi)RAM中,已知BCD數(shù)的字節(jié)數(shù)在R2中
BCD碼與ASCII碼之間是什么關(guān)系呢?
BCD碼ASCII碼
0 30H 1 31H 2 32H 3 33H 4 34H 5 35H 6 36H 7 37H 8 38H 9 39H(A)+30H[]ASCII將其編成子程序,如下所示
ORG 0000HSTART:MOV A, @R0 ACALLGT ;調(diào)用轉(zhuǎn)換子程序
MOV @R1,A ;存轉(zhuǎn)換結(jié)果
INC R1 MOV A, @R0 ;再取原BCD碼字節(jié)
SWAPA ;高4位交換到低4位
ACALLGT ;調(diào)用轉(zhuǎn)換子程序
MOV @R1,A INC R0 INC R1 DJNZ R2, START;未完繼續(xù)
HRER:SJMP HERE GT: ANL A, #0FH ;屏蔽高4位
ADD A, #30H ;求相應(yīng)的ASCII碼
RET END
然后再編寫(xiě)主程序,調(diào)用下面子程序?qū)崿F(xiàn)本題要求下次課前請(qǐng)預(yù)習(xí)4.3-4.4節(jié),并思考下列問(wèn)題欲將外部RAM起始地址為DATA的數(shù)據(jù)塊(設(shè)數(shù)據(jù)塊長(zhǎng)度為20)傳送到內(nèi)部RAM起始地址為30H的存儲(chǔ)區(qū),應(yīng)如何編程?已知以外部RAM2000H為起始地址的存儲(chǔ)區(qū)有20個(gè)有符號(hào)數(shù),要求把正數(shù)和正零取出來(lái)存放到內(nèi)部RAM以20H為起始地址的存儲(chǔ)區(qū)(負(fù)數(shù)和負(fù)零不作
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑鑒定報(bào)告范文
- 監(jiān)理實(shí)訓(xùn)周報(bào)告總結(jié)范文
- 飛行訓(xùn)練中心租賃合同
- 二零二五年度智能家居房屋土地轉(zhuǎn)讓及系統(tǒng)集成合同
- 二零二五年度紅棗產(chǎn)業(yè)風(fēng)險(xiǎn)管理與保險(xiǎn)合作合同
- 2025年度電鍍加工技術(shù)專利許可合同
- 茶店投資合作協(xié)議-2025年度茶葉品牌連鎖經(jīng)營(yíng)策略
- 二零二五年度手店面轉(zhuǎn)租合同:高端化妝品店轉(zhuǎn)租合同
- 2025年度魚(yú)塘承包合同轉(zhuǎn)讓及漁業(yè)科技研發(fā)合作
- 2025年度旅行社與旅游住宿設(shè)施合作框架協(xié)議
- 三、膽石癥課件
- 學(xué)生作業(yè)情況登記表模板(可打印)
- 兔子坡(閱讀課上課課件)
- 高中數(shù)學(xué)《立體幾何》教材分析及教學(xué)建議
- 八年級(jí)英語(yǔ)初中英語(yǔ)閱讀理解閱讀專項(xiàng)練習(xí)試卷附答案
- 固定資產(chǎn)清查盤(pán)點(diǎn)明細(xì)表
- 人教版八年級(jí)數(shù)學(xué)下冊(cè)課件【全冊(cè)】
- 物聯(lián)網(wǎng)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
- 1例妊娠糖尿病的個(gè)案護(hù)理
- 光伏發(fā)電職業(yè)病危害預(yù)評(píng)價(jià)方案方案
- 財(cái)務(wù)報(bào)表涉稅分析
評(píng)論
0/150
提交評(píng)論