新聞中心

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

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

作者: 時間:2016-11-09 來源:網(wǎng)絡 收藏
1、LSL(或ASL)操作

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

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

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

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

操作示例

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

2、LSR操作

LSR操作的格式為:

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

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

操作示例:

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

3、ASR操作

ASR操作的格式為:

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

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

操作示例:

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

4、ROR操作

ROR操作的格式為:

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

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

操作示例:

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

5、RRX操作

RRX操作的格式為:

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

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

操作示例:

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


評論


技術專區(qū)

關閉