汇编指令(四)移位指令

汇编指令(四)移位指令学习概要格式移位指令主要分四种一、逻辑移位指令1.逻辑左移指令SHL2.逻辑右移指令SHR3.逻辑移位指令的功能二、算术移位指令1.算术左移指令SAL2.算术右移指令SAR最高位不变的意思就是,最高位原来是1(0),右移过后最高位就补1(0)。3.算术移位指令的功能三、循环移位指令1.循环左移指令ROL2.循环右移指令ROR四、带进位的循环移位指令1.带进位的循环左移指令RCL2.带进位的循环右移指令移位指令对标志位的影响1

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

学习概要

格式
在这里插入图片描述

在这里插入图片描述

移位指令主要分四种
在这里插入图片描述

一、逻辑移位指令

1.逻辑左移指令SHL

在这里插入图片描述

在这里插入图片描述

2.逻辑右移指令SHR

在这里插入图片描述
在这里插入图片描述

3.逻辑移位指令的功能

在这里插入图片描述

二、算术移位指令

1.算术左移指令SAL

在这里插入图片描述
在这里插入图片描述

2.算术右移指令SAR

在这里插入图片描述
在这里插入图片描述

最高位不变的意思就是,最高位原来是1(0),右移过后最高位就补1(0)。

3.算术移位指令的功能

在这里插入图片描述

三、循环移位指令

1.循环左移指令ROL

在这里插入图片描述
在这里插入图片描述

2.循环右移指令ROR

在这里插入图片描述
在这里插入图片描述

四、带进位的循环移位指令

1.带进位的循环左移指令RCL

在这里插入图片描述
在这里插入图片描述

2.带进位的循环右移指令

在这里插入图片描述
在这里插入图片描述

移位指令对标志位的影响

1.算术、逻辑指令

  • CF的影响比较明显,就看移位规则。
  • SF、ZF看移位后的结果
  • OF 当移位次数不为1时无定义。当移位操作改变了操作数的最高位时-符号位,OF=1,否则为0

2.循环移位指令

  • CF看移位规则
  • SF、ZF 不受影响
  • OF 当移位次数不为1时无定义。当移位操作改变了操作数的最高位时-符号位,OF=1,否则为0

区别就在于SF和ZF ,算术、循环指令看结果,循环指令无影响

1.

在这里插入图片描述

分析,AX逻辑左移时,最高位应该移进DX。逻辑左移AX时最高位时保存在CF里边,所以要想DX的最低位是AX移动的最高位,对DX进行带进位的循环左移。
在这里插入图片描述

2.

在这里插入图片描述

分析:假设数据为无符号数,结果仍为16位,不溢出。 乘3可以换成2的幂加减。比如换成逻辑左移2位(相当于乘4),再减去一次。或者逻辑左移移位(相当于乘2),再加一次。
在这里插入图片描述

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

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

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


相关推荐

  • CentOS 7 yum卸载jdk、安装jdk以及配置jdk环境

    CentOS 7 yum卸载jdk、安装jdk以及配置jdk环境CentOS7yum卸载jdk、安装jdk以及配置jdk环境查看是否已经安装jdk通过命令查询是否已经安装jdk//括号中选择一个即可yumlistinstalled|grep[java][jdk]运行结果类似下图则说明系统已经存在jdk,可卸载卸载jdk(若未存在jdk不用执行)卸载的jdk按已存在的jdk版本进行卸载,示例为jdk1.8.0,不知版本号可观上图…

    2022年5月25日
    42
  • SpringMVC 执行流程

    SpringMVC 执行流程springMVC(javaweb开发框架)1、MVC三层架构:模型(service、dao)、视图(JSP等)、控制器(Controller)什么是mvc?*MVC是模型、视图、控制器的简写,是一种软件设计规范*是将业务逻辑、数据、显示分离的方法来组织代码*MVC主要的作用就是降低了控制器(Controller)和视图(View)之间的双向耦合度*MVC不是一种设计模式、MVC是一种架构模式。当然不同的MVC存在着差异Model(数据模型):提供要展示的数据。因此包含数据和

    2022年6月28日
    25
  • ubuntu 20.04 安装中文输入法_如何在ubuntu中安装中文输入法

    ubuntu 20.04 安装中文输入法_如何在ubuntu中安装中文输入法在Ubuntu系统中,无论是写文档还是在程序中写注释,都经常需要用到中文输入法。本文简单介绍了三种输入法框架,然后详细介绍了在Ubuntu20.04系统中,IBus框架和Fcitx框架支持的中文输入法的配置和安装。……

    2022年9月26日
    1
  • 牛客网—-将一个字符串中的空格替换成“20% ”。

    牛客网—-将一个字符串中的空格替换成“20% ”。方法一: public class Demo7 { public static void main(String[] args) { StringBuffer str = new StringBuffer(); str.append("We are family"); System.out.println(replaceSpace(str)); } public s…

    2022年6月13日
    28
  • DrawCall_draw a drawing

    DrawCall_draw a drawing关于unity优化,DrawCall肯定占了比较重要的一部分,下面我们就简单了解一下什么是Drawcall。什么是DrawCall?在电脑运行层面理解:rawcall是CPU对底层图形绘制接口的调用命令GPU执行渲染操作,渲染流程采用流水线实现,CPU和GPU并行工作,它们之间通过命令缓冲区连接,CPU向其中发送渲染命令,GPU接收并执行对应的渲染命令。这里drawcall影响绘制的原因主要是因为每次绘制时,CPU都需要调用drawcall而每个drawcall都需要很多准备工作,检测渲染状态、提交

    2022年9月19日
    2
  • RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)

    RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)

    2021年12月7日
    1.6K

发表回复

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

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