大家肯定學(xué)習(xí)過了棧這一結(jié)構(gòu),也知道棧的基本特性,可是棧如何在程序中起作用,特別是C語言中,是不多的。所以今天就來分享一下棧在程序中的作用。
首先讀這篇文章之前,讀者首先要了解兩個(gè)基本的概念。
1、根據(jù)SP指針指向的位置,??梢苑譃闈M棧和空棧
(1)滿棧:堆棧指針SP總是指向最后壓入堆棧的數(shù)據(jù)。
(2)空棧:堆棧指針SP總是指向下一個(gè)將要放入數(shù)據(jù)的空位置。
2、根據(jù)SP指針移動(dòng)的方向,棧可以分為升棧和降棧
(1)升棧:隨著數(shù)據(jù)的入棧,SP指針從低地址——>高地址
(2)降棧:隨著數(shù)據(jù)的入棧,SP指針從高地址——>低地址
ARM采用的是 滿降棧。
下面是一個(gè)棧在程序運(yùn)用中的實(shí)例
1.主函數(shù)
2 子函數(shù)
總結(jié): 從以上實(shí)例看出,棧在程序中作用有傳遞參數(shù),保存寄存器的值和保存局部變量。 在傳遞參數(shù)的過程中,如果傳遞參數(shù)少于四個(gè),則直接用寄存器傳遞。若傳遞參數(shù)多于四個(gè),則使用寄存器+內(nèi)存?zhèn)鬟f。
大家可以把SP指針和FP指針的移動(dòng)結(jié)合內(nèi)存示意圖來更好理解棧在程序的應(yīng)用。
上一篇:ARM裸機(jī)程序開發(fā)(十):C語言環(huán)境初始化
下一篇:堆棧指針寄存器 SP詳解以及棧的作用
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- PCIe M.2接口測試的現(xiàn)狀、挑戰(zhàn)與泰克解決方案
- ABB在中國推出面向電子制造業(yè)的兩大全新機(jī)器人系列
- ABB在中國推出PoWa協(xié)作機(jī)器人系列
- 西門子 NX 新增 AI 助手等多項(xiàng)功能
- 貿(mào)澤即日起開售適用于數(shù)據(jù)中心和網(wǎng)絡(luò)應(yīng)用的 全新TE Connectivity QSFP 112G SMT連接器
- ABB推出三大全新機(jī)器人系列,強(qiáng)化中國機(jī)器人市場領(lǐng)導(dǎo)地位
- 新思科技關(guān)于美國解除近期對華出口限制的聲明
- Wolfspeed 1700 V MOSFET 技術(shù),助力重塑輔助電源系統(tǒng)的耐用性和成本
- 英飛凌大中華區(qū) 2025 生態(tài)創(chuàng)新峰會,究竟探討了哪些創(chuàng)新與生態(tài)合作?
- Microchip攜手Nippon Chemi-Con和NetVision 打造日本汽車市場首個(gè)ASA-ML攝像頭開發(fā)生態(tài)系統(tǒng)
- 分布式能源商業(yè)模式大盤點(diǎn)
- 固德威與安森美成立聯(lián)合實(shí)驗(yàn)室 共同推動(dòng)光伏逆變器新技術(shù)發(fā)展
- 校園戲曲新花樣,機(jī)器人來做評委
- 李之勤:機(jī)器人領(lǐng)域的好榜樣
- Vincross開發(fā)出了一款機(jī)器人蜘蛛,還擁有六條腿
- 免費(fèi)出租車真的免費(fèi)嗎?烏托邦的內(nèi)核依然是利益最大化
- 阿里巴巴被曝出正在布局自動(dòng)駕駛技術(shù)_獲得三項(xiàng)分割任務(wù)
- 除雷達(dá)、光達(dá) 自動(dòng)駕駛搭載V2X技術(shù)將成趨勢
- 臺工研院展出OLED車尾燈 積極搶下車用照明利基市場
- 奧迪公布e-tron的電池明細(xì)及其充電設(shè)備