能力值:
( LV2,RANK:10 )
|
-
-
2 楼
和移位指令关系密切,哈哈
执行功能和移位指令一样,只不过溢出位被存放回值的另一端,而不是丢弃
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
例子
rol 的意思就是 将第7位的值,存放到第0位上,其它每个位的位置向左移动一位
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
逻辑左移SHL(Shift Logical Left)和逻辑右移SHR(Shift Logical Right)。它们的指令格式如下:
SHL/SHR Reg/Mem, CL/Imm
受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。
逻辑左移/右移指令只有它们的移位方向不同,移位后空出的位都补0。它们的具体功能下图(a)、(b)所示。 [IMG]
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
4楼
ROL和ROR 只是循环移位,并不包含进位标志
RCL和RCR 是循环移位,并且包含进位标志
|
能力值:
(RANK:410 )
|
-
-
6 楼
最初由 骷髅x 发布 逻辑左移SHL(Shift Logical Left)和逻辑右移SHR(Shift Logical Right)。它们的指令格式如下:
SHL/SHR Reg/Mem, CL/Imm
受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。 ........
ROR和ROL移位同SHR和SHL移位是有不同的功能的。
ROR和ROL移位是循环移位,他的移位方式就和时钟一样,顺时针或逆时针一个移动。不会改变数值的1和0的数量。只是将他们循环移动,当移位动和时钟轮回一圈之后,得到的结果又恢复原来的结果,所以这种移位是可逆的。
而SHL和SHR是逻辑移位,每向右移动一位或向左移动一位,都次移位都会改变最左边或最右边的值,往最左边或最右边填充0,而这样移位之后,大多不能再逆向回原来的值。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
看看 华中理工的 IBM 宏汇编语言设计 上面讲得很清楚,有图。
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
最初由 Ivanov 发布 4楼 ROL和ROR 只是循环移位,并不包含进位标志 RCL和RCR 是循环移位,并且包含进位标志 这个图画的很清楚啊,ROL和ROR并没有包含进位去循环,只是表现了它们怎么影响进位的
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
这个是RCL和RCR
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我怎么没感觉那个图画得很明白呢?
在ROx指令中, CF标志位的值是由移出的最后一位的值来确定的,再左移循环移动一位操作中,溢出位(OF)是循环移动后CF位的值和结果最高位的值“相异或”求得的值。在右循环移动一位操作中,溢出位(OF)是两个最高位的值“相异或”求得的值。因而,在这两个情况下,如果循环移动一位就改变了该操作数的最高位有效值(符号位),则OF标志位设置成1。对于多位循环移动位指令,OF标志位的值未定义。
上面的那个图表现不出来,这里面的相互影响的作用关系,怎么看怎么像 RCx那对指令
|
能力值:
( LV9,RANK:780 )
|
-
-
11 楼
汗,看不懂,还是Win32的好
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
如果ROL和RCL两个图一起发上来比较一下,再结合看书的话应该会好理解一点,光看ROL那个图确实会误解!!!
ROL是不带CF移位,而RCL是带CF移位
|
能力值:
( LV9,RANK:250 )
|
-
-
13 楼
谢谢大侠门的指点,我已经明白了
|
|
|