久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機第四次作業

單片機第四次作業

作者: 時間:2016-11-25 來源:網絡 收藏
作業:多字節無符號數加法運算程序
入口:R0=被加數低位地址指針
R1=加數低位地址指針
出口:R0=和數高位地址指針
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

為了調試時看數據,預先賦值,所以程序前加:
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,導入文件18.asm。
注意,對初學者,一個工程里只能有本程序18.asm,無關的程序要刪除,新試驗一個程序最好重新建工程,以保證一個工程里只有你要試驗的那一個程序。

3、可見程序:


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


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



接著執行:可見R0,R1,R2值的改變:

繼續執行:



下一步:


下一步:

可見:30H內容變為68H.
下一步:


R0,R1值都加一,繼續:


可見R2值減1,但不為0,所以跳轉到LOOP1.繼續:經過幾次循環之后,直到R2變為0,此時不再循環,可看到:

30H,31H,32,,3H值都已改變。繼續執行:


此時CY不為0,所以跳轉到LOOP2。


可看到r0減1,變為33H,即為和數高位地址指針,指向33h處。



關鍵詞: 單片機地址指

評論


技術專區

關閉