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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM狀態(tài)寄存器訪問指令

          ARM狀態(tài)寄存器訪問指令

          作者: 時(shí)間:2012-11-26 來源:網(wǎng)絡(luò) 收藏
            中有兩條指令用于在和通用寄存器之間傳送數(shù)據(jù)。

            中有些位是當(dāng)前沒有使用的,但在將來版本中有可能使用這些位,因此用戶程序不要使用這些位。

            程序不能通過直接修改CPSR中T的控制位直接將程序狀態(tài)切換到Thumb狀態(tài),必須通過BX等指令完成程序狀態(tài)的切換。

            通常修改是通過“讀取-修改-寫回”的操作序列來實(shí)現(xiàn)。

            狀態(tài)寄存器包括以下兩條。

           ?。?)MRS 狀態(tài)寄存器到通用寄存器的傳送指令

            MRS(條件) Rd>' CPSR

            MRS指令用于將狀態(tài)寄存器的內(nèi)容傳送到通用寄存器中。

            MRS指令主要用于以下3種場合。

            ·通常通過“讀取-修改-寫回“操作序列修改狀態(tài)寄存器的內(nèi)容。MRS指令用于將狀態(tài)寄存器的內(nèi)容讀到通用寄存器中。

            ·當(dāng)異常中斷允許嵌套時(shí),需要在進(jìn)入異常中斷之后、嵌套中斷發(fā)生之前保存當(dāng)前處理器模式對應(yīng)的SPSR J8時(shí)需要先通過MRS指令讀出SPSR的值,再用其他指令將SPSR保存起來。

            ·在進(jìn)程切換時(shí)也需要保存當(dāng)前狀態(tài)寄存器值。

            (2)MSR 通用寄存器到狀態(tài)寄存器的傳送指令

            MSR指令用于將通用寄存器的內(nèi)容或一個(gè)立即數(shù)傳送到狀態(tài)寄存器中。

            MSR指令通常用于恢復(fù)狀態(tài)寄存器的內(nèi)容或者改變狀態(tài)寄存器的內(nèi)容。

            當(dāng)退出異常中斷處理程序時(shí),如果事先保存了狀態(tài)寄存器的內(nèi)容(如在嵌套的異常中斷處理中),則通常通過MSR指令實(shí)現(xiàn)將保存的狀態(tài)寄存器內(nèi)容恢復(fù)到狀態(tài)寄存器中。

            當(dāng)需要修改狀態(tài)寄存器的內(nèi)容時(shí),通過“讀?。薷模瓕懟亍敝噶钚蛄型瓿伞懟夭僮饕彩峭ㄟ^MSR指令完成的。

            考慮到指令執(zhí)行的效率,通常在MSR指令中指定指令將要修改的位域。



          評論


          相關(guān)推薦

          技術(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); })();