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

news/2024/11/29 9:49:58/

目录

逻辑右移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(完成的操作都一样)

完成的是×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


http://www.ppmy.cn/news/3327.html

相关文章

基于springboot高校闲置物品交易系统微信小程序源码和论文

基于springboot二手物品交易系统微信小程序 互联网的兴起从本质上改变了整个社会的商品交易方式,国内各大企业从上个世纪 90 年代互联网兴起之时,就产生了通过网络进行销售经营商品的想法。但是由于在互网上企业的信誉难以认证、网络的法规政策不健全、物…

web前端网页设计期末课程大作业:中华传统文化题材网页源码——基于HTML实现中国水墨风书画艺术网站(12个页面)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

OLED显示的优点

提起OLED显示技术可能大家会觉得比较陌生,但其实它在现实中的应用是非常广泛的,OLED技术面板与传统面板相比它的优点太多了,它的亮度更高,显示效果更加纯粹。另外它有着更高的对比度。今天我们就来说一说这种OLED显示‍屏幕的优点…

NFA的确定化

一、实验目的 (1)通过本次实验,加深对正则表达式、NFA、DFA及其识别的语言的理解; (2)掌握从NFA到DFA的转换,以及用子集法把NFA转换成DFA理论,编程实现将NFA(不确定有穷…

Spring Security进阶学习

Spring Security整体架构 认证 认证核心组件的大体关系如下: Spring Security 中的认证工作主要由 AuthenticationManager 接口来负责,它处理来自框架其他部分的身份验证请求。其中还涉及到一些关键类,比如:AuthenticationProvi…

Grafana 监控大屏可视化图表

Grafana 系列文章,版本:OOS v9.3.1 Grafana 的介绍和安装Grafana监控大屏配置参数介绍(一)Grafana监控大屏配置参数介绍(二)Grafana监控大屏可视化图表 前面我们以Time series 图表为例,学习了面…

(二)字符函数和字符串函数详细讲解和模拟实现(优化)

✨✨✨✨✨✨✨✨✨📗字符串查找函数:1.strstr函数2.strtok函数📔错误信息报告函数:1.strerror函数📓内存操作函数1.memcpy函数2.memmove函数3.memset函数4.memcmp函数❤️字符函数讲解📒字符分类函数&…

C++初阶 stack和queue的模拟实现

作者:小萌新 专栏:C初阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:模拟实现STL库中的stack和queue 考试周结束咯 狠狠的学! stack和queue的模拟实现容器适配器Stack模拟实现接口函数一览代码…