汇编语言——移位指令[通俗易懂]

基本概念移位操作指令:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。基本格式格式为…

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

基本概念

移位操作指令:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。

基本格式 

格式为:xxx oper1,CL/1

移位次数只能是1或者存放在CL里面。

移位指令

一、算术移位指令

1、算术左移指令SAL

功能:左移一次,最低位补0,最高位送入CF标志位,如图:

汇编语言——移位指令[通俗易懂]

意义:左移n次,等于x2的n次幂。所以可用于有符号操作数做x2的n次幂运算。

2、算术右移指令SAR

功能:右移一次,最高位保持不变,最低位送入CF标志位,如图:

汇编语言——移位指令[通俗易懂]

意义:右移n次,等于/2的n次幂。所以可用于有符号操作数做/2的n次幂运算。

二、逻辑移位指令

1、逻辑左移指令SHL

功能:同SAL,如图:

汇编语言——移位指令[通俗易懂]

意义:同SAL

2、逻辑右移指令SHR

功能:右移一次,最高位补0.区别!最低位送入CF标志位。如图:

汇编语言——移位指令[通俗易懂]

意义:用于实现无符号数/2的n次幂操作。

三、循环移位指令

1、循环左移指令ROL

功能:左移一次,左移前的最高位送入最低位以及CF.如图:

汇编语言——移位指令[通俗易懂]

2、循环右移指令ROR

功能:右移一次,右移前的最低位送入最高位以及CF.如图:

汇编语言——移位指令[通俗易懂]

3、带进位的循环左移指令RCL

功能:左移一次,左移前的最高位送入CF,CF的内容送入最低位.如图:

汇编语言——移位指令[通俗易懂]

4、带进位的循环右移指令RCR

功能:右移一次,右移前的最低位送入CF,CF的内容送入最高位.如图:

汇编语言——移位指令[通俗易懂]

四、双精度移位指令

1、双精度左移指令SHLD

 

2、双精度右移指令SHRD

 

参考文章

https://blog.csdn.net/qq_41627235/article/details/80368254

https://baike.baidu.com/item/%E7%A7%BB%E4%BD%8D%E6%8C%87%E4%BB%A4/10562725?fr=aladdin

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

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

(0)
上一篇 2022年4月16日 下午3:40
下一篇 2022年4月16日 下午4:00


相关推荐

  • 无锁环形缓冲区的详细解释

    无锁环形缓冲区的详细解释由以下博客的分析可以知道,内核的kfifo使用了很多技巧以实现其高效性。比如,通过限定写入的数据不能溢出和内存屏障实现在单进程写单进程读的情况下不使用锁。因为锁是使用在共享资源可能存在冲突的情况下。还用设置buffer缓冲区的大小为2的幂次方,以简化求模运算。通过使用unsignedint为kfifo的下标,可以不用考虑每次下标超过size时对下表进行取模运算赋值,这里使用到了无符号整数的溢出回

    2022年5月21日
    90
  • 「OpenClaw直连苹果」买不起Mac Mini的我,写了个Skills

    「OpenClaw直连苹果」买不起Mac Mini的我,写了个Skills

    2026年3月13日
    2
  • 三次样条插值Python实现

    三次样条插值Python实现函数 y 11 x2y 11 x2y frac 1 1 x 2 算法分析三次样条插值 就是在分段插值的一种情况 要求 在每个分段区间上是三次多项式 这就是三次样条中的三次的来源 在整个区间 开区间 上二阶导数连续 当然啦 这里主要是强调在节点上的连续 加上边界条件 边界条件只需要给出两个方程 构建一个方程组 就可以解出所有的参数 这里话 根据第一类样条作

    2025年11月29日
    6
  • vm15激活码(JetBrains全家桶)

    (vm15激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~BI…

    2022年3月22日
    116
  • origin相关绘图操作[通俗易懂]

    origin相关绘图操作[通俗易懂]博客的另外地址:http://www.datalearner.com/blog/1051510886845466日常绘图时,会使用都origin,其是一款非常强大的制图工具,以下内容,会记录我使用过的功能,使用方法操作。其强大的功能,我认为就是图层的使用,可以绘制多张图,利用图层管理将多张图进行合并,而且操作随意性好。如下,是我从网络上截取的几张图。origin添加数据origin添加数据非

    2022年5月6日
    83
  • OpenClaw 部署保姆级教程之部署你的第一只大龙虾(ClawdBot/Moltbot)

    OpenClaw 部署保姆级教程之部署你的第一只大龙虾(ClawdBot/Moltbot)

    2026年3月13日
    2

发表回复

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

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