導航:首頁 > 操作系統 > mcs51單片機堆指針是

mcs51單片機堆指針是

發布時間:2022-06-23 05:53:15

『壹』 MCS-51單片機的PC稱作SP稱作

pc是program counter的縮寫,即程序計數器,
pc是16位的計數器,它始終指向單片機將要執行的下一條指令。
sp是stack point的縮寫,即堆棧指針,
指向棧頂。

打字的太慢了,就這些吧!!!!

『貳』 什麼是堆棧,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會自動管理。

『叄』 mcs-51單片機的數據指針DPTR是一個16位的專用地址指針寄存器,主要用來做什麼

如果是用c語言編程,可以不必注意這些問題,因為編程軟體會自動幫你分配,也不容易出錯!!
數據指針DPTR是80C51中一個功能比較特殊的寄存器。從結構DPTR是一個16位的特殊功能寄存器, 其高位位元組寄存器用DPH表示,低位位元組寄存器用DPL表示,DPTR既可以作為一個16位的寄存器來處理,也可以作為兩個獨立的8位寄存器來使用。主要功能是存放16位地址,作為片外RAM定址用的地址寄存器(間接定址),故稱數據指針。

訪問片外數據存儲器的指令為:
MOVX A,@DPTR 讀
MOVX @DPTR,A 寫
DPTR的另一個作用是變址定址,訪問程序存儲器,做查表指令:如:
以dptr為基址寄存器,將dptr的內容與累加器a的內容相加得到變址地址
movc a, @a+dptr ; (a)<-----((a)+(dptr))

『肆』 mcs51單片機中,dptr和sp分別是()的寄存器。a、dptr和sp均為8位 b、dptr為8

選擇A
sp是8位的寄存器
匯編語言中SP是堆棧寄存器。堆棧——是一段按照後進先出(LIFO)原則組織起來的連續存儲區域。用於程序保存或恢復數據,或用於子程序調用及中斷響應時保護與恢復現場。SP是堆棧指針寄存器,存放著當前堆棧棧頂地址。
一般情況下,對SP有影響的指令,對SP的操作都是隱式的,就是說SP並不出現在指令操作數當中。

例如:
PUSH AX;累加器AX的內容壓棧保存,(SP)=(SP)-2
POP BX;堆棧內保存的累加器AX的內容彈出到BX寄存器中,(SP)=(SP)+2

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

『伍』 什麼是堆棧,51單片機堆棧指針SP的使用

在計算機領域,堆棧是一個不容忽視的概念,堆棧是兩種數據結構。堆棧都是一種數據項按序排列的數據結構,只能在一端(稱為棧頂(top))對數據項進行插入和刪除。在單片機應用中,堆棧是個特殊的存儲區,主要功能是暫時存放數據和地址,通常用來保護斷點和現場。要點:堆,隊列優先,先進先出(FIFO—first in first out)[1] 。棧,先進後出(FILO—First-In/Last-Out)。

『陸』 什麼叫堆棧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。

『柒』 MCS-51單片機的堆棧區一般應建立在什麼區

MCS-51單片機的堆棧區一般應建立在什麼區?
51單片機上電後堆棧指針為07H,堆棧區建在07H以上的內部RAM區,這是1區的工作寄存器所在的存儲區,不合適。所以應該將堆棧區建立在內部RAM的低128位元組區的70H~7FH范圍內比較好。這樣留出16個位元組,還是夠用的。
對於52單片機,內部RAM有256個位元組,把堆棧區放在高128位元組就更好了,可以放在E0H~FFH區,這樣,就留出32個位元組了。

閱讀全文

與mcs51單片機堆指針是相關的資料

熱點內容
彈性雲伺服器配置流程 瀏覽:304
android交叉編譯linux 瀏覽:988
金聖嘆水滸傳pdf 瀏覽:501
安卓官換新機是什麼意思啊 瀏覽:922
java如何分頁 瀏覽:558
如何查找加密的視頻 瀏覽:742
單片機lcd漢字顯示 瀏覽:878
能夠識別中文的編譯器 瀏覽:63
androidlayout注釋 瀏覽:959
重啟手機命令 瀏覽:838
程序員那麼可愛男女主是誰 瀏覽:492
文件如何上傳到自己的伺服器 瀏覽:401
你用什麼app 瀏覽:224
安卓平板用什麼優化軟體 瀏覽:747
centos重新編譯程序 瀏覽:335
cocoapods命令 瀏覽:906
androidusb卸載 瀏覽:143
linux解壓縮軟體 瀏覽:144
ppt及備注轉pdf 瀏覽:564
ssh下載文件命令 瀏覽:821