关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR
书上说 ROL的功能为,对操作数进行循环左移,每执行一次,把最高位移到最低位,同时还把最高位移到CF
那么 CF=0 AL=10100000   
  ROL AL,1 AL的内容为? CF为?

CF=0 AL=10100000 CL=2  
  ROL AL,CL AL的内容为?CF为?

而 CF=1 CF=0 AL=10100000  
  RCL AL,1 后 AL的内容? CF为?

CF=1 AL=10100000 CL=2
  RCL AL,CL 后 AL的内容?CF?

------解决方案--------------------
在debug下一试便知,且会加深印象。

AL=10100000时,

ROL AL,1就把最高位的 1 移到最后,使AL变成 0100 0001,同时移出的1送CF;
ROL AL,CL(CL=2),相当于2次 ROL AL,1,所以AL变成 1000 0010,最后移出的0送CF。

RCL AL,1则把AL的最高位1送给CF,使CF=1,AL其它位相应左移,成为 0100 000X,最后空下的X位被CF原来的值补齐;
同样,ROL AL,CL(CL=2),相当于2次 RCL AL,1,最后AL变成 1000 00X1,AL原第二位的0到了CF,CF原来的值补AL中的x。

------解决方案--------------------
探讨

在debug下一试便知,且会加深印象。

AL=10100000时,

ROL AL,1就把最高位的 1 移到最后,使AL变成 0100 0001,同时移出的1送CF;
ROL AL,CL(CL=2),相当于2次 ROL AL,1,所以AL变成 1000 0010,最后移出的0送CF。

RCL AL,1则把AL的最高位1送给CF,使CF=1,AL其它位相应左移,成为 0100 00……

------解决方案--------------------
RCL AL,1 会把CF中的数据移到AL的最低位

SHR 逻辑右移指令

SAR 算术右移指令

SHR 和 SAR都是右移指令。
只不过SHR右移的时候,它的最高位用0填补,最低位移入CF
而SAR右移的时候,最高位不变,最低位移入CF

例如, AL = 1110 1110, BL = 0110 1100, CL = 2
SHR AL, CL后
AL = 0011 1011        SHR最高位用0填补

SAR AL,CL
AL = 1111 1011        SAR最高位不变

SAR BL,CL
BL = 0011 1011        SAR最高位不变

关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR相关推荐

  1. 算术右移 java_Java 中 算术右移和逻辑右移有什么区别?

    算术移位:>>,有符号的移位操作,右移之后的空位用符号位补充,如果是 正数用 0 补充,负数用1补充. 例1: -4>>1 -4的原码 10000000 00000000 00 ...

  2. 三,位操作类指令:包括逻辑运算指令,测试指令和移位指令

    1,测试运算指令:有四条,其格式与功能本别为: 与: AND DEST,SRC EDST <= (SRC) ^(DEST) 或:OR DEST,SRC DEST <= (SRC) v (D ...

  3. 算术右移与逻辑右移的转换

    算术右移与逻辑右移的转换 用逻辑右移实现算术右移 //用逻辑右移来完成算术右移 int sra(int x, int k) {int xsrl = (unsigned) x >> k;in ...

  4. Java算术右移和逻辑右移

    >> 是算术右移运算符,算术右移左边空位补上符号位 >>> 是逻辑右移,也叫无符号右移,左边空位补0 例: -4 >> 1 = -2 -4 >>& ...

  5. 算术右移与逻辑右移的区别

    算术右移与逻辑右移的区别: 1.右移移动的是二进制位 2.右移操作符分为算术右移操作符和逻辑右移操作符: 算术右移操作符: 右边(低位)舍去,左边(高位)补原符号位,原符号位为0就补0,为1就补1: ...

  6. 汇编SHR、SHL、SAR、SAL、ROL、ROR、RCL、RCR指令

    SHL.SHR.SAL.SAR: 移位指令 ;SHL(Shift Left): 逻辑左移 ;SHR(Shift Right): 逻辑右移 ;SAL(Shift Arithmetic Left): 算术 ...

  7. C语言逻辑左移指令shl怎么用,汇编语言SHL(左移)指令:将操作数逻辑左移一位...

    SHL(左移)指令使目的操作数逻辑左移一位,最低位用 0 填充.最高位移入进位标志位,而进位标志位中原来的数值被丢弃: 若将 1100 1111 左移 1 位,该数就变为 1001 1110: SHL ...

  8. 逻辑左移、算术左移、逻辑右移、算术右移

    汇编指令: (注意,所有移位指令,被移出去的那个位上的值,会被赋值给CF标志位) 逻辑左移:SHL(右边补0) 算术左移:SAL(1.寄存器中自动转换成SHL,左移不存在算术左移,所有左移都是SHL: ...

  9. 微型计算机shr,shl指令(shr是什么指令)

    加入 eax=1shl eax,02执行后,eax的值是多少 1.shl(汇编指令). 格式:shl dst,1 . 功能:将目的操作数顺序左移1位或cl寄存器中指定的位数.左移一位时,操作数的最高位 ...

最新文章

  1. python中如何判断输入的是英文字母_python如何判断一个字符是否为汉字,英文字母,数字,空还是其他...
  2. 查询数据库,处理NULL值问题
  3. 6 张图带你彻底搞懂分布式事务 XA 模式
  4. python编码规范与命名规范
  5. 酷乐Emlog新春特别版coolappy2.2开源
  6. python天气预测算法_使用机器学习预测天气(第二部分)
  7. 块级,行内(内联)对比笔记
  8. c 怎么获取服务器文件是否存在,powershell - 需要找出服务器上是否存在特定的文件夹。如果是,那么哪个驱动器是C:或D - 堆栈内存溢出...
  9. 调查 1621 万互联网人:发现技术人基本是男性,还一半都单身
  10. TensorFlow基础篇(一)——tf.train.exponential_decay()
  11. 机器学习实践指南(三)—— 算法的调试
  12. 第一个python程序-判断登陆用户名和密码是否正确
  13. 【事件驱动】【数码管识别】(C++多线程实现多幅图像的同步识别)
  14. Atitit.php opcode虚拟机指令集 分类以及详细解释
  15. ISIS出现(Project2.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.)异常
  16. Everyone Piano键盘钢琴软件
  17. Xcode 9: An error occurred uploading to the iTunes Store. iTunes Store Operation Failed
  18. cpu使用率的另一种获取方法
  19. 如何破解加密的PDF文件
  20. 【20200207】【lyk】TJOI2019 唱、跳、rap、篮球题解

热门文章

  1. [转载]电商网站秒杀与抢购的系统架构
  2. 使用lindo进行灵敏度分析
  3. 读书笔记-C语言程序设计-西安电子科技大学出版社-王娟勤-【未完待续】
  4. 口腔医学院用学计算机吗,口腔医学专业VS计算机专业,同样高考志愿大热门,我该选择哪个?...
  5. dell服务器开机账号破解,dell解密595B 2A7B开机密码算号器-BIOS维修网站www.biosrepair.com...
  6. linux硬盘对拷ghost教程,只需6步骤 教你用ghost硬盘对拷实现系统安装
  7. 近两年SEO米线组工作总结回顾
  8. 深度学习实现猫狗分类
  9. 【LInux软件--星际译王安装、词库下载】
  10. 诺基亚S60手机格机方法