【发布时间】:2020-04-08 23:38:40
【问题描述】:
所以我有这个主要功能,它会产生很多奇怪的指令。我正在使用 Visual Studio 2019,并且处于调试模式,因此禁用了优化。这些指令在做什么?
int main()
{
00D340E0 push ebp
00D340E1 mov ebp,esp
00D340E3 sub esp,104h
00D340E9 push ebx
00D340EA push esi
00D340EB push edi
00D340EC lea edi,[ebp-104h]
00D340F2 mov ecx,41h
00D340F7 mov eax,0CCCCCCCCh
00D340FC rep stos dword ptr es:[edi]
00D340FE mov eax,dword ptr [__security_cookie (0D3A024h)]
00D34103 xor eax,ebp
00D34105 mov dword ptr [ebp-4],eax
00D34108 mov ecx,offset _842A6236_main@cpp (0D3C012h)
00D3410D call @__CheckForDebuggerJustMyCode@4 (0D31208h)
(the rest of the file...)
编辑:奇怪的是,我的意思是我不明白这里发生了什么,并不是说它不标准。
【问题讨论】:
-
我没有看到任何奇怪的说明。对我来说看起来很标准。据推测,他们会做任何你在 VS 中编写的代码。
-
是的,我不明白它是什么,奇怪的是我的意思是我不明白发生了什么。
-
你想学习汇编吗?因为这可能不是一个好的学习方式。
-
我很惊讶它被关闭了。对我来说,这似乎是一个完全合理的问题。
-
不,我只是看到我的 C 代码实际生成的内容,我注意到主函数正在生成很多东西。我知道一点汇编,但这不是为了学习汇编(我对汇编有一个粗略的了解),但我只是想知道主要功能在做什么!谢谢你的回答。
标签: c++ visual-studio disassembly