前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >汇编语言——移位指令[通俗易懂]

汇编语言——移位指令[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-31 16:38:53
3K0
发布2022-07-31 16:38:53
举报

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

基本概念

移位操作指令:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。

基本格式

格式为:xxx oper1,CL/1

移位次数只能是1或者存放在CL里面。

移位指令

一、算术移位指令

1、算术左移指令SAL

功能:左移一次,最低位补0,最高位送入CF标志位,如图:

汇编语言——移位指令[通俗易懂]
汇编语言——移位指令[通俗易懂]

意义:左移n次,等于x2的n次幂。所以可用于有符号操作数做x2的n次幂运算。

2、算术右移指令SAR

功能:右移一次,最高位保持不变,最低位送入CF标志位,如图:

汇编语言——移位指令[通俗易懂]
汇编语言——移位指令[通俗易懂]

意义:右移n次,等于/2的n次幂。所以可用于有符号操作数做/2的n次幂运算。

二、逻辑移位指令

1、逻辑左移指令SHL

功能:同SAL,如图:

汇编语言——移位指令[通俗易懂]
汇编语言——移位指令[通俗易懂]

意义:同SAL

2、逻辑右移指令SHR

功能:右移一次,最高位补0.区别!最低位送入CF标志位。如图:

汇编语言——移位指令[通俗易懂]
汇编语言——移位指令[通俗易懂]

意义:用于实现无符号数/2的n次幂操作。

三、循环移位指令

1、循环左移指令ROL

功能:左移一次,左移前的最高位送入最低位以及CF.如图:

汇编语言——移位指令[通俗易懂]
汇编语言——移位指令[通俗易懂]

2、循环右移指令ROR

功能:右移一次,右移前的最低位送入最高位以及CF.如图:

汇编语言——移位指令[通俗易懂]
汇编语言——移位指令[通俗易懂]

3、带进位的循环左移指令RCL

功能:左移一次,左移前的最高位送入CF,CF的内容送入最低位.如图:

汇编语言——移位指令[通俗易懂]
汇编语言——移位指令[通俗易懂]

4、带进位的循环右移指令RCR

功能:右移一次,右移前的最低位送入CF,CF的内容送入最高位.如图:

汇编语言——移位指令[通俗易懂]
汇编语言——移位指令[通俗易懂]

四、双精度移位指令

1、双精度左移指令SHLD

2、双精度右移指令SHRD

参考文章

https://blog.csdn.net/qq_41627235/article/details/80368254

https://baike.baidu.com/item/%E7%A7%BB%E4%BD%8D%E6%8C%87%E4%BB%A4/10562725?fr=aladdin

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本概念
  • 基本格式
  • 移位指令
    • 一、算术移位指令
      • 1、算术左移指令SAL
      • 2、算术右移指令SAR
    • 二、逻辑移位指令
      • 1、逻辑左移指令SHL
      • 2、逻辑右移指令SHR
    • 三、循环移位指令
      • 1、循环左移指令ROL
      • 2、循环右移指令ROR
      • 3、带进位的循环左移指令RCL
      • 4、带进位的循环右移指令RCR
    • 四、双精度移位指令
      • 1、双精度左移指令SHLD
      • 2、双精度右移指令SHRD
  • 参考文章
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档