MCS-51單片機 第4章 匯編語言程序設(shè)計.ppt

MCS-51單片機 第4章 匯編語言程序設(shè)計.ppt

ID:55829339

大?。?28.50 KB

頁數(shù):41頁

時間:2020-06-09

MCS-51單片機 第4章  匯編語言程序設(shè)計.ppt_第1頁
MCS-51單片機 第4章  匯編語言程序設(shè)計.ppt_第2頁
MCS-51單片機 第4章  匯編語言程序設(shè)計.ppt_第3頁
MCS-51單片機 第4章  匯編語言程序設(shè)計.ppt_第4頁
MCS-51單片機 第4章  匯編語言程序設(shè)計.ppt_第5頁
資源描述:

《MCS-51單片機 第4章 匯編語言程序設(shè)計.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第4章匯編語言程序設(shè)計4.1匯編語言基本概念4.2匯編語言程序設(shè)計4.1匯編語言基本概念4.1.1程序設(shè)計語言4.1.2匯編語言的語句結(jié)構(gòu)4.1.3偽指令返回本章首頁4.1.1程序設(shè)計語言按照語言的結(jié)構(gòu)及其功能可以分為三種:1.機器語言:機器語言是用二進制代碼0和1表示指令和數(shù)據(jù)的最原始的程序設(shè)計語言。2.匯編語言:在匯編語言中,指令用助記符表示,地址、操作數(shù)可用標號、符號地址及字符等形式來描述。3.高級語言:高級語言是接近于人的自然語言,面向過程而獨立于機器的通用語言。返回本節(jié)4.1.2匯編語言的語句結(jié)構(gòu)1.匯編語言的指令類型MCS-51單片機

2、匯編語言,包含兩類不同性質(zhì)的指令。(1)基本指令:即指令系統(tǒng)中的指令。它們都是機器能夠執(zhí)行的指令,每一條指令都有對應(yīng)的機器碼。(2)偽指令:匯編時用于控制匯編的指令。它們都是機器不執(zhí)行的指令,無機器碼。2.匯編語言的語句格式匯編語言源程序是由匯編語句(即指令)組成的。匯編語言一般由四部分組成。其典型的匯編語句格式如下:標號:操作碼操作數(shù);注釋START:MOVA,30H;A←(30H)返回本節(jié)4.1.3偽指令1.ORG:匯編起始地址用來說明以下程序段在存儲器中存放的起始地址。例如程序:ORG1000HSTART:MOVA,#20HMOVB,#30

3、H┇2.EQU:賦值給變量標號賦予一個確定的數(shù)值。3.DB:定義數(shù)據(jù)字節(jié)把數(shù)據(jù)以字節(jié)數(shù)的形式存放在存儲器單元中。4.DW:定義數(shù)據(jù)字按字的形式把數(shù)據(jù)存放在存儲單元中。5.DS:定義存儲區(qū)從指定的地址單元開始,保留一定數(shù)量存儲單元。6.BIT:位定義確定字符名為確定的位地址值。7.END:匯編結(jié)束返回本節(jié)4.2匯編語言程序設(shè)計4.2.1匯編語方程序設(shè)計步驟4.2.2順序程序4.2.3分支程序4.2.4循環(huán)程序4.2.5子程序4.2.6位操作程序返回本章首頁4.2.1匯編語方程序設(shè)計步驟1.分析問題2.確定算法3.設(shè)計程序流程圖4.分配內(nèi)存單元5.編

4、寫匯編語言源程序6.調(diào)試程序返回本節(jié)4.2.2順序程序順序程序是一種最簡單,最基本的程序。特點:程序按編寫的順序依次往下執(zhí)行每一條指令,直到最后一條?!纠?.1】將30H單元內(nèi)的兩位BCD碼拆開并轉(zhuǎn)換成ASCII碼,存入RAM兩個單元中。程序流程如圖4-1所示。參考程序如下:ORG2000HMOVA,30H;取值A(chǔ)NLA,#0FH;取低4位ADDA,#30H;轉(zhuǎn)換成ASCII碼MOV32H,A;保存結(jié)果MOVA,30H;取值SWAPA;高4位與低4位互換ANLA,#0FH;取低4位(原來的高4位)ADDA,#30H;轉(zhuǎn)換成ASCII碼MOV31H

5、,A;保存結(jié)果SJMP$END結(jié)束取數(shù)據(jù)低4位轉(zhuǎn)換成ASCII碼存ASCII碼取數(shù)據(jù)高4位轉(zhuǎn)換成ASCII碼存ASCII碼開始圖4-1拆字程序流程圖結(jié)束取數(shù)據(jù)X求X2暫存X2取數(shù)據(jù)Y求Y2求X2+Y2開始保存平方和圖4-2例4.2程序流程圖【例4.2】設(shè)X、Y兩個小于10的整數(shù)分別存于片內(nèi)30H、31H單元,試求兩數(shù)的平方和并將結(jié)果存于32H單元。解:兩數(shù)均小于10,故兩數(shù)的平方和小于100,可利用乘法指令求平方。程序流程如圖4-2所示。參考程序如下:ORG2000HMOVA,30H;取30H單元數(shù)據(jù)MOVB,A;將X送入B寄存器MULAB;求X

6、2,結(jié)果在累加器中MOVR1,A;將結(jié)果暫存于R1寄存器中MOVA,31H;取31H單元數(shù)據(jù)MOVB,A;將Y送入B寄存器MULAB;求Y2,結(jié)果在累加器中ADDA,R1;求X2+Y2MOV32H,A;保存數(shù)據(jù)SJMP$;暫停END結(jié)束取數(shù)據(jù)X求X2暫存X2取數(shù)據(jù)Y求Y2求X2+Y2開始保存平方和圖4-2例4.2程序流程圖返回本節(jié)4.2.3分支程序1.分支程序的基本形式分支程序有三種基本形式,如圖4-3所示。分支程序的設(shè)計要點如下:(1)先建立可供條件轉(zhuǎn)移指令測試的條件。(2)選用合適的條件轉(zhuǎn)移指令。(3)在轉(zhuǎn)移的目的地址處設(shè)定標號。條件滿足?A

7、YN(a)條件滿足?ABNY(b)(c)A0A1AnK=0K=1…K=nK=?……圖4-3分支程序結(jié)構(gòu)流程圖2.雙向分支程序設(shè)計舉例【例4.3】設(shè)X存在30H單元中,根據(jù)下式X+2X>0Y=100X=0求出Y值,將Y值存入31H單元。∣X∣X<0解:根據(jù)數(shù)據(jù)的符號位判別該數(shù)的正負,若最高位為0,再判別該數(shù)是否為0。程序流程如圖4-4所示。參考程序如下:ORG1000HMOVA,30H;取數(shù)JBACC.7,NEG;負數(shù),轉(zhuǎn)NEGJZZER0;為零,轉(zhuǎn)ZER0ADDA,#02H;為正數(shù),求X+2AJMPSAVE;轉(zhuǎn)到SAVE,保存數(shù)據(jù)ZER0:MOV

8、A,#64H;數(shù)據(jù)為零,Y=100AJMPSAVE;轉(zhuǎn)到SAVE,保存數(shù)據(jù)NEG:DECA;CPLA;求∣X∣SAVE:MOV31H,A

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。