NAME main
my_seg SEGMENT CODE ; 聲明代碼段my_seg
RSEG my_seg ; 切換到代碼段my_seg
TABLE: DB 3,2,5,0xFF ; 聲明四個常數(shù)
myprog SEGMENT CODE ; 聲明代碼段myprog
RSEG myprog ; 切換到代碼段myprog
LJMP main ; 在程序存儲器0x0000的位置有一條跳轉(zhuǎn)指令
USING 0 ; 使用第一組寄存器
ORG 100H ; 定位到代碼段100H的位置
main: MOV DPTR, #TABLE ; 將TABLE表的地址送給DPTR
MOV A,#3 ; 將常數(shù)送給累加器A
MOVC A,@A+DPTR ; 將DPTR+3所指向的程序Flash的內(nèi)容送到累加器A
MOV P1,0 ; 將P1端口置0x0000
MOV P1,A ; 將P1端口置累加器A的內(nèi)容
END
點開debug,選擇start/stop debug session, 然后點開rgisters windows,memory windows里的memory1,和watch windows里的watch1
將TABLE表的地址送給DPTR,A的值為0.
1.png (10.32 KB, 下載次數(shù): 24)
下載附件
2018-11-20 14:36 上傳
2.png (2.76 KB, 下載次數(shù): 32)
下載附件
2018-11-20 15:03 上傳
點步進step,當黃色箭頭越過MOV A,#3;時,到下一行時,A的值就變?yōu)?,
3.png (8.03 KB, 下載次數(shù): 29)
下載附件
2018-11-20 15:25 上傳
在點step,此時a的值變?yōu)镕F,是因為將0x10b地址里的第4個數(shù)賦值給A,也就是FF,(如果把A的值改為2,此時A的值就等于05)。
4.png (2.14 KB, 下載次數(shù): 31)
下載附件
2018-11-20 15:32 上傳
這個比較簡單,但是這是我嘗試去看的,就能分享著么多,謝謝!
|