新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 數據傳送指令之:MOV指令

        數據傳送指令之:MOV指令

        作者: 時間:2013-09-13 來源:網絡 收藏

        5.1

        1.指令編碼格式

        是最簡單的指令,執行的結果就是把一個數N送到目標寄存器Rd,其中N可以是寄存器,也可以是立即數。

        本文引用地址:http://www.104case.com/article/257082.htm

        多用于設置初始值或者在寄存器間傳送數據。

        指令的編碼格式如圖5.1所示。

        圖5.1 MOV指令編碼格式

        MOV指令將移位碼(shifter_operand)表示的數據傳送到目的寄存器Rd,并根據操作的結果更新CPSR中相應的條件標志位。

        2.指令的語法格式

        MOV{cond>}{S} Rd>,shifter_operand>

        ① cond>

        為指令編碼中的條件域。它指示MOV指令在什么條件下執行。當cond>忽略時,指令為無條件執行(cond=AL(Alway))。

        ② S(bit[20])

        如果S=1,MOV指令更新CPSR中條件標志位的值;如果S=0,MOV指令不更新CPSR中條件標志位的值。當更新狀態寄存器CPSR中的條件標志位時,有兩種情況。

        · 如果指令中的目標寄存器Rd>不是為r15,指令根據傳送的數值設置CPSR中的N位和Z位(如果數據在傳送前需要移位,則根據移位后的數值設置),并根據移位器的進位值設置CPSR的C位。標志位V和其他位不受影響。

        · 如果指令中的目標寄存器Rd>為r15,則當前處理器模式對應的SPSR的值復制到CPSR寄存器中,對于用戶模式和系統模式,由于沒有相應的SPSR,指令執行的結果不可預知。

        ③ Rd>

        確定目標寄存器。

        ④ shifter_operand>

        確定操作數,為目標寄存器傳送數據。

        3.指令操作的偽代碼

        指令操作的偽代碼如下面程序段所示。

        If ConditionPassed{cond} then

        Rd=shifter_operand

        If S==1 and Rd==r15 then

        CPSR=SPSR

        Else if S==1 then

        N Flag = Rd[31]

        Z Flag = If Rd==0 then 1 else 0

        C Flag = shifter_carry_out

        V Flag = unaggected

        4.指令舉例

        【例5.1】MOV指令

        MOV指令把一個數N送到目標寄存器Rd,其中N可以是立即數,也可以是寄存器。

        MOV R0, R0 ; R0 = R0... NOP 指令

        MOV R0, R0, LSL#3 ; R0 = R0 * 8

        如果r15是目的寄存器,將修改程序計數器或標志。這用于返回到調用代碼,方法是把連接寄存器的內容傳送到r15。

        MOV PC, R14 ; 退出到調用者

        MOVS PC, R14 ; 退出到調用者并恢復標志位

        5.指令的使用

        MOV指令主要完成以下功能。

        · 將數據從一個寄存器傳送到另一個寄存器。

        · 將一個常數值傳送到寄存器中。

        · 實現無算術和邏輯運算的單純移位操作,操作數乘2n可以用左移n位來實現。

        · 當PC寄存器(r15)用作目的寄存器時,可以實現程序跳轉。如“MOV PC,LR”,所以這種跳轉可以實現子程序調用以及從子程序返回,代替指令“B,BL”。

        注意

        在體系結構v4和v5以上的版本,必須使用BX指令代替MOV PC,LR指令,因為BX指令可以自動實現和Thumb的切換。

        ·

        當PC寄存器作為目標寄存器且指令中S位被設置時,指令在執行跳轉操作的同時,將當前處理器模式的SPSR寄存器內容復制到CPSR中。這種指令“MOVS PC LR”可以實現從某些異常中斷中返回。

        塵埃粒子計數器相關文章:塵埃粒子計數器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浏阳市| 嘉祥县| 西吉县| 黄龙县| 乐陵市| 昭觉县| 鲁山县| 卢湾区| 蒙山县| 丽江市| 斗六市| 沧州市| 靖宇县| 望谟县| 凤翔县| 墨玉县| 铁岭县| 友谊县| 安徽省| 宿松县| 嫩江县| 宜黄县| 昌黎县| 广灵县| 洱源县| 博罗县| 大庆市| 祁连县| 赤壁市| 奈曼旗| 衡东县| 香港 | 嘉祥县| 揭阳市| 永修县| 阳江市| 鲜城| 城步| 湟源县| 鄂尔多斯市| 兴山县|