汇编移位指令SHR,SAR,SAL/SHL,ROR,ROL,RCR,RCL
目录
逻辑右移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(完成的操作都一样)
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
汇编移位指令SHR,SAR,SAL/SHL,ROR,ROL,RCR,RCL相关推荐
- 学 Win32 汇编[24] - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
SHL.SHR.SAL.SAR: 移位指令 ;SHL(Shift Left): 逻辑左移 ;SHR(Shift Right): 逻辑右移 ;SAL(Shift Arithmetic Left): 算术 ...
- Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
SHL.SHR.SAL.SAR: 移位指令 ;SHL(Shift Left): 逻辑左移 ;SHR(Shift Right): 逻辑右移 ;SAL(Shift Arithmetic Left): 算术 ...
- x86移位SHL、SHR、SAL、ROL、RCR等指令
x86移位SHL.SHR.SAL.ROL.RCR等指令简介 指令 语法 说明 SHL SHL dest, count (逻辑)左移 SHR SHL dest, count (逻辑)右移 SAL SHL ...
- 汇编语言-009(表驱动选择 、条件控制流伪指令 、逻辑移位SHL,SHR 算术移位SAL,SAR)
1: 表驱动选择,用查表来代替多路选择结构的一种方法 .386 .model flat,stdcallinclude Irvine32.inc.stack 4096 ExitProcess PROTO ...
- 计算机接口中的shl,西门子200的PLC中SHL和ROL的区别,还...-卓优商学问答
推荐回答 可以将这几个指令分为移位指令和循环移位指令,其中位移指令为:SHL.SAL.SHR.SAR,循环位移指令为:ROL.RCL.RCR.RCL,他们的具体用法如下:一.位移指令具体含义:SHL: ...
- ROL,ROR,SAR,SHR,SAL,SHL区别
SHL,SAL分别是逻辑左移和算术左移,运行结果是一样的,都是数据往左移动,然后在右边补零: SHR是逻辑右移,数据往右移动,在左边补零.如:1000 0000->0010 0000(逻辑右移两 ...
- 汇编指令--移位操作SHL、SHR、SAL、SAR以及它们的区别
逻辑移位: SHL.SHR 算术移位: CAL.CAR 1 2 无符号数的乘法和除法可以用逻辑移位; 有符号数的乘法和除法可以用算术移位; 汇编语言中 sal(算术左移指令)和shl(逻辑左移指令)指 ...
- 汇编语言shl/shr与sal/sar的使用
移位指令分为逻辑移位指令和算术移位指令 shl 与 shr 属于逻辑移位指令 shl逻辑左移指令 将寄存器或内存单元的数据左移 最低位用 0 补充 最高位进入 CF 例子: mov ax,8fh ;m ...
- SAR,SHR,SAL,SHL区别
SHL,SAL 逻辑左移和算术左移,运行结果是一样的,都是数据往左移动,然后在右边补零: SHR 逻辑右移,数据往右移动,在左边补零.如:1000 0000->0010 0000(逻辑右移两位) ...
最新文章
- Eclipse ADT 21 Preview 10 发布
- 推荐算法 之协同过滤
- basic4android 开发教程翻译(六)使用B4A-Bridge连接你的设备
- PLSQL 之类型、变量和结构
- 【玩转SQLite系列】目录收藏
- excel文件导入hive乱码_将excel中的数据导入hive
- 读书:《带人的技术》
- 大数据系统架构模块解析
- svn 合并分支 (svn操作手册)
- MUI框架开发app中出现的问题(持续更新中...)
- python制作日历_用Python制作一份你专属的爱豆日历
- PassMark PerformanceTest v10.1.1004 电脑性能测试工具直装版
- 〖小狼毫〗小狼毫使用心得分享
- Python SMTP 163邮箱发送邮件不成功
- Building wheels for collected packages: mysqlclient Building wheel for mysqlclient (setup.py) ...
- 计算机知识小口诀,字根表口诀怎么快速背-小学数学:一年级20以内加减法口诀表,附背诵技巧!...
- 高德打车宣布上线共享雨伞:或许是醉翁之意不在酒
- Nginx + Lua 搭建网站WAF防火墙
- 计算机科学导论【第四版】读书笔记 (一)
- restapi是什么意思_什么是REST API?请解释的通俗一点,它和一般的API有什么区别