arm指令移位指令

arm指令移位指令arm指令移位指令LSL逻辑左移ASL算术左移LSR逻辑右移ASR算术右移ROR循环右移RRX带扩展的循环右移ASL和LSL是等同的,可以自由互换。你可以用一个立即值(从0到31)指定移位数量,或用包含在0和31之间的一个值的寄存器指定移位数量。 逻辑或算术左移(LSL)MOVR1,#1

大家好,又见面了,我是你们的朋友全栈君。



arm指令移位指令


LSL 逻辑左移 ASL 算术左移 LSR 逻辑右移 ASR 算术右移 ROR 循环右移 RRX 带扩展的循环右移ASLLSL 是等同的,可以自由互换。

你可以用一个立即值(从 0 到 31)指定移位数量,或用包含在 0 和 31 之间的一个值的寄存器指定移位数量。

 

逻辑或算术左移(LSL)

MOV R1, #12

MOV R0, R1, LSL#2

                                    R0 是 48。 这些指令形成的总和是R0 = #12, LSL#2 等同于 BASIC 的 R0 = 12 << 2

  – – – – – – – – – – – – – – — – – – – — – 参考:

逻辑或算术左移

(Logical or ArithmeticShift Left)

  Rx, LSL #n    or
  Rx, ASL #n    or
  Rx, LSL Rn    or
  Rx, ASL Rn

接受 Rx 的内容并按用‘n’或在寄存器 Rn 中指定的数量向高有效位方向移位。最低有效位用零来填充。除了概念上的第 33 位(就是被移出的最小的那位)之外丢弃移出最左端的高位,如果逻辑类指令中 S 位被设置了,则此位将成为从桶式移位器退出时进位标志的值。

考虑下列:

  MOV    R1, #12
  MOV    R0, R1, LSL#2

在退出时,R0 是 48。 这些指令形成的总和是 R0 = #12, LSL#2 等同于 BASIC 的R0 = 12 << 2

 

逻辑右移

(Logical ShiftRight)

  Rx, LSR #n    or
  Rx, LSR Rn

它在概念上与左移相对。把所有位向更低有效位方向移动。如果逻辑类指令中 S 位被设置了,则把最后被移出最右端的那位放置到进位标志中。它同于 BASIC 的register = value >>> shift

 

算术右移

(Arithmetic ShiftRight)

  Rx, ASR #n    or
  Rx, ASR Rn

类似于 LSR,但使用要被移位的寄存器(Rx)的第 31 位的值来填充高位,用来保护补码表示中的符号。如果逻辑类指令中 S 位被设置了,则把最后被移出最右端的那位放置到进位标志中。它同于 BASIC 的register = value >> shift

 

循环右移

(Rotate Right)

  Rx, ROR #n    or
  Rx, ROR Rn

循环右移类似于逻辑右移,但是把从右侧移出去的位放置到左侧,如果逻辑类指令中 S 位被设置了,则同时放置到进位标志中,这就是位的‘循环’。一个移位量为 32 的操作将导致输出与输入完全一致,因为所有位都被移位了 32 个位置,又回到了开始时的位置!

 

带扩展的循环右移

(Rotate Right with extend)

  Rx, RRX

这是一个 ROR#0 操作,它向右移动一个位置 – 不同之处是,它使用处理器的进位标志来提供一个要被移位的 33 位的数量。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137693.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 分布式事务TCC框架-hmily(spring cloud feign)

    分布式事务TCC框架-hmily(spring cloud feign)官网案例:文档(springcloud):https://dromara.org/zh/projects/hmily/user-springcloud/官网示例:https://github.com/dromara/hmily/tree/master/hmily-demo/hmily-demo-springcloud本示例:https://codechina.csdn.net/wwwzhouzy/zhouzy-hmily一、说明hmily是一个高性能异步分布式事务TCC框架,具有以下..

    2022年5月21日
    116
  • MySQL数据库管理工具_Mysql数据库

    MySQL数据库管理工具_Mysql数据库官方社区版免费工具MySQLWorkbenchMySql官方社区版下载:MySQLCommunityDownloadsMySQLYumRepository MySQLAPTRepository MySQLSUSERepository MySQLCommunityServer MySQLCluster MySQLRouter MySQLShell MySQLWorkbench MySQLInstallerforWind…

    2022年8月22日
    4
  • nginx设置编码格式utf-8[通俗易懂]

    nginx设置编码格式utf-8[通俗易懂]nginx设置编码格式utf-8在server下配置charsetutf-8;server{listen8000;server_namelocalhost;charsetutf-8;}后台使用tomcat时,get请求参数乱码更改nginx编码格式设置无效需要更改tomcat编…

    2022年7月11日
    356
  • 彻底卸载pycharm 恢复环境

    彻底卸载pycharm 恢复环境彻底卸载pycharm配置文件恢复最初环境

    2022年8月28日
    2
  • linux 下tar打包举例,Linux tar打包命令

    linux 下tar打包举例,Linux tar打包命令Linuxtar打包命令:范例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar[root@linux~]#tar-cvf/tmp/etc.tar/etc<==仅打包,不压缩![root@linux~]#tar-zcvf/tmp/etc.tar.gz/etc<==打包后,以gzip压缩[root@linux~]#tar-j…

    2022年5月31日
    46
  • 怎样创建FTP服务器

    怎样创建FTP服务器1W次浏览2016.07.21更新用IIS建立FTP服务器不是非常复杂,操作起来比较简单,类似于用IIS建立网站,其中涉及的虚拟目录等概念和网站中的虚拟目录一致。用IIS建立FTP服务器不是非常

    2022年7月4日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号