关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR
2016-07-29 17:18
381 查看
关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR
书上说 ROL的功能为,对操作数进行循环左移,每执行一次,把最高位移到最低位,同时还把最高位移到CF
那么 CF=0 AL=10100000
ROL AL,1 AL的内容为? CF为?
CF=0 AL=10100000 CL=2
ROL AL,CL AL的内容为?CF为?
而 CF=1 CF=0 AL=10100000
RCL AL,1 后 AL的内容? CF为?
CF=1 AL=10100000 CL=2
RCL AL,CL 后 AL的内容?CF?
------解决方案--------------------
在debug下一试便知,且会加深印象。
AL=10100000时,
ROL AL,1就把最高位的 1 移到最后,使AL变成 0100 0001,同时移出的1送CF;
ROL AL,CL(CL=2),相当于2次 ROL AL,1,所以AL变成 1000 0010,最后移出的0送CF。
RCL AL,1则把AL的最高位1送给CF,使CF=1,AL其它位相应左移,成为 0100 000X,最后空下的X位被CF原来的值补齐;
同样,ROL AL,CL(CL=2),相当于2次 RCL AL,1,最后AL变成 1000 00X1,AL原第二位的0到了CF,CF原来的值补AL中的x。
------解决方案--------------------
探讨
在debug下一试便知,且会加深印象。
AL=10100000时,
ROL AL,1就把最高位的 1 移到最后,使AL变成 0100 0001,同时移出的1送CF;
ROL AL,CL(CL=2),相当于2次 ROL AL,1,所以AL变成 1000 0010,最后移出的0送CF。
RCL AL,1则把AL的最高位1送给CF,使CF=1,AL其它位相应左移,成为 0100 00……
------解决方案--------------------
RCL AL,1 会把CF中的数据移到AL的最低位
SHR 逻辑右移指令
SAR 算术右移指令
SHR 和 SAR都是右移指令。
只不过SHR右移的时候,它的最高位用0填补,最低位移入CF
而SAR右移的时候,最高位不变,最低位移入CF
例如, AL = 1110 1110, BL = 0110 1100, CL = 2
SHR AL, CL后
AL = 0011 1011 SHR最高位用0填补
SAR AL,CL
AL = 1111 1011 SAR最高位不变
SAR BL,CL
BL = 0011 1011 SAR最高位不变
书上说 ROL的功能为,对操作数进行循环左移,每执行一次,把最高位移到最低位,同时还把最高位移到CF
那么 CF=0 AL=10100000
ROL AL,1 AL的内容为? CF为?
CF=0 AL=10100000 CL=2
ROL AL,CL AL的内容为?CF为?
而 CF=1 CF=0 AL=10100000
RCL AL,1 后 AL的内容? CF为?
CF=1 AL=10100000 CL=2
RCL AL,CL 后 AL的内容?CF?
------解决方案--------------------
在debug下一试便知,且会加深印象。
AL=10100000时,
ROL AL,1就把最高位的 1 移到最后,使AL变成 0100 0001,同时移出的1送CF;
ROL AL,CL(CL=2),相当于2次 ROL AL,1,所以AL变成 1000 0010,最后移出的0送CF。
RCL AL,1则把AL的最高位1送给CF,使CF=1,AL其它位相应左移,成为 0100 000X,最后空下的X位被CF原来的值补齐;
同样,ROL AL,CL(CL=2),相当于2次 RCL AL,1,最后AL变成 1000 00X1,AL原第二位的0到了CF,CF原来的值补AL中的x。
------解决方案--------------------
探讨
在debug下一试便知,且会加深印象。
AL=10100000时,
ROL AL,1就把最高位的 1 移到最后,使AL变成 0100 0001,同时移出的1送CF;
ROL AL,CL(CL=2),相当于2次 ROL AL,1,所以AL变成 1000 0010,最后移出的0送CF。
RCL AL,1则把AL的最高位1送给CF,使CF=1,AL其它位相应左移,成为 0100 00……
------解决方案--------------------
RCL AL,1 会把CF中的数据移到AL的最低位
SHR 逻辑右移指令
SAR 算术右移指令
SHR 和 SAR都是右移指令。
只不过SHR右移的时候,它的最高位用0填补,最低位移入CF
而SAR右移的时候,最高位不变,最低位移入CF
例如, AL = 1110 1110, BL = 0110 1100, CL = 2
SHR AL, CL后
AL = 0011 1011 SHR最高位用0填补
SAR AL,CL
AL = 1111 1011 SAR最高位不变
SAR BL,CL
BL = 0011 1011 SAR最高位不变
相关文章推荐
- 高阶Laplace曲面形变算法(Polyharmonic Deformation)
- mysql常用操作
- hbase的查询scan功能注意点(setStartRow, setStopRow)
- JS调用OC方法(webviewDelegate)
- Masonry使用小记
- Android组件化和插件化开发
- windows断电后启动mysql服务引起的问题
- label for 属性究竟有啥用???
- 快排算法
- Map冲突
- 学习IOS第一天
- IFS域内字段分隔符
- DatePickerDialog和EditText配合使用
- QT--一些零散的代码备份
- Spring中MultipartHttpServletRequest实现文件上传 生成缩略图
- android服务
- Linux2.6内核--进程调度理论
- ajax循环执行
- Git命令行使用教程01
- thinkPHP bug解决