能力值:
( LV2,RANK:10 )
|
-
-
351 楼
产出好多精华贴啊,给看雪也带来很多资源,顶~!
|
能力值:
( LV2,RANK:10 )
|
-
-
352 楼
很想报名参加学习,
就是不知道是否可以通过网络学习?
|
能力值:
( LV2,RANK:10 )
|
-
-
353 楼
好厉害,呵呵。先恭喜下了!
|
能力值:
( LV2,RANK:10 )
|
-
-
354 楼
我在上海哦 想参加培训。。 学习。。。。555
|
能力值:
( LV2,RANK:10 )
|
-
-
355 楼
费用很高吗??????学业只是初中的可以学习吗?
难学吗??????
|
能力值:
( LV2,RANK:10 )
|
-
-
356 楼
我没有一点基础
|
能力值:
( LV2,RANK:10 )
|
-
-
357 楼
支持楼主,祝您成功!
|
能力值:
( LV4,RANK:50 )
|
-
-
358 楼
现在还能报名吗? 我可以从第2或者3阶段学
|
能力值:
( LV2,RANK:10 )
|
-
-
359 楼
支持楼主为祖国石化培养新人
|
能力值:
( LV2,RANK:10 )
|
-
-
360 楼
不说什么
来帮忙顶下
|
能力值:
( LV2,RANK:10 )
|
-
-
361 楼
我去过。做过一份题目。
|
能力值:
( LV2,RANK:10 )
|
-
-
362 楼
看技术,很强,呵呵,祝楼主越办越好,支持
|
能力值:
( LV9,RANK:210 )
|
-
-
363 楼
有网上远程授课吗? 想去 但路太远
|
能力值:
( LV2,RANK:10 )
|
-
-
364 楼
啊,武汉真的有这方面的培训吗?太好了,不知道学费贵不贵哦
|
能力值:
( LV2,RANK:10 )
|
-
-
365 楼
i=0
name[10]={1,2,3,4,5,6,7,8,9,10}
栈中情况
EBP-2C 1 NAME[0]
EBP-28 2 NAME[1]
EBP-24 3 NAME[2]
EBP-20 4 NAME[3]
EBP-1C 5 NAME[4]
EBP-18 6 NAME[5]
EBP-14 7 NAME[6]
EBP-10 8 NAME[7]
EBP-0C 9 NAME[8] /*这里好象是从右到左,数组10个元素*10*4/
EBP-8 0ah NAME[9] 10
EBP-4 i=0 /*[ EBP-4]这里就是放的i
i<=10 /*是要放11个元素NAME数组了什么办呢
看下面
I=0
i++
ECX,[EBP-4]/*ecx里放的是I的递增量*/
name[i]=0
ebp-2c+ecx*4,0/*这就是把0放到的单元里的地址EBP-2C+0*4这样写是为了更明白本来是EBP+ECX*4-2C
要是递增到1那就是EBP-2C+1*4了
最后那第11个0就放到了EBP-4里去了
就是这样
哎还是学习要深入才能不一字半解,不过这也让我明白了该如何学程序了,谢谢出题者谢了
|
能力值:
( LV2,RANK:10 )
|
-
-
366 楼
name[i]=0
ebp-2c+ecx*4,0/*这就是把0放到的单元里的地址EBP-2C+0*4这样写是为了更明白本来是EBP+ECX*4-2C
要是递增到1那就是EBP-2C+1*4了
这样写有的烦/改成 2C-ECX*4 当ECX =0 那就是2C里放第一个0 当I++ 是ECX=1
2C-1*4=28 第2个0放到了28大家可以看上面下面的就自己看了OK
|
能力值:
( LV2,RANK:10 )
|
-
-
367 楼
真想去学啊,就是没钱
|
能力值:
( LV2,RANK:10 )
|
-
-
368 楼
如果那位先分析写出来,谢了反正有空就在做下吧哎又要用到汇编调试了VC++才知道强大哎
|
能力值:
( LV2,RANK:10 )
|
-
-
369 楼
Main()起的情况
push ebp /*假设 EBP是1000 ESP 3000
Mov ebp, esp / 这条指令下移了4*EBP=ESP=2996 ESP 2996
SUB ESP ,40 /*2996-40=2956 ESP 2956
CALL TEST()时 /*esp=2952跳了 4个字节 EBP=2996
TEST()调用情况
push ebp /* EBP是2996保存上一个EBP ESP 2952
Mov ebp, esp /*EBP=ESP=2948 ESP 2948
SUB ESP ,40 /*2948-40=2908 ESP 2908
_asm
esp+?=2996 esp 2908/*要加88
push t=[ebp-4]
sub esp, a4 /* 上面加了 下面就要减不管什么变化总的还是要最后还原成 2948 再加上48 POP EBP ESP POP EBP(2996)
没想到栈是这样递减的 好象就是这样调用 ESP EBP 返回上一级的 ESP EBP数
这样的资料学起来就是好 自学苦啊 还是到武汉去算了这样快些
|
能力值:
( LV12,RANK:210 )
|
-
-
370 楼
void test()
{
int t;
scanf("%d", &t);
_asm
{
add esp, 0xA8
push t
sub esp, 0xA4
}
}
void main()
{
int m;
test();
printf("m=%d", m);
}为什么是这样呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
371 楼
当然这里有人不用汇编写了段C,其实也是看了汇编再写的C代码,他要是不调试汇编我看也写不出来C代码
|
能力值:
( LV12,RANK:210 )
|
-
-
372 楼
我自己测试了一下,不对啊 是不是找到int m 在内存中的地址 找到int t在内存中的地址,然后把t复制给m的地址,但是咋找出他们在内存中的地址呢?不懂啊
|
能力值:
( LV12,RANK:210 )
|
-
-
373 楼
堆栈主要是为了传递参数和函数调用 如何定位 m t在内存中的地址呢?他们是在堆栈区吗?数据不是在数据区吗?不明白啊
|
能力值:
( LV2,RANK:10 )
|
-
-
374 楼
CPU 只有2个EBP ESP 没有多的 不管程序多大,总只有一个EBP ESP 在使用 你在看看EBP
ESP 是干什么的就明白了
|
能力值:
( LV2,RANK:10 )
|
-
-
375 楼
font=隶书]支持论坛
|
|
|