移位指令作用是什么意思_移位指令作用是什么意思啊

移位指令作用是什么意思_移位指令作用是什么意思啊汇编语言微机CPU的指令系统(五)(移位操作指令)(5) 移位操作指令移位操作指令是一组经常使用的指令,它包括算术移位、逻辑移位、双精度移位、循环移位和带进位的循环移位等五大类。移位指令都有指定移动二进制位数的操作数,该操作

汇编语言–微机CPU的指令系统(五)(移位操作指令)
  (5) 移位操作指令

  移位操作指令是一组经常使用的指令,它包括算术移位、逻辑移位、双精度移位、循环移位和带进位的循环移位等五大类。

  移位指令都有指定移动二进制位数的操作数,该操作数可以是立即数或CL的值。在8086中,该立即数只能为1,但在其后的CPU中,该立即数可以是1··31之内的数。

  1、算术移位指令

  算术移位指令有:算术左移SAL(Shift Algebraic Left)和算术右移SAR(Shift Algebraic Right)。它们的指令格式如下:

  SAL/SAR Reg/Mem, CL/Imm

  受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。

  算术移位指令的功能描述如下,具体功能下图(a)、(b)所示。

  算术左移SAL把目的操作数的低位向高位移,空出的低位补0,左移n位可以实现乘以2^n的功能;

  算术右移SAR把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补,右移n位可以实现乘以2^(-n)的功能。

  clip_image002

  例5.10 已知(AH)=12H,(BL)=0A9H,试给出分别用算术左移和右移指令移动1位后,寄存器AH和BL的内容。

  解:用算术左移和右移指令移动1位后,寄存器AH和BL的结果如下表所示。

  clip_image004

  2、逻辑移位指令

  此组指令有:逻辑左移SHL(Shift Logical Left)和逻辑右移SHR(Shift Logical Right)。它们的指令格式如下:

  SHL/SHR Reg/Mem, CL/Imm

  受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。

  逻辑左移/右移指令只有它们的移位方向不同,移位后空出的位都补0。它们的具体功能下图(a)、(b)所示。

  clip_image006

  例5.11 已知(AH)=12H,(BL)=0A9H,试给出分别用逻辑左移和右移指令移动1位后,寄存器AH和BL的内容。

  解:用算术左移和右移指令移动1位后,寄存器AH和BL的结果如下表所示。

  clip_image008

  3、双精度移位指令

  此组指令有:双精度左移SHLD(Shift Left Double)和双精度右移SHRD(Shift Right Double)。它们都是具有三个操作数的指令,其指令的格式如下:

  SHLD/SHRD Reg/Mem, Reg, CL/Imm ;80386+

  其中:第一操作数是一个16位/32位的寄存器或存储单元;第二操作数(与前者具有相同位数)一定是寄存器;第三操作数是移动的位数,它可由CL或一个立即数来确定。

  在执行SHLD指令时,第一操作数向左移n位,其“空出”的低位由第二操作数的高n位来填补,但第二操作数自己不移动、不改变。

  在执行SHRD指令时,第一操作数向右移n位,其“空出”的高位由第二操作数的低n位来填补,但第二操作数自己也不移动、不改变。

  SHLD和SHRD指令的移位功能示意图如图5.8所示。

  受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)

  clip_image010

  下面是几个双精度移位的例子及其执行结果。

  clip_image012

  4、循环移位指令

  循环移位指令有:循环左移ROL(Rotate Left)和循环右移ROR(Rotate Right)。

  指令的格式:ROL/ROR Reg/Mem, CL/Imm

  受影响的标志位:CF和OF

  循环左移/右移指令只是移位方向不同,它们移出的位不仅要进入CF,而且还要填补空出的位。具体功能如下图(a)、(b)所示。

  clip_image014

  下面是几个循环移位的例子及其执行结果。

  clip_image016

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

  带进位的循环移位指令有:带进位的循环左移RCL(Rotate Left Through Carry)和带进位的循环右移RCR(Rotate Right)。

  指令的格式:RCL/RCR Reg/Mem, CL/Imm

  受影响的标志位:CF和OF

  带进位的循环左移/右移指令只有移位的方向不同,它们都用原CF的值填补空出的位,移出的位再进入CF。具体功能如下图(a)、(b)所示。

  clip_image018

  下面是几个带进位循环移位的例子及其执行结果。

  clip_image020

  例5.12 编写指令序列把由DX和AX组成的32位二进制算术左移、循环左移1位。

  解:

  clip_image022

  总结:

  逻辑左移时,最高位丢失,最低位补0;

  逻辑右移时,最高位补0,最低位丢失;

  算术左移时,依次左移一位,尾部补0,最高的符号位保持不变。

  算术右移时,依次右移一位,尾部丢失,符号位右移后,原位置上复制一个符号位;

  循环左移时,将最高位重新放置最低位

  循环右移时,将最低位重新放置最高位

  使用循环操作的一个目的就是把每一位连续放到最左边,以判定数据的符号。如果要把一个数字的高位部分和低位部分互换,采用一位操作就很方便,速度很快。

  例如:

  1010100010101  

  逻辑左移一位结果为 0101000101010

  逻辑右移一位结果为 0101010001010

  算术左移一位结果为 1101000101010

  算术右移一位结果为 1101010001010

  循环左移一位结果为 0101000101011

  循环右移一位结果为 1101010001010

  循环左移ROL和带位循环左移RCL的区别:

  假设当前,AL=01010011B,CF=1,则

  执行指令 ROL AL,1

  后,AL=10100110B,CF=0

  执行指令 RCL AL,1

  后,AL=10100111B,CF=0

  最后一位的1,是先前CF的1

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/94585.html

(0)
上一篇 2024年 5月 26日
下一篇 2024年 5月 26日

相关推荐

  • xshell怎么读音_powershell怎么读

    xshell怎么读音_powershell怎么读再见 Xshell !这款开源的终端工具逼格更高!作为一名后端开发,我们经常需要和Linux系统打交道,免不了要使用Xshell这类终端工具来进行远程管理。最近发现一款更炫酷的终端工具Tabby,主题丰富,功能强大,推荐给

    2024年 4月 29日
  • jrebel激活码2020_jrebel 激活

    jrebel激活码2020_jrebel 激活Intellij IDEA2021版本 热部署插件之jrebel使用教程 [附赠 jrebel 激活,jrebel 激活成功教程]jrebel使用教程,jrebel激活,jrebel激活成功教程,IDEA教程,IDEA基础教程,IDEA高级教程,IDEA核心教程,IDE

    2024年 5月 30日
  • 存储器分几个层次_存储器分几个层次组成

    存储器分几个层次_存储器分几个层次组成Untitled Document实际上,Cache、主存、磁盘这三个存储器可以分别构成"Cache-主存"和"主存-磁盘"两个存储系统,也可以构成"Cache-主存-磁盘"

    2024年 5月 25日
  • 同步检测与测评六年级上册答案语文

    同步检测与测评六年级上册答案语文以下是小编为大家分享的统编版小学语文六年级上册天天向上同步测试卷(有答案),有单元+月考+期中+专项+期末测试,建议各位家长领取打印给孩子测试!试卷均包含参考答案哦~领取电子版试卷请拉到文末温馨提示关注小编+私信备注语文六年级上册天天向上同步测试卷

    激活谷笔记 2024年 5月 18日
  • web微信网页版_微信网页版手机登录入口

    web微信网页版_微信网页版手机登录入口web端第三方登录最近接触了下登录,抽出空写下这次做登录的整个过程吧(包括自己遇到的坑),当做笔记记录下 我所做的是第三方网站的登录,(也就是呢&

    2024年 5月 9日
  • 串口收不到数据原因怎么解决_串口收不到数据原因怎么解决呢

    串口收不到数据原因怎么解决_串口收不到数据原因怎么解决呢如何学习汽车 CAN-BUS 系统?学习汽车 CAN-BUS 系统需要做哪些准备?需要有哪些方面的知识储备?CAN的起源传统的汽车线束连接比较复杂。动力域控制器、仪表盘、车身域控制器之间用大量线束连接。动力域控制包括:发动机控制Engine Contro

    2024年 5月 30日
  • gpedit.msc没有会怎么样_gpedit.msc没有怎么办

    gpedit.msc没有会怎么样_gpedit.msc没有怎么办Win11gpedit.msc找不到怎么办?Win11家庭版没有gpedit.msc的解决方法在我们平常电脑的使用中,会运行gpedit.msc来进行一些电脑的设置,但是近期有用户反映找不到gpedit.msc,这该如何解决呢?下面小编带来了两种解决方法,不管你使

    2024年 5月 29日
  • 计算机组成原理第二版课本_计算机组成原理第二版课本答案

    计算机组成原理第二版课本_计算机组成原理第二版课本答案Untitled Document目前,在计算机系统中使用的随机存储器的存储容量一般都比较大,那么,如何从大量的存储单元中选择我们需要的一个存储单元呢?对于小容量存储器,如寄存器堆等,可以采用一维的线选择法。对n位地址直

    激活谷笔记 2024年 5月 26日
  • vscode手机版安装_手机上有类似vscode的软件吗

    vscode手机版安装_手机上有类似vscode的软件吗vscode手机版2024最新版vscode手机版2024最新版是由网络大神自己开发的一款免费源代码编辑器,同时也叫Code FA,主要原理是使用 Linux Arm64 启动一个 code-server ,然后使用 WebView 进行加载 ,WebView 加载的内容完全来自本

    2024年 5月 14日
  • 字符指针怎么定义_字符指针怎么定义的

    字符指针怎么定义_字符指针怎么定义的字符数组和字符串指针的定义今天在看书上的一段代码的时候发现有一段代码有问题,对于那段代码的错误进行一下解释。并加强一下我们常用的两种定义字符串的方法的一些区别进行一下解释。书上的错误代码大概如下:#include<st

    激活谷笔记 2024年 5月 27日
  • Rider激活2024.1.2(JetBrains PhpStorm 2024.1中文激活成功教程版 含汉化激活教程)

    Rider激活2024.1.2(JetBrains PhpStorm 2024.1中文激活成功教程版 含汉化激活教程)

    2024年 6月 7日
  • spring什么意思翻译中文_now什么意思翻译中文翻译

    spring什么意思翻译中文_now什么意思翻译中文翻译spring是什么意思_spring用英语怎么说_spring的翻译_spring翻译成_spring的中文意思_spring怎么读,spring的读音,spring的用法,spring的例句全部四级六级高考考研So it’s no surprise that cultures arou

    激活谷笔记 2024年 5月 11日
关注微信