ia(increase after)先傳輸,再位址+4ib(increase before)先位址+4,再傳輸
da(decrease after)先傳輸,再位址-4
db(decrease before)先位址-4,再傳輸
fd(full decrease)滿遞減堆疊
ed(empty decrease)空遞減堆疊
fa(full add) 滿遞增堆疊
ea(empty add)空遞增堆疊
例如:stmia sp,
將r0存入sp指向的記憶體處(假設為0x30001000);然後位址+4(即指向0x30001004),將r1存入該位址;然後位址再+4(指向0x30001008),將r2存入該位址······直到r12內容放入(0x3001030),指令完成。
空棧:棧指標指向空位,每次存入時可以直接存入然後棧指標移動一格;而取出時需要先移動一格才能取出滿棧:棧指標指向棧中最後一格資料,每次存入時需要先移動棧指標一格再存入;取出時可以直接取出,然後再移動棧指標
增棧:棧指標移動時向位址增加的方向移動的棧
減棧:棧指標移動時向位址減小的方向移動的棧
1.滿減棧:進棧(先移動指標再入棧,指標往位址減小的方向移動);出棧(先出棧,棧指標往位址增大的地方移動)。2.滿增棧:進棧(先移動指標再入棧,指標往位址增大的方向移動);出 棧(先出棧,棧指標往位址減小的地方移動)。
3.空減棧:進棧(先進棧,棧指標往位址減小的方向移動);出棧(先移動指標再出棧,棧指標往位址增大的方向移動)
4.空增棧:進棧(先進棧,棧指標往位址增大的方向移動);出棧(先移動指標再出棧,棧指標往位址減小的方向移動)
備註:使用時不用糾結時哪一種棧結構,只要進棧和出棧用同一種棧結構就不會出錯。
arm預設使用滿減棧注:參考朱老師物聯網大講堂
資料結構 筆記4 棧和佇列
棧 stack 是限定在表的一端進行插入和刪除運算的線性表。插入,刪除的一段稱為棧頂 top 另一端為棧底 buttom 不含元素的空表稱為空棧。棧又被稱為後進先出 last in first out 的線性表 棧的順序結構 順序棧 1.棧的順序儲存結構稱為順序棧。2.當棧滿時再做進棧運算必定產生控...
棧和佇列4 資料結構和演算法26
讓程式設計改變世界 change the world by program 講完了棧的順序儲存結構,也給大家結合了一些例題演練,相信大家對棧再也不陌生了吧?現在我們來看下棧的鏈式儲存結構,簡稱棧鏈。通常我們用的都是棧的順序儲存結構儲存,鏈式儲存我們作為乙個知識點,大家知道就好!棧因為只是棧頂來做插入...
C Day4 指標和結構體
二 結構體 include using namespace std intmain 32位作業系統 64位作業系統 4位元組 所有型別int float double 8位元組 所有型別 int s int 0x1124 cout 指標的值 sconst既修飾指標又修飾常量。const int co...