導航:首頁 > 操作系統 > 堆棧指令單片機

堆棧指令單片機

發布時間:2022-05-22 09:53:23

Ⅰ 簡述51單片機堆棧進棧和出棧操作規則

1.堆棧用於響應中斷或調用子程序時保護斷點地址,也可通過棧操作指令(push
和pop保護和恢復現場)其中入棧時先SP+1再將內容壓入當前SP所指示的堆棧單元
中,出棧則先將SP所指示的內部ram單元中內容送入直接地址定址的單元中,再將
SP減1.
2.中斷允許寄存器的功能是控制CPU對中斷的開放和屏蔽以及每個中斷源是否允許
中斷結構包括EA(CPU中斷總允許位),ES(串列口中斷允許位)ET1(定時器1中
斷允許位)EX1(外部中斷1中斷允許位)ET0(定時器0中斷允許位)EX0(外部中
斷0中斷允許位)
3.T機=12/fosc=12/(6*E6)=2us
X=2*E13-T/T機=8192-200/2=8092=1F9CH=1111
1100
1110
0B
因為TL1的高3位未用,
修正後X=1111
1100
0001
1100B=FC1CH
4.LJMP為長轉移指令,可轉向64KB程序存儲器的任一單元;SJMP為相對轉移指令
,偏移范圍-128~+127共259位元組;AJMP為絕對轉移指令,轉移目的在指令後一個
存儲單位所在2K區間內。
5.按鍵抖動:在觸點抖動期間檢測按鍵的通與斷狀態,可能導致判斷出錯,即按
鍵一次按下或釋放被錯誤認為是多次操作。
6.汽車的溫控系統,測控系統,防盜報警等多項系統中應用單片機。汽車電子中
涉及A/D和D/A轉換的模塊基本都會有單片機的存在。以下以汽車倒車雷達為例,
雷達控制部分由89C51單片機構成,前端數據採集由超聲波測距,系統由發射和接
收裝置來獲取數據,根據所測得的距離來判斷是否調用聲音報警程序,距離小於
預置點時,調用報警模塊。

Ⅱ 單片機數據堆棧的特點是什麼

單片機數據堆棧的特點是先入後出,後入先出。可以理解為一個餅干筒,先存入的數據在下層,後存入的數據在上層,要取數據,得從上層開始先取。
堆棧指針在寄存器SP中,默認情況下為SP=07H,可以通過MOV指令改變堆棧指針的地址。

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

Ⅳ 單片機堆棧指令

PUSH 30H ;61H中的值變為24H,SP:61H,其他不變
PUSH 31H ;62H中的值變為10H,SP:62H,其他不變
POP DPL ;DPL:10H,SP:61H,其他不變
POP DPH ;DPH:24H,SP:60H,其他不變
MOV 30H,#00H ;30H:00H,其他不變
MOV 31H,#0FFH ;31H:0ffH,DPL:10H,SP:61H,其他不變

Ⅳ 單片機堆棧問題

堆棧的壓棧動作地址是遞減的;出棧動作地址是增加的。sp是棧頂指針,經過壓棧動作後的值要比70H小。具體的數值得看單片機的位數——32 bit/16 bit/8 bit

Ⅵ 單片機編程裡面,堆棧是什麼意思

在片內RAM中,常常要指定一個專門的區域來存放某些特別的數據,它遵循順序存取和後進先出(LIFO/FILO)的原則,這個RAM區叫堆棧。

  1. 子程序調用和中斷服務時CPU自動將當前PC值壓棧保存,返回時自動將PC值彈棧;

  2. 保護現場/恢復現場;

  3. 數據傳輸。

Ⅶ 簡述堆棧的存取點寫出棧操作指令

在計算機領域,堆棧是一個不容忽視的概念,但是很多人甚至是計算機專業的人也沒有明確堆棧其實是兩種數據結構。堆棧都是一種數據項按序排列的數據結構,只能在一端(稱為棧頂(top))對數據項進行插入和刪除。要點:堆,順序隨意。棧,後進先出(Last-In/First-Out)。
單片機堆棧操作指令如下:
PUSH
direct(堆棧指令)其作用是先將棧指針SP的內容加1,然後將直接定址單元中的數壓入到sP所指的單元中。若數據已入棧,則SP指向最後堆人數據所在的存儲單元(即指向棧頂)。
POP
direct(出棧指令)其作用是先將棧指針SP所指出單元的內容送入直接定址單元中,然後將棧指針SP的內容減1,此時SP指向新的棧頂。
使用堆棧時,一般需設定SP的初始值。堆棧原則上可以設在內部RAM的任意區域,但為使用方便,一般設在30H~7FH。另外,需注意留出足夠的存儲單元作棧區,否則可能發生數據重疊,引起程序混亂。
由於入棧的第一個數必須存放在SP+1的存儲單元,故實際棧頂是在SP+1所指出的單元。

Ⅷ 什麼叫堆棧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。

Ⅸ 在單片機中什麼是堆棧它的作用是什麼

在單片機應用中,堆棧是個特殊的存儲區,主要功能是暫時存放數據和地址,通常用來保護斷點和現場。在計算機領域,堆棧是一個不容忽視的概念,堆棧是一種數據結構。堆棧都是一種數據項按序排列的數據結構,只能在一端(稱為棧頂(top))對數據項進行插入和刪除。

堆棧是一個特定的存儲區或寄存器,它的一端是固定的,另一端是浮動的。對這個存儲區存入的數據,是一種特殊的數據結構。所有的數據存入或取出,只能在浮動的一端(稱棧頂)進行,嚴格按照「先進後出」的原則存取,位於其中間的元素,必須在其棧上部(後進棧者)諸元素逐個移出後才能取出。在內存儲器(隨機存儲器)中開辟一個區域作為堆棧,叫軟體堆棧;用寄存器構成的堆棧,叫硬體堆棧。


(9)堆棧指令單片機擴展閱讀:

棧的優勢是,存取速度比堆要快,僅次於直接位於CPU中的寄存器。但缺點是,存在棧中的數據大小與生存期必須是確定的,缺乏靈活性。另外,棧數據在多個線程或者多個棧之間是不可以共享的,但是在棧內部多個值相等的變數是可以指向一個地址的,詳見第3點。堆的優勢是可以動態地分配內存大小,生存期也不必事先告訴編譯器,Java的垃圾收集器會自動收走這些不再使用的數據。但缺點是,由於要在運行時動態分配內存,存取速度較慢。

閱讀全文

與堆棧指令單片機相關的資料

熱點內容
雲伺服器建設原理 瀏覽:256
javajunit4for 瀏覽:843
華為伺服器如何進陣列卡配置 瀏覽:433
apache伺服器ip地址訪問 瀏覽:718
如何買到安卓手機預裝軟體 瀏覽:537
冤罪百度雲不要壓縮 瀏覽:86
蘇州雲存儲伺服器 瀏覽:173
解壓收納原聲 瀏覽:384
java注冊驗證 瀏覽:375
火花app怎麼上推薦 瀏覽:980
什麼app能游戲投屏到電視上 瀏覽:455
伺服器託管到雲端是什麼意思 瀏覽:835
app保存草稿怎麼用 瀏覽:808
安卓如何進入proumb 瀏覽:144
主機虛擬雲伺服器 瀏覽:619
刪除分區加密的空間會不會恢復 瀏覽:706
京東app客戶上門怎麼看搜索量 瀏覽:741
怎麼在農行app購買黃金 瀏覽:46
c型開發板和單片機 瀏覽:146
虛擬機建立用戶的模板文件夾 瀏覽:905