首页
社区
课程
招聘
未解决 [求助]*号在汇编中是什么意思?
发表于: 2019-5-5 22:07 2257

未解决 [求助]*号在汇编中是什么意思?

2019-5-5 22:07
2257
[eax+ecx*4]只能乘1,2,3,4,不能乘16,32,64? 用到乘有什么意义?

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 45
活跃值: (2460)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
数组成员或迭代器 下标之类的存储方式
2019-5-5 23:35
0
雪    币: 2938
活跃值: (18)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
4为32/8字节.偏移.如果是16,则16/8,或者8/8.
2019-5-6 09:30
0
雪    币: 1787
活跃值: (2055)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
这是x86汇编中寻址方式之一,寄存器的乘数可以是1,2,4,8,正好是2的0、1、2、3次方。如果你想*3则可以用[eax+eax*2]代替。
比如基址寄存器ebx指向一个DWORD数组,每个成员占用4字节,ecx为你想取得的索引(0起始的数组下标),将结果存放在eax里,则以下指令可以完成:
mov eax,[ebx+ecx*4]
最后于 2019-5-6 13:51 被Ratin编辑 ,原因: 举例说明用途
2019-5-6 13:48
2
雪    币: 5514
活跃值: (2254)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
Ratin 这是x86汇编中寻址方式之一,寄存器的乘数可以是1,2,4,8,正好是2的0、1、2、3次方。如果你想*3则可以用[eax+eax*2]代替。比如基址寄存器ebx指向一个DWORD数组,每个成员占用4 ...
谢谢 +5 
2019-5-7 08:49
0
游客
登录 | 注册 方可回帖
返回
//