汇编移位指令复习「建议收藏」

汇编移位指令复习「建议收藏」前言吐槽一下下,汇编的指令真的好多呀,学了这么多可是记住的却没几个,所以写下这篇文章加深对汇编移位指令的理解和记忆文章目录前言1、逻辑移位指令逻辑左移SHL逻辑右移SHR2、算术移位指令算数左移SAL算术右移SAR3、循环移位指令循环左移ROL循环右移ROR4、注意点1、逻辑移位指令逻辑移位指令适用于带符号数运算逻辑左移SHL指令格式:SHLOPR,CNT????PR:…

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

前言

吐槽一下下,汇编指令真的好多呀,学了这么多可是记住的却没几个,所以写下这篇文章加深对汇编移位指令的理解和记忆

1、逻辑移位指令

逻辑移位指令适用于带符号数运算

逻辑左移 SHL

指令格式:SHL OPR,CNT

?PR:是指被移位的操作数 ​ ? CNT:是指移位次数

汇编移位指令复习「建议收藏」

比如将二进制数 1100 1111 左移 1 位,该数就变为 1001 1110,cf=1:

汇编移位指令复习「建议收藏」

代码

MOV AL,0CFh
SHL AL,1

逻辑右移 SHR

指令格式:SHR OPR,CNT

汇编移位指令复习「建议收藏」

下图所示为二进制数 1100 1111 逻辑右移一位,得到 01100111,最低位移入进位标志位,cf=1:

汇编移位指令复习「建议收藏」

代码

MOV AL,0CFH
SHR AL,1

2、算术移位指令

算术移位指令适用于无符号数运算

算数左移 SAL

指令格式:SAL OPR,CNT

? 算数左移和逻辑左移完全一样哒,这里就不多说了

算术右移 SAR

指令格式:SAR OPR,CNT

汇编移位指令复习「建议收藏」

例如,二进制数 1100 1111,符号位为 1。算术右移一位后,得到 1110 0111:

汇编移位指令复习「建议收藏」

代码

MOV AL,0CFH
SAR AL,1

3、循环移位指令

循环左移 ROL

指令格式:ROL OPR,CNT

汇编移位指令复习「建议收藏」

比如将二进制数 1100 1111 循环左移 4 位,该数就变为1111 1100,cf=0:

代码

MOV CL,4
MOV AL,0CFH    ;AL = 11001111b
ROL AL,4       ;左移1位:10011111b, cf=1
               ;左移2: 00111111b, cf=1
               ;左移3位:01111110b, cf=0
               ;左移4位:11111100b, cf=0

循环右移 ROR

指令格式:ROR OPR,CNT

汇编移位指令复习「建议收藏」

比如将二进制数 1100 1111 循环右移 4 位,该数就变为 11111100,cf=1:

代码

MOV CL,4
MOV AL,0CFH    ;AL = 11001111b
ROR AL,4       ;右移1位:11100111b, cf=1
               ;右移2: 11110011b, cf=1
               ;右移3位:11111001b, cf=1
               ;右移4位:11111100b, cf=1

4、注意点

移位次数由CNT决定,它的取值为1或者CL

(1)CNT=1时,只移动一位

MOV BL,8Fh      ; BL = 10001111b
SHL BL,1        ;移位后 BL = 00011110b

(2)CNT > 1时,则在使用移位指令前,应首先将移位次数送给CL寄存器

MOV BL,8Fh      ; BL = 10001111b
MOV CL,2
SHL BL,CL       ;移位后 BL = 00111100b
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141724.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ETH被冻结_微信冻结显示什么界面

    ETH被冻结_微信冻结显示什么界面如果我们的电脑在启动挖矿软件的时候,发现界面有停顿,Miner都会冻结。有时矿工会随机冻结,直到按下任何键。而我们要做下如下设置则可以解决这个问题。1、cmd命名行界面;2、右击窗口,点属性大力矿工致力于挖矿软件研究,欢迎大家加入群:621159725,一起讨论ETH挖矿。…

    2022年10月15日
  • java setvisible_java value

    java setvisible_java value如果查询返回多个值用list()方法publicvoidtestQuery(){Configurationconfig=newConfiguration().configure();SessionFactoryfactory=config.buildSessionFactory();//创建SessionFactorySessionsession=factory.open…

  • wordpress自定义搜索

    wordpress自定义搜索默认下,wordpress的搜索范围只有文章的标题和文章内容,无法搜索自定义字段中的内容,现实情况是很多情况下我们可能会要搜索自定义字段中的内容。如果只是想搜索一到两个自定义字段中的内容,可以使用wordpress的内置函数meta_query变量。12345678910111213141516171

  • 手机上安装FTP客户端软件(AndFTP),实现通过手机访问计算机FTP服务器

    手机上安装FTP客户端软件(AndFTP),实现通过手机访问计算机FTP服务器第一步把手机和计算机连接到同一个局域网中(通过WiFi、数据线等)才能进行下面的操作。(本次操作通过wifi连接)第二步:查看手机的IP地址设置—>WLAN—>点击所连的WiFi名,即可查看手机的ip地址。本机IP地址为:172.20.10.12第三步:ping命令测试手机与电脑是否连接打开DOS命令窗口,输入ping172.20.10.1…

  • 2020最新版Linux面试题(一)

    2020最新版Linux面试题(一)

  • 数组splice方法的使用「建议收藏」

    数组splice方法的使用「建议收藏」数组splice方法是通过删除、替换现有元素、添加新的元素来修改数组的!

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号