您的位置 首页 芯闻

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

1、LSL(或ASL)操作LSL(或ASL)操作的格式为:通用寄存器,LSL(或ASL)操作数LSL(或ASL)可完成对通用寄存器中的内容进行逻辑(或算术…

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中。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/276522.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部