<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > arm指令學習之記錄關(guān)于隊長的知識點總結(jié)

          arm指令學習之記錄關(guān)于隊長的知識點總結(jié)

          作者: 時間:2016-11-26 來源:網(wǎng)絡 收藏
          我就自己在學習arm指令中記錄的關(guān)于隊長方面的知識做一個簡單的總結(jié),希望對大家有所幫助。

          1、寄存器 R13 在 arm 指令中常用作堆棧指針

          本文引用地址:http://www.ex-cimer.com/article/201611/321941.htm

          2、對于 R13 寄存器來說,它對應6個不同的物理寄存器,其中的一個是用戶模式與系統(tǒng)模式共用,另外5個物理寄存器對應于其他5種不同的運行模式。采用以下的記號來區(qū)分不同的物理寄存器: R13_ 其中,mode為以下幾種模式之一:usr、fiq、irq、svc、abt、und。

          3、寄存器R13在arm指令中常用作堆棧指針,但這只是一種習慣用法,用戶也可使用其他的寄存器作為堆棧指針。而在Thumb指令集中,某些指令強制性的要求使用R13作為堆棧指針。由于處理器的每種運行模式均有自己獨立的物理寄存器R13,在用戶應用程序的初始化部分,一般都要初始化每種模式下的R13,使其指向該運行模式的??臻g,這樣,當程序的運行進入異常模式時,可以將需要保護的寄存器放入R13所指向的堆棧,而當程序從異常模式返回時,則從對應的堆棧中恢復,采用這種方式可以保證異常發(fā)生后程序的正常執(zhí)行。

          4、有四種類型的堆棧:

          堆棧是一種數(shù)據(jù)結(jié)構(gòu),按先進后出(First In Last Out,F(xiàn)ILO)的方式工作,使用一個稱作堆棧指針的專用寄存器指示當前的操作位置,堆棧指針總是指向棧頂。

          當堆棧指針指向最后壓入堆棧的數(shù)據(jù)時,稱為滿堆棧(Full Stack),而當堆棧指針指向下一個將要放入數(shù)據(jù)的空位置時,稱為空堆棧(Empty Stack)。

          同時,根據(jù)堆棧的生成方式,又可以分為遞增堆棧(Ascending Stack)和遞減堆棧(DecendingStack),當堆棧由低地址向高地址生成時,稱為遞增堆棧,當堆棧由高地址向低地址生成時,稱為遞減堆棧。這樣就有四種類型的堆棧工作方式,ARM 微處理器支持這四種類型的堆棧工作方式,即: ◎ Full descending 滿遞減堆棧堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向堆棧最后一個元素(最后一個元素是最后壓入的數(shù)據(jù))。 ARM-Thumb過程調(diào)用標準和arm、Thumb C/C++ 編譯器總是使用Full descending 類型堆棧。

          ◎ Full ascending 滿遞增堆棧堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向堆棧最后一個元素(最后一個元素是最后壓入的數(shù)據(jù))。

          ◎ Empty descending 空遞減堆棧堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向下一個將要放入數(shù)據(jù)的空位置。

          ◎ Empty ascending 空遞增堆棧堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向下一個將要放入數(shù)據(jù)的空位置。

          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)



          關(guān)鍵詞: arm指令學習知識點總

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();