国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

ARM 的堆棧學習筆記

發布時間:2011-1-21 12:02    發布者:lytdzyxgs
以下是我在學習ARM指令中記錄的關于堆棧方面的知識:
1、寄存器 R13 在 ARM 指令中常用作堆棧指針
2、對于 R13 寄存器來說,它對應6個不同的物理寄存器,其中的一個是用戶模式與系統模式共用,另外5個物理寄存器對應于其他5種不同的運行模式。采用以下的記號來區分不同的物理寄存器:
R13_
其中,mode為以下幾種模式之一:usr、fiq、irq、svc、abt、und。
3、寄存器R13在ARM指令中常用作堆棧指針,但這只是一種習慣用法,用戶也可使用其他的寄存器作為堆棧指針。而在Thumb指令集中,某些指令強制性的要求使用R13作為堆棧指針。由于處理器的每種運行模式均有自己獨立的物理寄存器R13,在用戶應用程序的初始化部分,一般都要初始化每種模式下的R13,使其指向該運行模式的棧空間,這樣,當程序的運行進入異常模式時,可以將需要保護的寄存器放入R13所指向的堆棧,而當程序從異常模式返回時,則從對應的堆棧中恢復,采用這種方式可以保證異常發生后程序的正常執行。
4、有四種類型的堆棧:堆棧是一種數據結構,按先進后出(First In Last Out,FILO)的方式工作,使用一個稱作堆棧指針的專用寄存器指示當前的操作位置,堆棧指針總是指向棧頂。
當堆棧指針指向最后壓入堆棧的數據時,稱為滿堆棧(Full Stack),而當堆棧指針指向下一個將要放入數據的空位置時,稱為空堆棧(Empty Stack)。
同時,根據堆棧的生成方式,又可以分為遞增堆棧(Ascending Stack)和遞減堆棧(DecendingStack),當堆棧由低地址向高地址生成時,稱為遞增堆棧,當堆棧由高地址向低地址生成時,稱為遞減堆棧。這樣就有四種類型的堆棧工作方式,ARM 微處理器支持這四種類型的堆棧工作方式,即:
◎ Full descending 滿遞減堆棧
堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向堆棧最后一個元素(最后一個元素是最后壓入的數據)。
ARM-Thumb過程調用標準和ARM、Thumb C/C++ 編譯器總是使用Full descending 類型堆棧。
◎ Full ascending 滿遞增堆棧
堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向堆棧最后一個元素(最后一個元素是最后壓入的數據)。
◎ Empty descending 空遞減堆棧
堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向下一個將要放入數據的空位置。
◎ Empty ascending 空遞增堆棧
堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向下一個將要放入數據的空位置。

5、操作堆棧的匯編指令堆棧類型 入棧指令 出棧指令
Full descending STMFD (STMDB) LDMFD (LDMIA)
Full ascending STMFA (STMIB) LDMFA (LDMDA)
Empty descending STMED (STMDA) LDMED (LDMIB)
Empty ascending STMEA (STMIA) LDMEA (LDMDB)
例子:
STMFD r13!, {r0-r5} ; Push onto a Full Descending Stack
LDMFD r13!, {r0-r5} ; Pop from a Full Descending Stack.
本文地址:http://m.qingdxww.cn/thread-50413-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
lytdzyxgs 發表于 2011-2-11 10:16:53
好資料,大家分享!
lytdzyxgs 發表于 2011-7-28 17:07:46
有點看不懂
qingtai 發表于 2011-8-5 13:39:18
不懂,但還是支持下
qingtai 發表于 2011-9-6 14:01:02
路過再次頂頂
小荷才露尖尖角 發表于 2012-3-21 09:53:10
不錯的資料,分享了!
小荷才露尖尖角 發表于 2012-5-2 10:16:13
很受用的資料!
sinpo1984 發表于 2013-7-18 11:09:09
杭州立宇泰電子有限公司主營產品:MID、Andorid行業手持終端、車載駕培系統終端、警務通、嵌入式平板電腦、便攜式無線電子菜單、多串口服務器、嵌入式單板電腦、S5PV210/S3C6410/2440/2410/44B0開發板及各種顯示方案等自主知識產權的產品
誠實12 發表于 2012-7-30 16:03:22
路過,學習
小荷才露尖尖角 發表于 2012-9-21 10:23:11
路過再次頂頂
daisukeyu 發表于 2012-11-27 11:47:17
來看看 學習!
誠實12 發表于 2014-2-17 14:48:08
好文,學習了
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 丝袜美腿视频一区二区三区 | www.caobi| 日本一区二区三区四区不卡 | 国产综合91 | 国产人免费人成免费视频 | 草久网| 日韩一级欧美一级 | 久久久久久久国产免费看 | 国产三级日本三级美三级 | 一区视频在线 | 好好的曰www视频在线观看 | 欧美日本另类 | 奇米一区二区三区四区久久 | 久久99热精品免费观看k影院 | 国产精品自在自线 | 综合免费一区二区三区 | 久热re国产手机在线观看 | 欧美无遮挡 | 日本视频中文字幕一区二区 | 国产11一12周岁女毛片 | 日韩一区二区三区在线 | 99草在线视频 | a毛片久久免费观看 | 在线播放国产视频 | 精品综合网 | 国产精品一区二区av | 91高清免费国产自产拍2021 | 亚洲国产精品一区二区三区久久 | 欧美日韩综合高清一区二区 | 一区二区日韩精品中文字幕 | 日韩免费视频一区 | 天天操天天摸天天干 | 成人啪精品视频免费网站 | 亚洲成在人天堂在线 | 国产成人毛片亚洲精品不卡 | 亚洲免费人成在线视频观看 | 久久99精品久久久久久牛牛影视 | 欧美91| 成人美女免费网站视频 | 日本h在线精品免费观看 | 亚洲一级片网站 |