導航:首頁 > 操作系統 > 單片機sp寄存器

單片機sp寄存器

發布時間:2022-08-15 09:56:48

⑴ 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地址相等,但是定址方式不一樣,所以單片機能區分得開

⑵ 為什麼把pc寄存器的值設為sp操作開始的地方操作系統

指令寄存器IR,是臨時放置從內存裡面取得的代碼數據(也就是指令),然後等待解碼器來解碼。指令指針寄存器ip,裡面放置的是不是指令,而是一個指向下一個將要去獲取的指令的內存地址(所以它是一個指針)。
sp在單片機系統復位時候才使用因為在51單片機中,SP棧指針是一個專用的8位寄存器,系統復位後,SP初始化為07H,使得堆棧指針實際上是由08H單元開始。在響應中斷或子程序調用時,發生入棧操作,入棧的是16位PC值;51中有PUSH壓入和POP彈出棧操作指令,如有必要,在中斷或調用子程序時可用POSU指令把PSW或其它需要保護的寄存器的內容壓入堆棧加以保護覺得有用點個贊吧

⑶ 單片機sp幾進制

十六進制。
單片機只能識別十六進制,SP英文全稱為stack,pointer,是單片機控制器的組成部件之一,與時控制邏輯電路,指令寄存器解碼器,地址指針DPTR,程序計數器等部件共同組成CPU的神經中樞,堆棧指針在單片機里的作用是隨時跟蹤棧頂地址,以便存取單片機的數據。

⑷ 單片機中的SP設置問題

如果是51單片機的話上電後SP默認的是07h,寄存器組默認的是第一組就是00h-07h這8個單元,寫程序的時候將自定義變數區設定在堆棧深度以外就可以了。
一般是將4個寄存器組單元地址預留出來。

⑸ 堆棧寄存器SP是多少位寄存器

MCS-51單片機的堆棧區只可設置在片內RAM區,復位時SP指向07H,SP是個8位的堆棧指針。

⑹ 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指令使用堆棧,要注意進出棧的匹配,否則將引起不可預期的後果。

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

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

⑻ 8501單片機中,PC、A、PSW、SP分別是什麼寄存器

分別是程序計數器、累加器、程序狀態字(寄存器)和棧指針。

⑼ 單片機里sp是什麼意思啊

單片機里sp是堆棧指針。

堆棧指針SP英文全稱為stack pointer,是單片機控制器的組成部件之一,與時控制邏輯電路、指令寄存器解碼器、地址指針DPTR、程序計數器等部件共同組成CPU的神經中樞。堆棧指針在單片機里的作用是隨時跟蹤棧頂地址,以便存取單片機的數據。

每當執一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原來值的基礎上)自動減1。

(9)單片機sp寄存器擴展閱讀

由於SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP的值,就可以把堆棧設置在規定的內存單元中,如在程序開始時,用一條MOV SP,#5FH指令,就是把堆棧設置在從內存單元60H開始的單元中。

一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元開始往後,而08H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成數據的混亂。

不同作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問題。當設置好堆棧區後,並不意味著該區域成為一種專用內存,它還是可以象普通內存區域一樣使用,只是一般情況下編程者不會把它當成普通內存用了。

⑽ 什麼是堆棧,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寄存器相關的資料

熱點內容
思科常用配置命令 瀏覽:377
水容易被壓縮嗎 瀏覽:753
java項目試題 瀏覽:315
為什麼安卓拍照沒有蘋果成相快 瀏覽:516
安卓版的蘋果手機叫什麼 瀏覽:373
手機怎麼解壓文件夾壓縮包 瀏覽:459
起源任務咋解壓 瀏覽:976
加密式的監督檢查 瀏覽:549
光遇怎麼分辨安卓國服和渠道服 瀏覽:242
ico解壓教程 瀏覽:632
程序員偏右 瀏覽:17
超算上可以進行vasp編譯嘛 瀏覽:174
北京通app怎麼注冊登錄 瀏覽:820
iphone上的數據怎麼轉移到安卓 瀏覽:743
python求每個時段平均值 瀏覽:244
安卓手機右上出現Hg什麼意思 瀏覽:69
程序員神經 瀏覽:753
dns伺服器在電腦上有什麼用 瀏覽:915
杭州大媽喜歡程序員 瀏覽:687
python評論樹講解 瀏覽:680