新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM匯編指令集之八——移位指令(操作)

ARM匯編指令集之八——移位指令(操作)

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
1、LSL(或ASL)操作

LSL(或ASL)操作的格式為:

本文引用地址:http://butianyuan.cn/article/201611/317605.htm

通用寄存器,LSL(或ASL)操作數(shù)

LSL(或ASL)可完成對(duì)通用寄存器中的內(nèi)容進(jìn)行邏輯(或算術(shù))的左移操作,按操作數(shù)所指定的數(shù)量向左移位,低位用零來(lái)填充。其中,操作數(shù)可以是通用寄存器,也可以是立即數(shù)(0~31)。

操作示例

MOV R0, R1, LSL#2;將R1中的內(nèi)容左移兩位后傳送到R0中。

2、LSR操作

LSR操作的格式為:

通用寄存器,LSR操作數(shù)

LSR可完成對(duì)通用寄存器中的內(nèi)容進(jìn)行右移的操作,按操作數(shù)所指定的數(shù)量向右移位,左端用零來(lái)填充。其中,操作數(shù)可以是通用寄存器,也可以是立即數(shù)(0~31)。

操作示例:

MOV R0, R1, LSR#2;將R1中的內(nèi)容右移兩位后傳送到R0中,左端用零來(lái)填充。

3、ASR操作

ASR操作的格式為:

通用寄存器,ASR操作數(shù)

ASR可完成對(duì)通用寄存器中的內(nèi)容進(jìn)行右移的操作,按操作數(shù)所指定的數(shù)量向右移位,左端用第31位的值來(lái)填充。其中,操作數(shù)可以是通用寄存器,也可以是立即數(shù)(0~31)。

操作示例:

MOV R0, R1, ASR#2;將R1中的內(nèi)容右移兩位后傳送到R0中,左端用第31位的值來(lái)填充。

4、ROR操作

ROR操作的格式為:

通用寄存器,ROR操作數(shù)

ROR可完成對(duì)通用寄存器中的內(nèi)容進(jìn)行循環(huán)右移的操作,按操作數(shù)所指定的數(shù)量向右循環(huán)移位,左端用右端移出的位來(lái)填充。其中,操作數(shù)可以是通用寄存器,也可以是立即數(shù)(0~31)。顯然,當(dāng)進(jìn)行32位的循環(huán)右移操作時(shí),通用寄存器中的值不改變。

操作示例:

MOV R0, R1, ROR#2;將R1中的內(nèi)容循環(huán)右移兩位后傳送到R0中。

5、RRX操作

RRX操作的格式為:

通用寄存器,RRX操作數(shù)

RRX可完成對(duì)通用寄存器中的內(nèi)容進(jìn)行帶擴(kuò)展的循環(huán)右移的操作,按操作數(shù)所指定的數(shù)量向右循環(huán)移位,左端用進(jìn)位標(biāo)志位C來(lái)填充。其中,操作數(shù)可以是通用寄存器,也可以是立即數(shù)(0~31)。

操作示例:

MOV R0, R1, RRX#2;將R1中的內(nèi)容進(jìn)行帶擴(kuò)展的循環(huán)右移兩位后傳送到R0中。


關(guān)鍵詞: ARM匯編指令集移位指

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉