導航:首頁 > 操作系統 > 單片機的程序指針

單片機的程序指針

發布時間:2022-11-30 11:01:33

A. 51單片機中程序指針PC和數據指針DPTR各自有什麼用途電路復位後,二者的值各是多 少

程序計數器PC(program Counter)
程序計數器在物理上是獨立的,它不屬於特殊內部數據存儲器塊中。PC是一個16位的計數器,

用於存放一條要執行的指令地址,定址范圍為64kB,PC有自動加1功能,即完成了一條指令的執行後,其內容自動加1。PC本身並沒有地址,因而不可定址,用戶無法對它進行讀寫,但是可以通過轉移、調用、返回等指令改變其內容,以控製程序按我們的要求去執行。

復位後為0000H(16位)

數據指針(DPTR)
數據指針為16位寄存器,編程時,既可以按16位寄存器來使用,也可以按兩個8位寄存器來使用,即高位位元組寄存器DPH和低位位元組DPL。
DPTR主要是用來保存16位地址,當對64kB外部數據存儲器定址時,可作為間址寄存器使用,此時,使用如下兩條指令:

MOVX A, @DPTR
MOVX @DPTR, A

在訪問程序存儲器時,DPTR可用來作基址寄存器,採用基址+變址定址方式訪問程序存儲器,這條指令常用於讀取程序存儲器內的表格數據。

MOVC A, @A+@DPTR

復位後為0000H(16位)

B. 51單片機 如何利用程序指針實現跳轉

方法1:
MOV
DPTR
,#LOCA
;取得JMP
@A+DPTR的地址(PC)
MOV
A,#4
;跳轉步長
LOCA:
JMP
@A+DPTR
(註:JMP
@A+DPTR是一條1位元組的指令,執行該條指令後PC=LOCA+1,如果想取該指令之後的PC,可以用方法2)
方法2:
MOV
DPTR
,#LOCA
;取執行JMP
@A+DPTR後的地址(PC)
MOV
A,#4
;跳轉步長
JMP
@A+DPTR
LOCA:
程序行1
程序行2
……
……
……
程序行N
方法3(程序跳轉表):
MOV
DPTR
,#LIST
;取程序跳轉表首地址
MOV
A,R0
;取跳轉偏移(跳轉偏移存在R0中)
JMP
@A+DPTR
程序行1
程序行2
……
……
……
程序行N
LIST:
SJMP
FUN1
SJMP
FUN2
SJMP
FUN3
……
FUN1:
……
FUN2:
……
FUN3:
……

C. 51單片機編程大循環後邊括弧里可以帶指針嗎

可以帶。
在51單片機的嵌入式C語言中,指針同樣是被支持的。所以在單片機上一樣可以使用指針操作,具體使用方法,與標准C語言並沒有不同。
不過需要注意的是,使用指針代表著間接定址,相對變數的直接定址,速度要稍慢一些。而單片機運算速度較慢,大量使用指針有可能會降低執行效率,影響效果。所以除非必要,還是少用指針。

D. 在匯編語言寫單片機的程序的時候,如何知道當前的PC指針是多少

當前PC指針的值,可以通過一定的方法來獲得,比如如果使用LCALL指令,那麼單片機執行過程是:保護現場,將當前PC壓入堆棧,當程序返回時,再彈出該保護的PC,由此,我們就可以獲得當前的PC,具體程序如下:
........
LCALL GETPC ;調用一個子程序以獲得當前PC值
...........

GETPC:
POP ACC ;取得PC高八位
POP B ;取得PC低八位
PUSH B ;恢復SP
PUSH ACC ;恢復SP
......
RET

閱讀全文

與單片機的程序指針相關的資料

熱點內容
海泰克怎麼加密 瀏覽:893
hashset遍歷java 瀏覽:370
中國打越南電影有哪些 瀏覽:702
消失的眼角膜之瞎子傳奇在線觀看 瀏覽:272
如何在蘋果平板上設置app切換 瀏覽:707
帶著金手指到民國 瀏覽:593
les肉電影 瀏覽:821
嬰兒武打片 瀏覽:642
師徒訓誡小說推薦 瀏覽:548
好後綴演算法 瀏覽:19
關閉終端的命令 瀏覽:511
有聲黃讀 瀏覽:542
三大頂級動作片推薦胸大的女人電影 瀏覽:367
哺乳期誘惑電影 瀏覽:706
哪些雲伺服器可以搭建郵件伺服器 瀏覽:687
美國試禁忌當上演員 瀏覽:304
hqss/vod/index.asp 瀏覽:404
男主很帥的歐美大尺度電影 瀏覽:356
怎麼消除安卓的系統通知 瀏覽:478
程序員3萬4是稅後嗎 瀏覽:868