编程论坛
注册
登录
编程论坛
→
汇编论坛
循环左移和算术左移有什么大的区别啊?
落默仸
发布于 2012-11-25 22:42, 9654 次点击
特别是那个算术左移,末尾是1的右移后怎么说?
谢谢了……
6 回复
#2
wp231957
2012-11-25 22:56
循环移动 、就是最右侧移动最左侧 或者反之
而普通移动 则最高位或最低位用0补充
#3
zklhp
2012-11-26 14:01
楼上上的很全面了 具体可以看书
#4
落默仸
2012-11-26 22:33
谢谢啊……
#5
紫色年华
2012-11-30 19:39
循环左移是从高位溢出来的数据不仅要将其存放在CF,还要将该数据送到最低位空出来的那个位;算术左移是和逻辑左移等价的,高位溢出来的放在CF,低位空出来的用0补,但是算术右移和逻辑右移就是两码事了,算术右移是用原来的最高位补移后空出来的位(因为最高位是符号位,不能因为右移就改变数字的符号),而逻辑右移是将溢出来的位放在CF,最高位用0填补。
#6
cuqa
2012-12-03 15:47
举个例子 假如对BX循环左移一位 那么你的BX最高位会被移出而最低为会空出一位,而ROL 1 就是指把最高位移出的一位补到最低位的空缺同时还要赋值给CF(进位标志位)
如果是算术左移 SAL 1 移出的最高位赋值给CF,最低位用0补
#7
Erison
2012-12-12 21:17
回复 5楼 紫色年华
+1
1