新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機第四次作業(yè)

單片機第四次作業(yè)

作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
作業(yè):多字節(jié)無符號數(shù)加法運算程序
入口:R0=被加數(shù)低位地址指針
R1=加數(shù)低位地址指針
出口:R0=和數(shù)高位地址指針
1、先fileànew建asm文件18.asm
CLR C
LOOP1:MOV A,@R0
ADDC A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,LOOP1
JNC LOOP2
MOV @R0,#01H
RET
LOOP2:DEC R0
RET
END

為了調(diào)試時看數(shù)據(jù),預(yù)先賦值,所以程序前加:
MOV 30H,#78H
MOV 31H,#56H
MOV 32H,#34H
MOV 33H,#12H
MOV 40H,#0F0H
MOV 41H,#0DEH
MOV 42H,#0BCH
MOV 43H,#9AH
MOV R0,#30H
MOV R1,#40H
MOV R2,#4
2、建新工程,Projectànewproject,選AtemlàAT89C51,導(dǎo)入文件18.asm。
注意,對初學(xué)者,一個工程里只能有本程序18.asm,無關(guān)的程序要刪除,新試驗一個程序最好重新建工程,以保證一個工程里只有你要試驗的那一個程序。

3、可見程序:


4、編譯通過后,點debug下的start/stop開始調(diào)試,step和stepover都是單步調(diào)試,step是遇到子程序或中斷也要進(jìn)入進(jìn)行單步調(diào)試,stepover是遇到子程序或中斷當(dāng)一句一次執(zhí)行完。本程序物子程序,二者是一樣的。我們執(zhí)行賦值語句得到:


點viewàmemorywindows,再輸入D:30h回車,得到:



接著執(zhí)行:可見R0,R1,R2值的改變:

繼續(xù)執(zhí)行:



下一步:


下一步:

可見:30H內(nèi)容變?yōu)?8H.
下一步:


R0,R1值都加一,繼續(xù):


可見R2值減1,但不為0,所以跳轉(zhuǎn)到LOOP1.繼續(xù):經(jīng)過幾次循環(huán)之后,直到R2變?yōu)?,此時不再循環(huán),可看到:

30H,31H,32,,3H值都已改變。繼續(xù)執(zhí)行:


此時CY不為0,所以跳轉(zhuǎn)到LOOP2。


可看到r0減1,變?yōu)?3H,即為和數(shù)高位地址指針,指向33h處。



關(guān)鍵詞: 單片機地址指

評論


技術(shù)專區(qū)

關(guān)閉