新聞中心

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

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

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

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

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

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

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

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

          MRS(條件) Rd>' CPSR

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

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

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

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

          ·在進程切換時也需要保存當前狀態(tài)寄存器值。

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

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

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

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

          當需要修改狀態(tài)寄存器的內(nèi)容時,通過“讀取-修改-寫回”指令序列完成。寫回操作也是通過MSR指令完成的。

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



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 德惠市| 苏尼特右旗| 比如县| 云林县| 黑水县| 遵义县| 玛多县| 东光县| 长沙市| 凤阳县| 连州市| 鄂尔多斯市| 崇仁县| 沐川县| 当阳市| 四会市| 唐河县| 旌德县| 黄浦区| 逊克县| 昭苏县| 日照市| 广灵县| 临洮县| 全南县| 萨迦县| 来凤县| 朝阳区| 信阳市| 察哈| 博罗县| 甘孜| 穆棱市| 湘乡市| 乐山市| 贵德县| 冀州市| 泗洪县| 沭阳县| 漳浦县| 清丰县|