以下是我在學習ARM指令中記錄的關于堆棧方面的知識:
1、寄存器 R13 在 ARM 指令中常用作堆棧指針
2、對于 R13 寄存器來說,它對應6個不同的物理寄存器,其中的一個是用戶模式與系統模式共用,另外5個物理寄存器對應于其他5種不同的運行模式。采用以下的記號來區分不同的物理寄存器: 堆棧是一種數據結構,按先進后出(First In Last Out,FILO)的方式工作,使用一個稱作堆棧指針的專用寄存器指示當前的操作位置,堆棧指針總是指向棧頂。 當堆棧指針指向最后壓入堆棧的數據時,稱為滿堆棧(Full Stack),而當堆棧指針指向下一個將要放入數據的空位置時,稱為空堆棧(Empty Stack)。 同時,根據堆棧的生成方式,又可以分為遞增堆棧(Ascending Stack)和遞減堆棧(DecendingStack),當堆棧由低地址向高地址生成時,稱為遞增堆棧,當堆棧由高地址向低地址生成時,稱為遞減堆棧。這樣就有四種類型的堆棧工作方式,ARM 微處理器支持這四種類型的堆棧工作方式,即: ARM-Thumb過程調用標準和ARM、Thumb C/C++ 編譯器總是使用Full descending 類型堆棧。 ◎ Full ascending 滿遞增堆棧 例子:
R13_
其中,mode為以下幾種模式之一:usr、fiq、irq、svc、abt、und。
3、寄存器R13在ARM指令中常用作堆棧指針,但這只是一種習慣用法,用戶也可使用其他的寄存器作為堆棧指針。而在Thumb指令集中,某些指令強制性的要求使用R13作為堆棧指針。由于處理器的每種運行模式均有自己獨立的物理寄存器R13,在用戶應用程序的初始化部分,一般都要初始化每種模式下的R13,使其指向該運行模式的棧空間,這樣,當程序的運行進入異常模式時,可以將需要保護的寄存器放入R13所指向的堆棧,而當程序從異常模式返回時,則從對應的堆棧中恢復,采用這種方式可以保證異常發生后程序的正常執行。
4、有四種類型的堆棧:
◎ Full descending 滿遞減堆棧
堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向堆棧最后一個元素(最后一個元素是最后壓入的數據)。
堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向堆棧最后一個元素(最后一個元素是最后壓入的數據)。
◎ 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.
上一篇:ARM9中LDR SP , = 4*1024 / LDR SP , = 0x34000000 的分析
下一篇:深入理解SP、LR和PC
推薦閱讀
史海拾趣
非常抱歉,由于我無法直接獲取到Advanced Ceramic X Corporation公司的具體發展細節,因此無法為您直接編寫關于該公司發展的五個具體故事。然而,我可以為您提供一種構建這類故事的框架,您可以根據這個框架,結合公司的公開信息,來編寫符合要求的故事。
故事框架示例
故事一:技術突破引領市場
Advanced Ceramic X Corporation自成立以來,一直致力于陶瓷材料的研究與開發。某年,公司成功研發出一種具有極高耐高溫性能的新型陶瓷材料,這一技術突破使得公司在航空航天領域獲得了廣泛應用,推動了公司的快速發展。隨著技術的不斷完善和市場需求的增長,公司逐漸成為了陶瓷材料領域的領軍企業。
故事二:國際合作拓寬市場
為了進一步擴大市場份額,Advanced Ceramic X Corporation積極尋求國際合作機會。公司與歐洲一家知名陶瓷材料公司簽訂了戰略合作協議,共同開發新型陶瓷產品。這一合作不僅提高了公司的技術水平,還拓寬了公司的國際市場,使得公司的產品在全球范圍內得到了廣泛應用。
故事三:環保理念驅動創新
在環保意識日益增強的背景下,Advanced Ceramic X Corporation積極響應國家環保政策,將環保理念融入產品研發和生產過程中。公司成功研發出一種環保型陶瓷材料,該材料不僅具有優異的性能,而且在生產過程中產生的污染極低。這一創新舉措贏得了客戶的廣泛贊譽,也提升了公司的品牌形象。
故事四:人才培養與團隊建設
Advanced Ceramic X Corporation深知人才是企業發展的核心動力。公司注重人才培養和團隊建設,通過定期舉辦技術培訓、團隊建設活動等方式,提高員工的業務能力和團隊協作能力。同時,公司還積極引進國內外優秀人才,為公司的長遠發展奠定了堅實的基礎。
故事五:社會責任與公益事業
作為一家有社會責任感的企業,Advanced Ceramic X Corporation積極參與公益事業。公司捐資支持教育事業、扶貧濟困等公益活動,為社會發展貢獻自己的力量。同時,公司還關注員工福利,為員工提供良好的工作環境和福利待遇,增強了員工的歸屬感和忠誠度。
請注意,上述故事僅為示例,并未涉及Advanced Ceramic X Corporation公司的具體發展情況。您可以根據公司的實際情況和公開信息,結合上述框架來編寫符合要求的故事。在編寫過程中,請確保只描述事實,避免加入個人主觀評價。
為了進一步提升自身的競爭力,Cantec Electronic Co Ltd積極尋求與國際知名企業的合作。經過多次洽談,公司成功與一家國際電子巨頭簽訂了戰略合作協議。通過技術共享和市場互通,公司的產品線得到了極大的豐富,同時也打開了國際市場的大門。這一合作不僅提升了公司的品牌知名度,也為公司的長遠發展奠定了堅實的基礎。
作為電子行業的領先企業之一,AGM始終堅持以創新為核心競爭力。公司不斷投入研發資源,加強與國際先進企業的合作與交流,積極引進和吸收新技術、新工藝和新材料。同時,AGM還注重人才培養和團隊建設,打造了一支高素質、專業化的研發團隊。這些努力為AGM在未來的發展中保持領先地位提供了有力保障,也為公司實現可持續發展奠定了堅實基礎。
以上五個故事從不同角度展示了遨格芯微(AGM)公司在電子行業中的發展歷程和取得的成就。通過不斷的技術創新和市場拓展,AGM逐漸在可編程邏輯技術領域嶄露頭角,成為電子行業的佼佼者。未來,隨著科技的不斷進步和市場需求的不斷變化,AGM將繼續保持創新精神和敏銳的市場洞察力,為電子行業的發展貢獻更多力量。
除了在智能手機和IoT市場取得突破外,AGM還深耕工業和消費類市場。公司自主研發并量產的可編程邏輯SoC產品系列廣泛應用于工業和消費類市場,滿足了客戶對高容積率、低成本、高品質的市場需求。通過不斷的技術創新和產品優化,AGM在工業和消費類市場逐漸形成了自己的競爭優勢,并贏得了越來越多客戶的認可和信賴。
在計算機行業快速發展的時代,Computer Conversions Corp公司憑借其敏銳的市場洞察力和技術實力,成功地把握住了行業發展的脈搏。公司曾面臨一個重大挑戰:如何使老舊的計算機硬件與新興的軟件兼容。為了解決這一問題,Computer Conversions Corp投入大量資源進行技術研發,最終開發出了一種獨特的硬件轉換器。這種轉換器不僅解決了兼容性問題,還大幅提升了數據處理速度,贏得了市場的廣泛認可。
作為一家有社會責任感的企業,弘凱光電始終致力于環保和可持續發展。公司秉承“質量第一”的方針,不僅注重產品的品質和性能,還積極推廣環保理念,致力于生產高質量、環保的LED產品。此外,公司還積極參與社會公益活動,回饋社會,為建設環保節能型社會貢獻自己的力量。
以上五個故事,基于弘凱光電在電子行業中的發展歷程和公開信息,盡量以事實為依據,避免了主觀評價。這些故事展示了弘凱光電在技術創新、市場拓展、社會責任等方面的努力和成就,也反映了公司在電子行業中的崛起和影響力。
DCR022405P的技術參數 產品型號:DCR022405P 輸出電壓最小值(V):4.900 輸出電壓最大值(V):5.100 容限(%):2 輸出電流(mA):400 輸入電壓最小值(V):21.600 輸入電壓最大值(V):26.400 效率典型值(%):- 靜態電流典型值(mA):15 開關頻率最大值( ...… 查看全部問答∨ |
轉自:38度燈光論壇 可能很多朋友都已經知道,北京世貿天階的超級LED屏幕,號稱是世界第二,亞洲第一。 去現場看是比較震撼。找了一個機會和做LED屏幕的朋友。去震撼了一把。如果想具體了解 先看看他們的官方網站吧http://www.theplace.cn/ 讓我 ...… 查看全部問答∨ |
我現在要實現對P89LPC901單片機的讀寫,采用的是IAP-Lite.程序出現了一些問題,麻煩大家看一下! /****************************************************************** * 文件名:TEST.C * 功能:測試IAP_Lite功能 ************************* ...… 查看全部問答∨ |
) /////調用出錯 ??!!??!!??!!??!!??!!??!!??!!??!!??!!??!!??!!??!!? { float s_sum=0; int i; for(i=0;i… 查看全部問答∨ |
誰有此文件,能傳給我一個么? 據說這個文件在 platform builder里有,一般的sdk里不包含, 可是連platform builder的下載都很難找 請發到 yuedong_2008@hotmail.com 謝謝 … 查看全部問答∨ |
中斷的過程是這樣的吧: 硬件設備發生中斷時,ISR會禁止同級和低級中斷,然后根據IRQ返回關聯的SysIntr,內核根據ISR返回的SysIntr喚醒相應的IST(SysIntr與IST創建的Event關聯),IST處理中斷之后調用InterruptDone解除中斷禁止。 那是不是說在 ...… 查看全部問答∨ |
第一版公布的電路中,輔助電源使用了功率容量小的開關電源。 在DIY過程中發現,雖然它能解決所有小信號電路的供電 問題,但是,這個電源也需要調試,特別是沒有調試條件情況下,它顯得更加困難。 所以就想到,用一個變壓器,加一個BUCK穩 ...… 查看全部問答∨ |
最近在學習使用Xilinx的FPGA,關于仿真部分的測試文檔的編寫,大家有沒有用的好的教程或者經驗,分享一下阿,網上看了一大堆,覺得沒有特別好的可以借鑒的。 很期待Xilinx高手和專家指點。交流方式:QQ:812158980  ...… 查看全部問答∨ |