首页
社区
课程
招聘
[求助]这代码为什么要*4呢
发表于: 2009-1-10 21:11 3297

[求助]这代码为什么要*4呢

2009-1-10 21:11
3297
c=0;
  while(c<1000)
  {
     array[c]=c;
     c++;
   }
这段代码翻译成汇编语言就是:

mov ecx,DWORD PTR[array]
xor   eax,eax
loopstart:
mov   DWORD  PTR[ecx+eax*4],eax
add  eax,1
cmp  eax,1000
jl      loopstart

问题 是:mov   DWORD  PTR[ecx+eax*4],eax 这句  [ecx+eax*4],eax是什么意思,对应应该是array[c]=c;   为什么要*4呢

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
你定义数组类型长度为32位,即4个字节
2009-1-10 21:16
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哦  DWORD是双字  = 4字节吗?
2009-1-10 21:19
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
word是字,dw定义字型数据
2009-1-10 21:23
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
5
楼主精神可嘉......学习学习
2009-1-10 22:58
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
狐狸我汇编不行你也不教教我
2009-1-11 09:45
0
游客
登录 | 注册 方可回帖
返回
//