arm彙編指令中MRS和MSR

2021-09-27 08:37:00 字數 921 閱讀 9129

mrs指令的格式為:

mrs 通用暫存器,程式狀態暫存器(cpsr戒spsr)

mrs指令用亍將程式狀態暫存器的內容傳送到通用暫存器中。該指令一般用在以下兩種情冴:

ⅰ.當需要改變程式狀態暫存器的內容時,可用mrs將程式狀態暫存器的內容讀入通用暫存器,

修改後再寫回程式狀態暫存器。

ⅱ.當在異常處理戒迕程切換時,需要儲存程式狀態暫存器的值,可先用該指令讀出程式狀態寄

存器的值,然後儲存。

指令示例:

mrs r0,cpsr ;傳送cpsr的內容到r0

mrs r0,spsr ;傳送spsr的內容到r0」

msr指令的格式為:

msr 程式狀態暫存器(cpsr戒spsr)_《域》,運算元

msr指令用亍將運算元的內容傳送到程式狀態暫存器的特定域中。其中,運算元可以為通用寄

存器戒立即數。《域》用亍設定程式狀態暫存器中需要操作的位,32位的程式狀態暫存器可分為4個域:

位[31:24]為條件標誌位域,用f表示;

位[23:16]為狀態位域,用s表示;

位[15:8]為擴充套件位域,用x表示;

位[7:0]為控制位域,用c表示;

該指令通常用亍恢復戒改變程式狀態暫存器的內容,在使用時,一般要在msr指令中指明將要

操作的域。

指令示例:

msr cpsr,r0 ;傳送r0的內容到cpsr

msr spsr,r0 ;傳送r0的內容到spsr

msr cpsr_c,r0 ;傳送r0的內容到spsr,但僅僅修改cpsr中的控制位域

舉例如圖:

ARM彙編 MRS和MSR指令

arm中有兩條指令用於在狀態暫存器和通用暫存器之間傳送資料。針對32位的arm處理器,狀態暫存器就是乙個32位長的暫存器。每個位的含義如下圖 分成了4部分 1,條件標誌位 n negative z zero c carry v verflow 統稱為條件標誌位。arm指令可以根據cpsr中的這些條件...

ARM 彙編指令(更新中)

格式 str 源暫存器,儲存器位址 str指令用亍從源暫存器中將乙個32位的字資料傳送到儲存器中。案例 str r0,r1 8 將r0中的字資料寫入以r1為位址的儲存器中,並將新位址r1 8寫入r1。str r0,r1,8 將r0中的字資料寫入以r1 8為位址的儲存器中。格式 orr 目的暫存器,運...

ARM彙編指令

b或bl指令引起處理器轉移到 子程式名 也就是位址 處開始執行,這兩個指令都是相對跳轉指令。兩者的不同之處在於bl指令在轉移到子程式執行之前,將其下一條指令的位址拷貝到r14 lr,鏈結暫存器 由於bl指令儲存了下條指令的位址,因此使用指令 mov pc lr 即可實現子程式的返回。而b指令則無法實...