×
单片机 > 单片机程序设计 > 详情

ARM汇编指令集之八——移位指令(操作)

发布时间:2020-06-02 发布时间:
|
1、LSL(或ASL)操作

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

通用寄存器,LSL(或ASL) 操作数     

LSL(或ASL)可完成对通用寄存器中的内容进行逻辑(或算术)的左移操作,按操作数所指定的数量向左移位,低位用零来填充。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。

操作示例

MOV   R0, R1, LSL#2               ;将R1中的内容左移两位后传送到R0中。

2、LSR操作

LSR操作的格式为:

通用寄存器,LSR 操作数     

LSR可完成对通用寄存器中的内容进行右移的操作,按操作数所指定的数量向右移位,左端用零来填充。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。

操作示例:

MOV   R0, R1, LSR#2            ;将R1中的内容右移两位后传送到R0中,左端用零来填充。

3、ASR操作

ASR操作的格式为:

通用寄存器,ASR 操作数     

ASR可完成对通用寄存器中的内容进行右移的操作,按操作数所指定的数量向右移位,左端用第31位的值来填充。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。

操作示例:

MOV    R0, R1, ASR#2          ;将R1中的内容右移两位后传送到R0中,左端用第31位的值来填充。

4、ROR操作

ROR操作的格式为:

通用寄存器,ROR 操作数     

ROR可完成对通用寄存器中的内容进行循环右移的操作,按操作数所指定的数量向右循环移位,左端用右端移出的位来填充。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。显然,当进行32位的循环右移操作时,通用寄存器中的值不改变。

操作示例:

MOV    R0, R1, ROR#2           ;将R1中的内容循环右移两位后传送到R0中。

5、RRX操作

RRX操作的格式为:

通用寄存器,RRX 操作数     

RRX可完成对通用寄存器中的内容进行带扩展的循环右移的操作,按操作数所指定的数量向右循环移位,左端用进位标志位C来填充。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。

操作示例:

MOV   R0, R1, RRX#2             ;将R1中的内容进行带扩展的循环右移两位后传送到R0中。
关键字:ARM  汇编指令集  移位指令

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址