C源程序:
#include <iostream.h>
#include <string.h>void main()
{
char *a = "hello";
;
}
反汇编:
int __cdecl main(int argc,const char **argv,const char *envp)
.text:00401005 _main proc near ; CODE XREF: start+E4p
.text:00401005
.text:00401005 var_44 = byte ptr -44h
.text:00401005 var_4 = dword ptr -4
.text:00401005 argc = dword ptr 4
.text:00401005 argv = dword ptr 8
.text:00401005 envp = dword ptr 0Ch
.text:00401005
.text:00401005 jmp loc_0_401010
loc_0_401010: ; CODE XREF: _mainj
.text:00401010 push ebp
.text:00401011 mov ebp, esp
.text:00401013 sub esp, 44h
.text:00401016 push ebx
.text:00401017 push esi
.text:00401018 push edi
.text:00401019 lea edi, [ebp+var_44]/;var_44表示的是什么变量
.text:0040101C mov ecx, 11h //ecx为什么是11h
.text:00401021 mov eax, 0CCCCCCCCh
.text:00401026 repe stosd
.text:00401028 mov [ebp+var_4], offset aHello ; "hello"
.text:0040102F pop edi
.text:00401030 pop esi
.text:00401031 pop ebx
.text:00401032 mov esp, ebp
.text:00401034 pop ebp
.text:00401035 retn
#include <iostream.h>
#include <string.h>void main()
{
char *a = "hello";
;
}
反汇编:
int __cdecl main(int argc,const char **argv,const char *envp)
.text:00401005 _main proc near ; CODE XREF: start+E4p
.text:00401005
.text:00401005 var_44 = byte ptr -44h
.text:00401005 var_4 = dword ptr -4
.text:00401005 argc = dword ptr 4
.text:00401005 argv = dword ptr 8
.text:00401005 envp = dword ptr 0Ch
.text:00401005
.text:00401005 jmp loc_0_401010
loc_0_401010: ; CODE XREF: _mainj
.text:00401010 push ebp
.text:00401011 mov ebp, esp
.text:00401013 sub esp, 44h
.text:00401016 push ebx
.text:00401017 push esi
.text:00401018 push edi
.text:00401019 lea edi, [ebp+var_44]/;var_44表示的是什么变量
.text:0040101C mov ecx, 11h //ecx为什么是11h
.text:00401021 mov eax, 0CCCCCCCCh
.text:00401026 repe stosd
.text:00401028 mov [ebp+var_4], offset aHello ; "hello"
.text:0040102F pop edi
.text:00401030 pop esi
.text:00401031 pop ebx
.text:00401032 mov esp, ebp
.text:00401034 pop ebp
.text:00401035 retn
.text:00401005 var_44 = byte ptr -44h