首页
社区
课程
招聘
[求助]SHL与SHR指令是什么意思?
发表于: 2007-2-5 11:31 20857

[求助]SHL与SHR指令是什么意思?

2007-2-5 11:31
20857
我在看汇编代码的时候,遇到SHR和SHL指令,不知道是什么意思.
例如:EAX = 73
SHL EAX , 4
这条指令执行完了之后 EAX = 730了.
是怎么计算的阿?
帮帮我.谢谢

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 242
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Originally posted by whjh
我在看汇编代码的时候,遇到SHR和SHL指令,不知道是什么意思.
例如:EAX = 73
SHL EAX , 4
这条指令执行完了之后 EAX = 730了.
是怎么计算的阿?
........


SHL -逻辑左移
SHR -逻辑右移

crackmes.ys168.com 资料区有个“intel汇编指令集.zip”,下载看看就明白了。
2007-2-5 12:18
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
3
shl eax(2),2

eax=2*2*2

shr eax(8),2

eax=8/2/2
2007-2-5 12:20
0
雪    币: 309
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
逻辑左移SHL(Shift Logical Left)和逻辑右移SHR(Shift Logical Right)。

逻辑左移一次.等于*2

逻辑左移4次 等于 2*2*2*2=16

73(115)*16=1840(730)
2007-2-5 13:15
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
shl是逻辑向左移的意思,那个l->left

++++++++++++++++++++++++++++++++++
73H的二进制为01110011
向左移4位(shl 73,4)即011100110000所以
执行完之后正是730
左移了四位

2007-2-5 13:22
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
6
好像我算错了
2007-2-5 13:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢各位的帮忙 我明白了.
2007-2-5 14:01
0
游客
登录 | 注册 方可回帖
返回
//