真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

嵌入式:交換指令之SWP,MRS,MSR-創(chuàng)新互聯(lián)

文章目錄
    • 存儲器與寄存器交換指令(SWP)
      • 二進制編碼格式
      • 匯編格式
      • 舉例
    • 狀態(tài)寄存器與通用寄存器之間的傳送指令
    • MRS
      • MRS的二進制編碼
      • 匯編格式
    • MSR
      • MSR的二進制編碼
      • 匯編格式

成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南雄,十余年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108存儲器與寄存器交換指令(SWP)

交換指令把字或無符號字節(jié)的讀取和存儲組合在了一條指令中。這種組合指令通常用于不能被外部其他存儲器訪問(如:DMA訪問)打斷的存儲器操作。一般用于處理器之間或處理器與DMA控制器之間共享信息的互斥訪問。

二進制編碼格式

匯編格式
SWP{} {B} Rd,Rm,[Rn]

本指令將存儲器中地址為Rn處的字(B=0)或無符號字節(jié)(B=1)讀入寄存器Rd,同時,將Rm中同樣類型的數(shù)據(jù)存入存儲器中相同的位置。Rd和Rm可以相同,但與Rn應(yīng)該不同。另外,PC不能出現(xiàn)在該指令中。

舉例
LDR  R0,SEMAPHORE
SWPB R1,R1,[R0] ;交換字節(jié),將存儲器單元[R0]中的字節(jié)數(shù)據(jù)讀取到R1中,同時,將R1中的數(shù)據(jù)寫入到存儲器單元[R0]中 
SWP  R1,R2,[R3]; 交換字數(shù)據(jù),將存儲單元[R3]中的字數(shù)據(jù)讀取到R1中,同時,將R2中的數(shù)據(jù)寫入到存儲單元[R3]中。           

?

狀態(tài)寄存器與通用寄存器之間的傳送指令

ARM指令中有兩條指令,用于在狀態(tài)寄存器和通用寄存器之間傳送數(shù)據(jù)。修改狀態(tài)寄存器一般是通過“讀取-修改-寫回”三個步驟的操作來實現(xiàn)的。 這兩條指令分別是:

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

MRS指令用于將狀態(tài)寄存器的內(nèi)容傳送到通用寄存器中,它主要用于以下3種場合:

  1. 通過“讀-修改-寫”修改狀態(tài)寄存器的內(nèi)容。MRS用于將狀態(tài)寄存器的內(nèi)容讀到通用寄存器中,以便修改。
  2. 當異常中斷允許嵌套時,需要在進入異常中斷后,嵌套中斷發(fā)生之前,保存當前處理器模式的SPSR。這是需要先通過MRS指令讀出SPSR的值,然后用其他指令將SPSR的值保存起來。
  3. 當進程切換時,也需要保存當前寄存器的值。
MRS的二進制編碼

這里R用來區(qū)分是將CPSR還是SPSR拷貝到目的寄存器Rd,全部32位都被拷貝。

匯編格式
MRS{} Rd,CPSR|SPSR

舉例:

MRS   R0,CPSR  ;將CPSR傳送到R0 
    MRS  R3,SPSR   ;將SPSR傳送到R3

注意事項:

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

在用戶或系統(tǒng)模式下沒有可以訪問的SPSR,所以SPSR形式在這些模式下不能用。

當修改CPSR或SPSR時,必須注意保存所有未使用位的值。
這條指令不影響條件標志碼。

MSR MSR的二進制編碼

操作數(shù)可以是一個寄存器Rm也可以是帶循環(huán)移位的8位有效立即數(shù),在域屏蔽的控制下傳送到CPSR或SPSR。

域屏蔽控制PSR中4字節(jié)的更新,其中第16位控制PSR[7:0]是否更新,第17位控制PSR[15:8],第18位控制PSR[23:16],第19位控制PSR[31:24]。使用立即數(shù)時,只有PSR[31:24]可選擇。

匯編格式
MSR{} CPSR_f | SPSR_f,#<32-bit immediate>MSR{} CPSR_| SPSR_,Rm

這里的表示下列情況之一:

  • c—控制域,對應(yīng)PSR[7:0]
  • x—擴展域,對應(yīng)PSR[15:8](在當前ARM中未使用)
  • s—狀態(tài)域,對應(yīng)PSR[23:16](在當前ARM中未使用)
  • f—標志位域,對應(yīng)PSR[31:24]

舉例:

  1. 設(shè)置N、Z、C和V標志位
 MSR    CPSR_f,#0xF0000000  ;設(shè)置所有標志位
  1. 僅設(shè)置C標志位,保存N、Z和V
 MRS    R0,CPSR      ;將CPSR傳送到R0
         ORR    R0,R0,#0x200000000 ;設(shè)置R0的第29位
         MSR    CPSR_f,R0    ;傳送回CPSR
  1. 從監(jiān)控模式切換到IRQ模式
 MRS   R0,CPSR       ;將CPSR傳送到R0
         BIC   R0,R0,#0x1F   ;低5位清0
         ORR  R0,R0,#0x12  ;設(shè)置為IRQ模式
         MSR  CPSR_c,R0    ;傳送回CPSR

注意事項:

在用戶模式下不能對CPSR[23:0]做任何修改。

在用戶或系統(tǒng)模式下沒有SPSR,所以應(yīng)盡量避免在這些模式下訪問SPSR。

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

在修改的狀態(tài)寄存器位域中包括未分配的位時,避免使用立即數(shù)方式的MSR指令。

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

參考文獻:

孟祥蓮.嵌入式系統(tǒng)原理及應(yīng)用教程(第2版)[M].北京:清華大學出版社,2017.

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


本文題目:嵌入式:交換指令之SWP,MRS,MSR-創(chuàng)新互聯(lián)
瀏覽地址:http://weahome.cn/article/cooohi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部