導航:首頁 > 操作系統 > 單片機sp是什麼

單片機sp是什麼

發布時間:2022-04-27 00:30:38

單片機中的pc和sp有什麼關系

單片機中的pc和sp沒有什麼任何關系,別往一塊扯。
PC是控製程序執行的,是16計數器。
SP是堆棧指針,指向堆棧操作的單元地址,是8位計數器。

Ⅱ 單片機的堆棧指針SP有什麼作用

在51單片機中,SP棧指針是一個專用的8位寄存器,系統復位後,SP初始化為07H,使得堆棧指針實際上是由08H單元開始。
在響應中斷或子程序調用時,發生入棧操作,入棧的是16位PC值;51中有PUSH壓入和POP彈出棧操作指令,如有必要,在中斷或調用子程序時可用POSU指令把PSW或其它需要保護的寄存器的內容壓入堆棧加以保護;返回前再使用POP指令把它們恢復。

Ⅲ 什麼是堆棧,51單片機堆棧指針SP的使用舉例

MCS-51單片機匯編語言中,沒有SP這條指令,只有針對SP操作的指令。51單片機中SP是堆棧指針寄存器,存放著當前堆棧地址。堆棧用於存儲子程序調用、中斷程序調用時程序返回的地址,或者用來臨時保存某一寄存器的值。

除了初始化堆棧時直接給SP賦值,SP顯式存在,其它的對SP有影響的指令,對SP的操作都是隱式的,就是說SP並不出現在指令操作數當中。
例如:
MOV SP,#80H ;初始堆棧指針,(SP)=80H
LCALL XXXX;調用XXXX處的子程序,下一條指令PC值壓棧,(SP)=(SP)+2
NOP;子程序返回時,RET指令從堆棧中彈出PC值,所以會返回到這里,(SP)=(SP)-2
PUSH ACC;累加器A的內容壓棧保存,(SP)=(SP)+1
POP B;堆棧內保存的累加器A的內容彈出到B寄存器中,(SP)=(SP)-1

使用PUSH、POP指令使用堆棧,要注意進出棧的匹配,否則將引起不可預期的後果。

另外
如果把30H賦給了SP,稱為設置棧底。以後:
PUSH ACC ,就把ACC的內容存放到31H單元;
PUSH PSW ,就把PSW的內容存放到32H單元;
PUSH B ,就把B的內容存放到33H單元。
……
彈出時,要用POP指令。
利用堆棧,就不用管具體的內容存放在什麼單元了,SP會自動管理。

Ⅳ SP在單片機中是什麼寄存器有什麼作用

你沒有說是什麼單片機產品,各單片機定義不同。
如果是MCS-51單片機,SP指的是堆棧指針寄存器Stack Pointer,指示堆棧的棧頂地址,定位要入棧或出棧的數據的存放位置。

Ⅳ 單片機RAM中,sp的作用是什麼

SP 指的是堆棧指針
詳細解釋如下:
堆棧是一種數據結構,和他相類似的有隊列。

如果對數據結構有這樣的要求:
先將數據放到該區內,先放的後出後放的先出。這種結構這是堆棧。也就是說堆棧的數據操作口只有一端。它常用到回朔等演算法當中,說到數據結構,當然就要提到演算法。而隊列的操作正好與之相反。先放入的數據先出,後放的後出。它的數據操作是有兩個口,一邊只負責插入,一端只負責刪除。所以對其演算法是先入先出(FIFO,First input First Output).

而對於匯編來說,為了考慮這種結構,設置了兩個寄存器,一個是SS,是一個段寄存器。用作開辟一個數據單元作為一個堆棧區,該SS中的內容是該段的首地址。而SP則作為指針用,它有匯編語言中的作用是為模塊化等類似問題服務的!如果一個程序調用一個子程序,則進入該子程序前要先對主程序進行一個「現場保護」,以便子程序執行完畢後能順利地返回地主程序中依次執行。所以在一般的子程序開始的部分,先對程序中所用到的寄存器進行保存,保存到堆棧區中,從子程序返回到主程序中時再對堆棧區中的內容進行釋放還原。主程序還能進入到斷點繼續工作。正是這種原理,匯編編程時採用的是斷點(也就是中斷)的工作模式。也就是理解好堆棧就更好地理解了中斷。

堆棧區的使用不僅僅如此,由於其原理。可以使用堆棧區進行子程序的參數傳遞。堆棧是一個很重要的內容,但學習它不好理解時建議你先看一下數據結構。會更有利於你的理解!

Ⅵ MCS-51單片機匯編語言的SP指令有什麼作用

MCS-51單片機匯編語言中,沒有SP這條指令,只有針對SP操作的指令。51單片機中SP是堆棧指針寄存器,存放著當前堆棧地址。堆棧用於存儲子程序調用、中斷程序調用時程序返回的地址,或者用來臨時保存某一寄存器的值。
除了初始化堆棧時直接給SP賦值,SP顯式存在,其它的對SP有影響的指令,對SP的操作都是隱式的,就是說SP並不出現在指令操作數當中。
例如:
MOV SP,#80H ;初始堆棧指針,(SP)=80H
LCALL XXXX;調用XXXX處的子程序,下一條指令PC值壓棧,(SP)=(SP)+2
NOP;子程序返回時,RET指令從堆棧中彈出PC值,所以會返回到這里,(SP)=(SP)-2
PUSH ACC;累加器A的內容壓棧保存,(SP)=(SP)+1
POP B;堆棧內保存的累加器A的內容彈出到B寄存器中,(SP)=(SP)-1

使用PUSH、POP指令使用堆棧,要注意進出棧的匹配,否則將引起不可預期的後果。

Ⅶ 單片機中,,pc 和sp 是同一個東西嗎

簡單的說,PC指針就是指當前程序運行的位置。sp就是堆棧指針

Ⅷ 什麼叫堆棧8051堆棧指示器SP有多少位,作用是什麼單片機初始化話後SP中的內容是什麼

堆棧是連續的內存單元,存取方式遵循「先進後出」的原則。
其作用一般是保存寄存器或標志寄存器的內容。
堆棧就是這樣一種數據結構。它是在內存中開辟一個存儲區域,數據一個一個順序地存入(也就是「壓入——push」)這個區域之中。有一個地址指針總指向最後一個壓入堆棧的數據所在的數據單元,存放這個地址指針的寄存器就叫做堆棧指示器。開始放入數據的單元叫做「棧底」。數據一個一個地存入,這個過程叫做「壓棧」。在壓棧的過程中,每有一個數據壓入堆棧,就放在和前一個單元相連的後面一個單元中,堆棧指示器中的地址自動加1。讀取這些數據時,按照堆棧指示器中的地址讀取數據,堆棧指示器中的地址數自動減
1。這個過程叫做「彈出pop」。如此就實現了後進先出的原則。
sp是一個8位專用寄存器,它批示出堆棧頂部在內部ram塊中的位置。系統復位後,sp初始化為07h,實際上堆棧是由08h單元開始的。考慮08h~1fh單元分別屬於工作寄存器區1~3,若在程序設計中用到這些區,則最好把sp值改值為1fh或更大的值。

sp是一個8位專用寄存器,它批示出堆棧頂部在內部ram塊中的位置。系統復位後,sp初始化為07h,實際上堆棧是由08h單元開始的。考慮08h~1fh單元分別屬於工作寄存器區1~3,若在程序設計中用到這些區,則最好把sp值改值為1fh或更大的值。

mcs-51的堆棧是向上生成的,若sp=60h,cpu執行一和調用指令或者響應中斷後,pc進棧,pcl保護到61h,pch保護到62h,sp=62h。

Ⅸ 51單片機中的SP是一個單獨的寄存器還是屬於RAM的一部分

SP是一個寄存器,是特殊寄存器中的一個,即SFR中的一個,他不屬於RAM.
我簡單的說一下單片機內部的內存的結構:
由四個部分組成:
1 ROM或者Flash
2 內部RAM
3 SFR
4 外部RAM
注意,很多單片機初學者,分不清內部RAM和SFR,認為他們是一個東西,其實不是,他們是完全獨立的兩個物理空間.
內部RAM的地址是 低部分00H--7FH 高部分80H--FFH
SFR的地址是 80H--FFH
雖然SFR和高的內部RAM地址相等,但是定址方式不一樣,所以單片機能區分得開

閱讀全文

與單片機sp是什麼相關的資料

熱點內容
scan調度演算法詳細過程 瀏覽:163
二手房交易系統源碼 瀏覽:136
文件夾怎麼快速去重 瀏覽:790
單片機原理與應用視頻資源 瀏覽:880
雲伺服器國內如何注冊 瀏覽:584
java值類型和引用類型 瀏覽:515
金山詞霸如何pdf取詞 瀏覽:733
t3軟加密解綁 瀏覽:399
s8sp加密路線直接下載 瀏覽:570
不許宣讀命令 瀏覽:698
尋找信號源源碼 瀏覽:81
打電話老伺服器錯誤是什麼原因 瀏覽:491
三維溯源碼 瀏覽:716
android錄音開源 瀏覽:459
弗洛伊德演算法c 瀏覽:12
udp命令字 瀏覽:663
app服務端java源碼 瀏覽:798
電腦用文件夾玩大型游戲 瀏覽:254
安卓耳塞失靈怎麼辦 瀏覽:765
華三交換機保存命令 瀏覽:605