struct o{
int a;
int b;
};
int main() {
o o1,o2;
o2=o1;
return 0;
}
运行时Alt+8看它的反汇编。发现赋值之前有4行很奇怪的代码,其中还调用了一个__RTC_UninitUse,不知道是什么意思。还请高手解释一下!struct o{
int a;
int b;
};
int main() {
00413530 push ebp
00413531 mov ebp,esp
00413533 sub esp,0F8h
00413539 push ebx
0041353A push esi
0041353B push edi
0041353C lea edi,[ebp-0F8h]
00413542 mov ecx,3Eh
00413547 mov eax,0CCCCCCCCh
0041354C rep stos dword ptr es:[edi]
0041354E mov byte ptr [ebp-0F1h],0
o o1,o2;
o2=o1;
00413555 cmp byte ptr [ebp-0F1h],0 //这个cmp是干什么用的?
0041355C jne main+3Bh (41356Bh) //为什么?
0041355E push offset (413617h) //pushl了什么?
00413563 call @ILT+170(__RTC_UninitUse) (4110AFh) //这个函数是干什么用的?
00413568 add esp,4
0041356B mov eax,dword ptr [o1]
0041356E mov dword ptr [o2],eax
00413571 mov ecx,dword ptr [ebp-8]
00413574 mov dword ptr [ebp-18h],ecx
解决方案 »
- 求助关于类成员赋值问题
- 软件使用说明书
- 请教:有没有栅格图像(BMP)转换成矢量图像(PDF等格式)的VC的源代码??
- raw socket 奇怪现象
- DDB与DIB在形式上到底有什么不同,他们之间有什么联系?
- 如何将VC写的程序,生成小图标放在开始工具条的右边,就是象输入法的图标一样!
- .def是什么文件
- 有关使用CArray模板类的问题。急!急!急!
- ……………………请高手点播:如何快快乐乐学MFC(VC)……………………
- 用vb开发iis应用中难题?高手请进!!!
- 'SHDocvw' : does not exist or is not a namespace?
- 自定义类响应自定义消息问题
int main()
{
return 0;
}
你再看它的汇编代码,然后对比你加了你自己的程序后的汇编代码有啥 不同,就知道多余的那些是干什么用的了。
jne判断地址不为空就跳到相应的代码执行下去。
push offset (413617h)莫非是返回地址?不是很清楚。
call @ILT+170(__RTC_UninitUse) 估计是个释放资源的函数。个人愚见,多指教