MSR和MRS 指令

來源:互聯網
上載者:User

 

(轉)http://blog.ednchina.com/yannzi/197679/message.aspx

& http://blog.sina.com.cn/s/blog_4117d8560100b432.html

1  狀態寄存器傳送至通用寄存器類指令
功能:將狀態寄存器的內容傳送至通用寄存器。

格式:
MRS{<條件碼>}Rd,CPSR}SPSR
其中:
Rd      目標寄存器,Rd不允許R15。
R=0     將CPSR中的內容傳送目的寄存器。
R=1     將SPSR中的內容傳送至目的寄存器。

注釋:
MRS與MSR配合使用,作為更新PSR的讀-修改-寫序列的一部分。例如:改變處理器或清除標誌Q。注意:當處理器在使用者模式或系統模式下,一定不能試圖訪問SPSR
這條指令不影響條件碼標誌。
例:
MRS   R0,CRSR              ;將CPSR中的內容傳送至R0
MRS   R3,SPSR              ;將SPSR中的內容傳送至R3

2  通用寄存器傳送至狀態寄存器傳送指令
功能:將通用寄存器的內容傳送至狀態寄存器。

格式:
MSR{<條件碼>CPSR_f|SPSR_f,<#ommed_8r>
MSR{<條件碼>CPSR_<field>|SPSR_<field>,Rm
其中:
<field>欄位可以是以下之一或多種:(位從右至左)
C:控制域屏蔽欄位(PSR中的第0位到第7位);
X:擴充域屏蔽欄位(PSR中的第8位到第15位);
S:狀態域屏蔽欄位(PSR中的第16位到第32位);
F:標誌域屏蔽欄位(PSR中的第24位到第31位)。
immed_8r  值數字常量的運算式。常量必須對應8位位元影像。該位元影像在32位字中迴圈移位偶數數位。
Rm        源寄存器。

注釋:
同前一條指令(MRS)。
例1:設定N、Z、C、V標誌。
MSR    CPSR_f,#&f0000000            ;僅高位有效,其他必須為0
例2:
僅置位C標誌,保留N、Z、V標誌。
MRS    R0,CPSR                    ;將CPSR中的內容傳送至R0
ORR    R0,R0,#&1f                ;置位R0的第29位
MSR    CPSR_c,R0                   ;再將R0中的內容傳送至CPSR

 

例子:設定cpu工作在超級保護模式(SVC32)

@set the cpu to SVC32 mode


mrs r0,cpsr  

 

@把CPSR內容存入r0.使用了mrs指令:專用寄存器到通過寄存器的存取.
@CPSR當前程式狀態寄存器格式如下:

@  31  30  29  28  27  26  25  24  ~ ~ ~ 8   7   6   5    4    3    2    1    0
@ ___ ___ ___ ___ ___ ___ ___ ___  _ _ _ _  ___ ___ ___ ____ ____ ____ ____ ____
@| N | Z | C | V | * | * | * | * | *  *  * | I | F | T | M4 | M3 | M2 | M1 | M0 |
@


bic r0,r0,#0x1f 

@bic指令(bit clear): r0:= r0 and (not op2).上邊的指令目的是把bit0~bit4清零.

 

orr r0,r0,#0xd3

@r0:= r0 or 0xd3 . 以上三條指令執行後r0值為:**** **** **** **** **** ***** 11*1 0011

 

msr cpsr,r0  

@把r0存於cpsr.注意:msr指令是專用的通用寄存器到特殊功能寄存器的指令與mrs對應

 

說明:通過上邊的指令可以看到,實現了兩個功能.1,disable 外部中斷(IRQ)與快速中斷(FIR).2,把系統設為SVC32狀態(超級保護)即M4~M1=10011

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.