目录

逻辑右移SHR

算数右移SAR(重点)

算数/逻辑左移SAL/SHL(完成的操作都一样)

循环右移ROR

循环左移ROL

带进位循环右移RCR

带进位循环左移RCL

总结

例题


移位指令为双操作数指令,用于将目的的操作数中的二进制数移位。

目的操作数只能是寄存器或内存

源操作数为移位的次数,只能是CL寄存器或者立即数1

移动完,CL的值不变

逻辑右移SHR

shift right

无符号数除以2

MOV AL,10
SHR AL,1
;0000 1010(10)
;移动后
;0000 0101;(5) CF=0  SHR是对于无符号数,开头直接补0即可

算数右移SAR(重点)

完成了带符号数除以2

shift  arithmetic right

MOV AL,80H;(-128)
SAR AL,1
;1000 0000
;移动后
;1100 0000 (-64) ;补的是符号位,最低位移入CF,CF=0

算数/逻辑左移SAL/SHL(完成的操作都一样)

SAL和SHL指令是一条机器指令的两种汇编指令表示

完成的是×2的操作不论是有符号还是无符号数

MOV AL,08H
SHL AL,1
;0000 1000
;左移后
;0001 0000;  末尾补0,最高位移入CF,CF=0
MOV AL,0FFH(-1)
SHL AL,1
;1111 1111
;移动后
;1111 1110(-2)末尾补零,最高位移入CF=1

循环右移ROR

Rotate Right

循环左移ROL

Rotate  left

带进位循环右移RCR

rotate carry right

这时候CF很重要,先把原来CF的值移入最高位,在把最低位的值移出给CF

带进位循环左移RCL

rotate carry left

总结

移出的位都去CF

移位次数>1,次数必须放CL

SHL AL,4;错误;正确
MOV CL,4
SHL AL,CL

例题

MOV CL,04

SHL  DX,CL

MOV BL,AH

SHL AX,CL

SHR BL,CL

OR DL,BL

该程序段的功能是(DX和AX组合形成的32位数左移4位);若DX为1234H,AX为5678H,则程序运行后AX=(6780H)

执行下面程序后,AX=(60)

MOV AL,6

MOV AH,0

SAL AX,1

MOV BL,AX

SAL AL,1

SAL AL,1

ADD AX,BX

汇编移位指令SHR,SAR,SAL/SHL,ROR,ROL,RCR,RCL相关推荐

  1. 学 Win32 汇编[24] - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD

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

  2. Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD

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

  3. x86移位SHL、SHR、SAL、ROL、RCR等指令

    x86移位SHL.SHR.SAL.ROL.RCR等指令简介 指令 语法 说明 SHL SHL dest, count (逻辑)左移 SHR SHL dest, count (逻辑)右移 SAL SHL ...

  4. 汇编语言-009(表驱动选择 、条件控制流伪指令 、逻辑移位SHL,SHR 算术移位SAL,SAR)

    1: 表驱动选择,用查表来代替多路选择结构的一种方法 .386 .model flat,stdcallinclude Irvine32.inc.stack 4096 ExitProcess PROTO ...

  5. 计算机接口中的shl,西门子200的PLC中SHL和ROL的区别,还...-卓优商学问答

    推荐回答 可以将这几个指令分为移位指令和循环移位指令,其中位移指令为:SHL.SAL.SHR.SAR,循环位移指令为:ROL.RCL.RCR.RCL,他们的具体用法如下:一.位移指令具体含义:SHL: ...

  6. ROL,ROR,SAR,SHR,SAL,SHL区别

    SHL,SAL分别是逻辑左移和算术左移,运行结果是一样的,都是数据往左移动,然后在右边补零: SHR是逻辑右移,数据往右移动,在左边补零.如:1000 0000->0010 0000(逻辑右移两 ...

  7. 汇编指令--移位操作SHL、SHR、SAL、SAR以及它们的区别

    逻辑移位: SHL.SHR 算术移位: CAL.CAR 1 2 无符号数的乘法和除法可以用逻辑移位; 有符号数的乘法和除法可以用算术移位; 汇编语言中 sal(算术左移指令)和shl(逻辑左移指令)指 ...

  8. 汇编语言shl/shr与sal/sar的使用

    移位指令分为逻辑移位指令和算术移位指令 shl 与 shr 属于逻辑移位指令 shl逻辑左移指令 将寄存器或内存单元的数据左移 最低位用 0 补充 最高位进入 CF 例子: mov ax,8fh ;m ...

  9. SAR,SHR,SAL,SHL区别

    SHL,SAL 逻辑左移和算术左移,运行结果是一样的,都是数据往左移动,然后在右边补零: SHR 逻辑右移,数据往右移动,在左边补零.如:1000 0000->0010 0000(逻辑右移两位) ...

最新文章

  1. Eclipse ADT 21 Preview 10 发布
  2. 推荐算法 之协同过滤
  3. basic4android 开发教程翻译(六)使用B4A-Bridge连接你的设备
  4. PLSQL 之类型、变量和结构
  5. 【玩转SQLite系列】目录收藏
  6. excel文件导入hive乱码_将excel中的数据导入hive
  7. 读书:《带人的技术》
  8. 大数据系统架构模块解析
  9. svn 合并分支 (svn操作手册)
  10. MUI框架开发app中出现的问题(持续更新中...)
  11. python制作日历_用Python制作一份你专属的爱豆日历
  12. PassMark PerformanceTest v10.1.1004 电脑性能测试工具直装版
  13. 〖小狼毫〗小狼毫使用心得分享
  14. Python SMTP 163邮箱发送邮件不成功
  15. Building wheels for collected packages: mysqlclient Building wheel for mysqlclient (setup.py) ...
  16. 计算机知识小口诀,字根表口诀怎么快速背-小学数学:一年级20以内加减法口诀表,附背诵技巧!...
  17. 高德打车宣布上线共享雨伞:或许是醉翁之意不在酒
  18. Nginx + Lua 搭建网站WAF防火墙
  19. 计算机科学导论【第四版】读书笔记 (一)
  20. restapi是什么意思_什么是REST API?请解释的通俗一点,它和一般的API有什么区别

热门文章

  1. [艾兰岛]编辑器做传送门——kura酱长期更新
  2. vmware虚拟机不能识别u盘/移动硬盘原因之一
  3. 计算机找不到海信电视,如何设置海信电视投屏 海信电视投屏设置方法【详解】...
  4. 个人阅读作业+个人总结
  5. 特殊纪念日Android APP内设置黑灰色背景
  6. 超棒的电烙铁的焊接方法图解
  7. 关于计算机考试的标语,考试标语
  8. 0成本截流的三种方法,挣钱从引流开始
  9. 批量提取PDF和图片发票信息 2.2
  10. Android面试分析一:关于OKhttp详解(附带视频教程,flutter游戏全屏