首页
社区
课程
招聘
初学16位汇编,有个问题一直没弄清楚?
2006-8-2 08:08 5370

初学16位汇编,有个问题一直没弄清楚?

2006-8-2 08:08
5370
初学16位汇编,有个问题一直没弄清楚?
汇编中有个循环移位指令如rol循环左移
这个指令是如何移动位的,教程说的很简单看不懂!!
希望高手指点!!!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞7
打赏
分享
最新回复 (12)
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ivanov 2006-8-2 08:46
2
0

和移位指令关系密切,哈哈
执行功能和移位指令一样,只不过溢出位被存放回值的另一端,而不是丢弃
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ivanov 2006-8-2 09:04
3
0
例子

rol 的意思就是 将第7位的值,存放到第0位上,其它每个位的位置向左移动一位
雪    币: 216
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
骷髅x 1 2006-8-2 11:14
4
0
逻辑左移SHL(Shift Logical Left)和逻辑右移SHR(Shift Logical Right)。它们的指令格式如下:

SHL/SHR Reg/Mem, CL/Imm

受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。

逻辑左移/右移指令只有它们的移位方向不同,移位后空出的位都补0。它们的具体功能下图(a)、(b)所示。 [IMG]
雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ivanov 2006-8-2 11:58
5
0
4楼
ROL和ROR 只是循环移位,并不包含进位标志
RCL和RCR 是循环移位,并且包含进位标志
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-8-2 12:16
6
0
最初由 骷髅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,而这样移位之后,大多不能再逆向回原来的值。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xiaoyisos 2006-8-2 12:54
7
0
看看 华中理工的 IBM 宏汇编语言设计 上面讲得很清楚,有图。
雪    币: 216
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
骷髅x 1 2006-8-2 12:57
8
0
最初由 Ivanov 发布
4楼
ROL和ROR 只是循环移位,并不包含进位标志
RCL和RCR 是循环移位,并且包含进位标志


这个图画的很清楚啊,ROL和ROR并没有包含进位去循环,只是表现了它们怎么影响进位的
雪    币: 216
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
骷髅x 1 2006-8-2 13:01
9
0
这个是RCL和RCR

雪    币: 1334
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Ivanov 2006-8-2 13:20
10
0
我怎么没感觉那个图画得很明白呢?

在ROx指令中, CF标志位的值是由移出的最后一位的值来确定的,再左移循环移动一位操作中,溢出位(OF)是循环移动后CF位的值和结果最高位的值“相异或”求得的值。在右循环移动一位操作中,溢出位(OF)是两个最高位的值“相异或”求得的值。因而,在这两个情况下,如果循环移动一位就改变了该操作数的最高位有效值(符号位),则OF标志位设置成1。对于多位循环移动位指令,OF标志位的值未定义。

上面的那个图表现不出来,这里面的相互影响的作用关系,怎么看怎么像 RCx那对指令
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
非安全 17 2006-8-2 18:03
11
0

汗,看不懂,还是Win32的好
雪    币: 216
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
骷髅x 1 2006-8-2 19:06
12
0
如果ROL和RCL两个图一起发上来比较一下,再结合看书的话应该会好理解一点,光看ROL那个图确实会误解!!!

ROL是不带CF移位,而RCL是带CF移位
雪    币: 256
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
coldpine 6 2006-8-2 20:58
13
0
谢谢大侠门的指点,我已经明白了
游客
登录 | 注册 方可回帖
返回