SHL(左移)指令使目的操作数逻辑左移一位,最低位用 0 填充。最高位移入进位标志位,而进位标志位中原来的数值被丢弃:

若将 1100 1111 左移 1 位,该数就变为 1001 1110:

SHL 的第一个操作数是目的操作数,第二个操作数是移位次数:

SHL destination,count

该指令可用的操作数类型如下所示:

SHL reg, imm8

SHL mem, imm8

SHL reg, CL

SHL mem, CL

x86 处理器允许 imm8 为 0〜255 中的任何整数。另外,CL 寄存器包含的是移位计数。上述格式同样适用于 SHR、SAL、SAR、ROR、ROL、RCR 和 RCL 指令。

【示例】下列指令中,BL 左移一位。最高位复制到进位标志位,最低位填充 0:

mov b1, 8Fh          ; BL = 10001111b

shl bl, 1                 ; CF = 1, BL = 00011110b

当一个数多次进行左移时,进位标志位保存的是最后移岀最高有效位(MSB)的数值。下例中,位 7 没有留在进位标志位中,因为,它被位 6(0)替换了:

mov al, 10000000b

shl al, 2           ; CF = 0, AL = 00000000b

同样,当一个数多次进行右移时,进位标志位保存的是最后移出最低有效位(LSB)的数值。

位元乘法

数值进行左移(向 MSB 移动)即执行了位元乘法(Bitwise Multiplication)。例如,SHL 可以通过 2 的幕进行乘法运算。任何操作数左移 n 位,即将该数乘以 2n。现将整数 5 左移一位则得到 5 x 2¹ = 10:

mov dl, 5            ; 移动前:00000101 = 5

shl dl, 1              ; 移动后:00001010 = 10

若二进制数 0000 1010(十进制数 10)左移两位,其结果与 10 乘以 2² 相同:

mov dl, 10           ;移动前:00001010

shl dl, 2               ;移动后:00101000

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

  1. 西门子stl语言指令_STEP7项目的JL跳转指令你会用吗?

    引言: 昨天测试一个PDF文档中的STL程序,照着录入后,竟然在程序保存的时候就出错了,不能保存!研究了一下发现是JL指令的使用造成的,所以今天写篇文章来聊一下,STEP7项目STL编程中的JL 跳转 ...

  2. C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么?

    C语言问题,在位运算中,操作数每右移一位,其结果相当于什么?若左移1位,其结果相当于什么? 答案: 右移,除以2   左移,乘以2 比如5,5的二进制表示是101那么右移一位之后是10就是2了,是整除 ...

  3. 剑指offer:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。

    汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abc ...

  4. std在汇编语言是什么指令_汇编语言指令

    汇编指令英文全称 1.通用数据传送指令 MOV----> move MOV dest,src ;dest←src MOV指令把一个字节或字的操作数从源地址src传送至目的地址dest. MOVS ...

  5. 8051系列单片机汇编语言指令速查表(汇编语言的111条指

    8051系列单片机汇编语言指令速查表(汇编语言的111条指_纳兰容若的左手_新浪博客 http://blog.sina.com.cn/s/blog_6486c0b30100gqew.html 编号 指 ...

  6. 计算机语言指令数据用0,汇编语言-中国大学mooc-题库零氪

    第4章 80x86汇编语言程序设计 4.1 C语言程序的机器级表示随堂测验 1.表示过程结束的伪指令是( ) A.ENDS B.END C.ENDP D.ENDM 2.假设P为调用过程,Q为被调用过程 ...

  7. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16...

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  8. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16

    一.Intel 32 位处理器的工作模式 如上图所示,Intel 32 位处理器有3种工作模式. (1)实模式:工作方式相当于一个8086 (2)保护模式:提供支持多任务环境的工作方式,建立保护机制 ...

  9. 汇编语言中常用指令对标志位寄存器的影响

    参考了<汇编语言 基于x86处理器>第七版 转载请注明出处 如果有错误的地方请指正,谢谢. 文章目录 算术运算(ADD/SUB)影响标志位 ADD指令 SUB指令 NEG指令 INC/DE ...

最新文章

  1. 偷天换日,逼真的天空置换算法
  2. python3环境搭建(利用Anaconda+pycharm+pytorch)
  3. 新手搭建阿里云FTP服务器
  4. 115.什么是SHELL
  5. 彩色图像分割方法的汇总
  6. unity 批量导入模型工具_零基础的Unity图形学笔记3:使用多模型UV与优化模型导出...
  7. java接收uniapp上传的图片_uni-app 上传图片的坑
  8. 研究云计算与大数据分析处理领域建议看的学术论文列表
  9. Coolite Toolkit学习笔记二:服务器端Alert,Confirm,Prompt
  10. Mac m1 max 工具安装及简介
  11. Python调用 dll 文件
  12. node创建ETH地址及导出私钥
  13. 用c语言编译频率求波长,频率与波长的换算公式(c=λv)
  14. tooltips被遮盖
  15. 前端之JS事件events
  16. keepalive+nginx高可用K8S集群部署
  17. 台式机win10系统能连接上wifi,但是不能上网,终于解决了
  18. 深入了解JVM之垃圾回收(二)
  19. 问题备忘: httpclient连接池异常引发的惨案
  20. 机器视觉与图像处理研究必备

热门文章

  1. 难道这就是传说中的PR劫持吗?爱商网2ec.cn
  2. U盘制作成启动盘后容量变小怎么恢复
  3. astar不能用了_“早C晚A”?做完功课我发现:并不是所有人都能用对
  4. 打开ftp文件发生错误,请检查是否有权限
  5. tomcat下的javaBean的配置
  6. 6 步搭建数据平台—从指标体系到相关技术
  7. 谷歌语音对接-GoogleAssistant-smart-home
  8. 机器学习与各种技术之间的关系
  9. win10系统打开tftp服务器,大神演示win10系统开启TFTp的问题
  10. 旭日X3派AI推理(YOLOv5测试)