微控制器中程式指標資料指標堆疊指標區別

2022-02-21 16:13:31 字數 1297 閱讀 8507

1樓:

首先,你要明白乙個概念,指標,是做什麼的?答案是,指標,是指向位址的。

程式指標,指向的空間,在物理上是flash,在邏輯上,就是**空間。比如說51微控制器的pc指標,指向的就是flash,即程式下一步要執行的指令的位址。

資料指標,指向的空間,在物理上有flash和ram,在邏輯上是flash裡的常數空間和資料空間,注意,是對於微控制器來說,對於我們的電腦,常數空間不是在flash上。

比如說51微控制器的dptr,如果用movc a,@a+dptr,此時,就是指向常數空間,如果用

movx a,@a+dptr就是指向的資料空間。

堆疊指標,指向的空間,在物理上是ram,在邏輯上,就是資料空間,是特定的資料空間,堆疊是資料空間中單獨劃分出來,專門用於寄存中間結果的記憶體空間。

資料指標和堆疊指標主要有兩個區別:

一是資料指標可以指向flash,即可以指向常數,比如說我們定義乙個陣列 unsigned char code table[99],此時,就是dptr可以指向常數空間。堆疊指標是不可以的,只能是指向ram。

第二個區別,堆疊指標指向的是特定的資料空間,這個特定的資料空間,是從整個資料空間裡劃分出來,專門用於作堆疊用的,堆疊區間一旦劃分出來,堆疊指標在規則上,就只能在這個範圍內活動,如果出了這個範圍,可能導致整個程式的崩潰。而資料指標在規則上,可以指向整個資料空間,但是,可以讀堆疊空間,不應該去修改,否則也可能導致程式的崩潰。

2樓:匿名使用者

程式指標pc是指向程式執行軌跡的位址

資料指標dptr是指向ram或rom空間這些儲存資料或程式**的位址

堆疊指標sp是指向內部暫存器(一般08h~ffh)的依靠push或pop在訪問資料的位址

3樓:匿名使用者

程式指標:訪問code**區用

資料指標:訪問data記憶體區用

堆疊指標:訪問data記憶體區中的堆疊用

微控制器的堆疊指標sp有什麼作用

4樓:文件類共創空間

在51微控制器中,sp棧指標是乙個專用的8位暫存器,系統復位後,sp初始化為07h,使得堆疊指標實際上是由08h單元開始。

在響應中斷或子程式呼叫時,發生入棧操作,入棧的是16位pc值;51中有push壓入和pop彈出棧操作指令,如有必要,在中斷或呼叫子程式時可用posu指令把psw或其它需要保護的暫存器的內容壓入堆疊加以保護;返回前再使用pop指令把它們恢復。

5樓:寶寶

sp用於存放棧頂的偏移位址。 通俗的說,就是存放堆疊ss的頂部。

微控制器程式,微控制器的應用

寫錯了吧,0x10和0x01能一樣嗎?if adc contr 0x10 測試其第5位是否是1 相當於 if adc contr 0x10 0 while adc contr 0x10 測試其第5位 d4 是否是0 乙個是測試 1 乙個是測試 0x10 能一樣麼?微控制器的應用 微控制器的應用領域 ...

微控制器程式注釋,微控制器程式注釋(大致注釋)

嘿嘿 還是俺來幫你回答吧 1 這是乙個一位的7段數碼管顯示控制程式,通過p3口連線了乙個7段數碼管 靜態顯示,共陽極 2 該程式就是利用這個一位的7段數碼管分時迴圈顯示0 9 a f共16個十六進製制數碼。3 在程式儲存器存放的 tab 是共陽極顯示編碼 應該是0 9 a f共16個顯示編碼 可惜少...

微控制器(組合語言)程式,微控制器組合語言

開發當bai然是用c,又快又易懂好維 du護,但是想要優zhi化程式dao還是要懂彙編的,要不然實回現同樣乙個功能答的程式,好的程式設計師可以把程式設計得又短又快,而不做優化的可能會又臭又長,2k以下可以搞定的,你非要搞到4k以上去那最終產品的成本每個至少會相差幾毛到一兩塊錢,而且成本公升高時質量卻...