汇编 SHL指令和SHR指令
SHL指令
SHL指令使目的操作数逻辑左移一位,最低位用0填充。最高位移入进位标志位,而进位标志位中原来的数值被丢弃。
若将1100 1111左移1位,该数就变为 1001 1110
例如:
BL左移一位。最高位复制到进位标志位,最低位填充0:
mov bl, 8FH ; BL = 10001111b
shi bl, 1 ; CF = 1, BL = 00011110b
当一个数多次进行左移时,进位标志位保存的是最后移出最高有效位(MSB)的数值。
mov al, 10000000b
shi al, 2 ; CF = 0, AL = 00000000b
步骤:
1.将一个寄存器或者内存单元中过的数据向左移动bit位。
2.将溢出的这一位放到CF中。
3.最低位用0补充。
位元乘法
数值进行左移即行了位元乘法。
任何操作数左移 n 位,将该数乘以 2n。
例如,十进制数 10 左移两位,其结果与10 * 2n相同。
mov al, 10 ; 00001010
shl dl ,2 ; 00101000
SHR指令
SHR指令使目的操作数逻辑右移一位,最高位用0填充。最低位置复制到进位标志位,而进位标位中原来的数值被丢弃。
例如:
AL中的最低位0被复制到进位标志位,而AL中的最高位用0填充。
mov al, 0D0H ; aL = 11010000b
shr al, 1 ; aL = 01101000b, CF = 0
在多位移操作中,最后一个移出位0的数值进入进位标志位。
mov al, 00000010b
shr al, 2 ; AL = 00000000b, CF = 1
总结:
当一个数多次进行右移时,进位标志位保存的是最后移出最低有效位的数值。
汇编 SHL指令和SHR指令相关推荐
- 左移shl、右移shr指令用法
左移shl.右移shr指令用法 shl和shr是逻辑移位指令. 1.shl是逻辑左移指令,它的功能为: (1)将一个寄存器或内存单元中的数据向左移位: (2)将最后移出的一位写入CF中: (3)最低位 ...
- 汇编 端口 shl和shr指令
1 端口 CPU可以直接读写以下3个地方的数据: CPU内部的寄存器 内存单元 端口 1.1 端口的读写 解决了串/并行 改变的问题 对端口的读写不能用mov,push,pop等:只有in和out 访 ...
- 汇编 shl和shr指令的使用
shl和shr是逻辑移位指令. shl是逻辑左移指令,它的功能为: (1)将一个寄存器或内存单元中的数据向左移位: (2)将最后移出的一位写入CF中: (3)最低位用0补充. 指令: mov al,0 ...
- SHL、SHR指令的区别
SHL指令 假设 EAX=00000001 SHL EAX,0x2 将EAX中的数向左移两位,相当于 EAX中数的十进制是1,乘以2^2,等于4 所以结果EAX=00000004 SHR指令 假设 E ...
- 汇编语言随笔(12)-端口读写、shl和shr指令、检测点14和实验14
端口读写 在pc系统中,CPU可定位的端口数量为64k个,地址范围为0~65535.对端口的读写只能采用 in 和 out ,分别表示从端口读取数据和往端口写入数据. 在 in 和 out ...
- 汇编语言--shl和shr指令
shl和shr是逻辑移位指令 shl是逻辑左移指令,它的功能为: 将一个寄存器或内存单元中的数据向左移位: 将最后移出的一位写入CF中: 最低位用0补充. shr是逻辑右移指令
- C语言逻辑左移指令shl怎么用,汇编语言SHL(左移)指令:将操作数逻辑左移一位...
SHL(左移)指令使目的操作数逻辑左移一位,最低位用 0 填充.最高位移入进位标志位,而进位标志位中原来的数值被丢弃: 若将 1100 1111 左移 1 位,该数就变为 1001 1110: SHL ...
- 【Android 逆向】x86 汇编 ( cmp 比较指令 | test 比较指令 )
文章目录 一.cmp 比较指令 二.test 比较指令 总结 一.cmp 比较指令 cmp 指令通过 减法运算 , 影响标志位 CPAZO ; cmp eax, ebx 上述指令执行时 , eax - ...
- 汇编中Enter和Leave指令
Enter的作用相当==push ebp和mov ebp,esp 这后面两句大家很熟悉吧?函数开始一般都是这两句 Leave的作用相当==mov esp,ebp和pop ebp 而这后面这两句也很常见 ...
最新文章
- 计算机网络实验socket编程,计算机网络实验 socket编程
- 数据结构 - 直接插入排序法
- 格莱泽检验matlab,计量经济学实验指导书
- 【iCore4 双核心板_ARM】例程二十:LWIP_TCP_CLIENT实验——以太网数据传输
- HttpDNS功能说明及实现
- JDBC连接数据库格式
- webflow如何使用_我如何使用Webflow构建辅助项目以帮助设计人员进行连接
- 温故知新,.Net Core遇见WinForms客户端窗体框架,在DotNet Core大一统基础上老树发芽...
- Asp.net 面向接口框架之应用程序上下文作用域组件
- 从试卷中悟出的道理……
- 嵌入式电路设计(外围模块)
- Python:如何安装与使用 pip
- 黑马程序员:java基础学习——数组
- Android项目报错:Could not resolve com.android.support.constraint:constraint-layout:2.0.2.
- 软著申请合作开发协议模板
- SVN 版本回退 命令行
- 小米笔记本UEFI关闭安全启动
- springboot整合容联云发短信验证码
- vscode更改配置文件路径_Visual Studio Code安装和配置
- JPA实现领域驱动设计(DDD) 中值对象的持久化
热门文章
- .NET CoreWebApi基于EasyNetQ使用RabbitMQ消息队列
- python之subprocess
- 马云任软银集团董事 阿里巴巴全球化布局明朗
- 关于Rosetta的那些事
- ld --whole-archive 和 --no-whole-archive学习记录
- 一个可以离线查询 IP 来源和 ISP 信息的终端利器
- 利用教育邮箱注册JetBrains产品(pycharm、idea等)的方法
- 快乐地谈谈:关于RSA算法中求私钥d的欧几里得方法(辗转相除法)考试向的欸
- 计算机网络室工作总结,计算机教室工作总结范文
- 上海高校计算机二级考纲,上海市普通高校计算机等级考试考纲