匯編語(yǔ)言程序設(shè)計(jì)2課件_第1頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)2課件_第2頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)2課件_第3頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)2課件_第4頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)2課件_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)復(fù)習(xí):

匯編語(yǔ)句的格式

匯編語(yǔ)言的構(gòu)成

偽指令

程序設(shè)計(jì)的步驟:

分析題意

確定算法

畫程序流程圖

編寫源程序

調(diào)試修改匯編語(yǔ)言程序設(shè)計(jì)2MOV A,R0 ;讀低8位

CPL A ;取反

ADD A,#1 ;加1 MOV R2,A ;存低8位

MOV A,R1 ;讀高8位

CPL A ;取反

ADDC A,#80H ;加進(jìn)位及符號(hào)位

MOVR3,A ;存高8位

END 一.順序結(jié)構(gòu)程序

——程序逐條執(zhí)行【例】已知16位二進(jìn)制負(fù)數(shù)的原碼存放在R1R0中,試求其補(bǔ)碼,并將結(jié)果存在R3R2中。匯編語(yǔ)言程序設(shè)計(jì)2

——根據(jù)不同條件轉(zhuǎn)向不同的處理程序二.分支結(jié)構(gòu)程序編寫分支程序主要在于正確使用轉(zhuǎn)移指令(條件轉(zhuǎn)移指令、比較轉(zhuǎn)移指令、位操作轉(zhuǎn)移指令)。分支程序有:?jiǎn)畏种ЫY(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu)。匯編語(yǔ)言程序設(shè)計(jì)2例1:求單字節(jié)有符號(hào)二進(jìn)制數(shù)的補(bǔ)碼(設(shè)二進(jìn)制數(shù)在累加器A中,將其補(bǔ)碼放回到A中)。分析:正數(shù)補(bǔ)碼是其本身,負(fù)數(shù)的補(bǔ)碼是其反碼加1。因此,程序首先判斷被轉(zhuǎn)換數(shù)符號(hào),負(fù)數(shù)進(jìn)行轉(zhuǎn)換,正數(shù)則不變。

JNB ACC.7,AAA

;(A)>0,不需要轉(zhuǎn)換

MOV C,ACC.7

;保存符號(hào)

MOV 00H, C

;保存符號(hào)

CPL A ADD A,#01H

MOV C,OOH

MOV ACC.7,C

;恢復(fù)符號(hào)AAA: RET匯編語(yǔ)言程序設(shè)計(jì)2例2:設(shè)變量x以補(bǔ)碼形式存放在片內(nèi)RAM30H單元中,變量y與x的關(guān)系是:編程根據(jù)x的值求y值并放回原單元。分析:根據(jù)x的大小來(lái)決定y的值。

取x、判斷x的大小、給y賦值、存y匯編語(yǔ)言程序設(shè)計(jì)2A=?y=x+5<0>0y=20Hy=x0取x即(30H)A開(kāi)始存y即y30H結(jié)束MOVA,30H

JZNEXTANLA,#80H

JZLPMOVA,#05HADDA,30HMOV30H,A

SJMPLPNEXT:MOV30H,#20HLP:SJMP$匯編語(yǔ)言程序設(shè)計(jì)2例3:多分支程序(散轉(zhuǎn)程序)根據(jù)R7的內(nèi)容轉(zhuǎn)向相應(yīng)的處理程序。設(shè)R7的內(nèi)容為0~N,對(duì)應(yīng)的處理程序的入口地址分別為PR0~PRN。

MOVDPTR,#TAB;置表首地址

MOVA,R7;分支轉(zhuǎn)移序號(hào)送A

RLAADDA,R7;分支轉(zhuǎn)移序號(hào)乘以3

JMP@A+DPTRTAB:LJMPPR0LJMPPR1………LJMPPRN

匯編語(yǔ)言程序設(shè)計(jì)2練習(xí):兩個(gè)無(wú)符號(hào)數(shù)比較大小

將片外RAM0040H、0041H地址中的內(nèi)容相比較,其中較大數(shù)存入片外RAM0042H地址中。匯編語(yǔ)言程序設(shè)計(jì)2——按某種控制規(guī)律重復(fù)執(zhí)行的程序三.循環(huán)結(jié)構(gòu)程序循環(huán)程序一般由:初始化部分循環(huán)體部分--處理部分、修改部分、控制部分結(jié)束部分其結(jié)構(gòu)一般有兩種:先進(jìn)入處理部分,再控制循環(huán)至少執(zhí)行一次循環(huán)體先控制循環(huán),再進(jìn)入處理部分循環(huán)體是否執(zhí)行,取決于判斷結(jié)果。匯編語(yǔ)言程序設(shè)計(jì)2開(kāi)始設(shè)置循環(huán)初值循環(huán)處理循環(huán)修改結(jié)束處理結(jié)束循環(huán)結(jié)束?開(kāi)始設(shè)置循環(huán)初值循環(huán)處理循環(huán)修改結(jié)束處理結(jié)束循環(huán)結(jié)束?YN先執(zhí)行后判斷先判斷后執(zhí)行匯編語(yǔ)言程序設(shè)計(jì)2例1:假設(shè)在片內(nèi)RAM40H單元開(kāi)始存放有8個(gè)無(wú)符號(hào)字節(jié)數(shù),找出其中最大值,存入30H單元中。

MOVR0,#40HMOVR2,#7MOV30H,@R0LOOP:INCR0MOVA,@R0CJNEA,30H,NEXTNEXT:JCLOP1MOV30H,ALOP1:DJNZR2,LOOPEND匯編語(yǔ)言程序設(shè)計(jì)2例2:將內(nèi)部數(shù)據(jù)存儲(chǔ)器30H~7FH單元的內(nèi)容傳送到外部數(shù)據(jù)存儲(chǔ)器以1000H開(kāi)始的連續(xù)單元中去。解:30H~7FH共計(jì)80個(gè)單元,需傳送80次數(shù)據(jù)。將R2作為循環(huán)計(jì)數(shù)寄存器。開(kāi)始R0←30HDPTR←1000HR7←50HA←((R0))(DPTR←(A)R0←(R0)+1DPTR←(DPTR)+1R7=0?結(jié)束No

MOV R0, #30H MOV DPTR,#1000H MOV R2, #50HLOP: MOV A,@R0 MOVX @DPTR,A INC R0

INC DPTR DJNZ R2,LOP

END匯編語(yǔ)言程序設(shè)計(jì)2例3:將內(nèi)部RAM中起始地址為data的數(shù)據(jù)串送到外部RAM中起始地址為buffer的存儲(chǔ)區(qū)域中,直到發(fā)現(xiàn)‘$’字符,傳送停止。----循環(huán)次數(shù)事先不知道先判斷,后執(zhí)行。MOVR0,#dataMOVDPTR,#bufferLOOP1:MOVA,@R0CJNEA,#24H,LOOP2;判斷是否為$字符

SJMPLOOP3;是,轉(zhuǎn)結(jié)束LOOP2:MOVX@DPTR,A;不是,傳送數(shù)據(jù)

INCR0INCDPTRSJMPLOOP1;傳送下一數(shù)據(jù)LOOP3:END13匯編語(yǔ)言程序設(shè)計(jì)2例4:編寫延時(shí)10ms子程序,fosc=12MHz。解:fosc=12MHz,一個(gè)機(jī)器周期為1s。MOVR6,#20;置外循環(huán)次數(shù)DLP1:MOVR7,#250;置內(nèi)循環(huán)次數(shù)DLP2:DJNZR7,DLP2;2機(jī)周×250=500機(jī)周

DJNZR6,DLP1;500機(jī)周×20=10000機(jī)周

RET說(shuō)明:MOVRn指令為1個(gè)機(jī)器周期;DJNZ指令為2個(gè)機(jī)器周期;RET指令為2個(gè)機(jī)器周期;{[(2×250)+1+2]×20+1+2}×1s=10063

s≈10ms匯編語(yǔ)言程序設(shè)計(jì)21.數(shù)制轉(zhuǎn)換:136=

B=

H;12.34H=

B。2.MOVA,@R1指令中源操作數(shù)的尋址方式是

。3.使用51單片機(jī)的片內(nèi)ROM時(shí),需將

引腳接

電平。4.當(dāng)晶振頻率為12MHz時(shí),一個(gè)機(jī)器周期為

。5.若A=82H,R0=40H,CY=1,執(zhí)行指令A(yù)DDCA,R0后,A=

,CY=

,AC=

,OV=

,P=

。6.執(zhí)行下列程序段后,(P1)=

H。MOVP1,#5DHCPLP1.1CPLP1.2CLRP1.6SETBP1.77.假定(50H)=0A4H,執(zhí)行下列指令:

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論