#include<iostream> | #include<iostream> | #include<iostream> |
using namespace std; | using namespace std; | using namespace std; |
int main() | int main() | int main() |
{ | { | { |
int a=0,b=1; | int a=0; | int i=0; |
cout<<a<<b; | char c='C'; | |
return 0; | cout<<a<<c; | cout<<i; |
} | return 0; | return 0; |
} | } | |
var_8= dword ptr -8 | var_5= byte ptr -5 | |
var_4= dword ptr -4 | var_4= dword ptr -4 | var_4= dword ptr -4 |
argc= dword ptr 8 | argc= dword ptr 8 | argc= dword ptr 8 |
argv= dword ptr 0Ch | argv= dword ptr 0Ch | argv= dword ptr 0Ch |
envp= dword ptr 10h | envp= dword ptr 10h | envp= dword ptr 10h |
push ebp | push ebp | push ebp |
mov ebp, esp | mov ebp, esp | mov ebp, esp |
sub esp, 8 | sub esp, 8 | push ecx |
mov [ebp+var_4], 0 | mov [ebp+var_4], 0 | mov [ebp+var_4], 0 |
mov [ebp+var_8], 1 | mov [ebp+var_5], 43h | mov eax, [ebp+var_4] |
mov eax, [ebp+var_8] | mov al, [ebp+var_5] | |
push eax | push eax | push eax |
mov ecx, [ebp+var_4] | mov ecx, [ebp+var_4] | |
push ecx | push ecx | |
mov ecx, offset unk_420838 | mov ecx, offset unk_420838 | mov ecx, offset unk_420838 |
call sub_401040 | call sub_401040 | call sub_401020 |
mov ecx, eax | push eax | |
call sub_401040 | call sub_4023C0 | |
add esp, 8 | ||
xor eax, eax | xor eax, eax | xor eax, eax |
mov esp, ebp | mov esp, ebp | mov esp, ebp |
pop ebp | pop ebp | pop ebp |
retn | retn | retn |
反思: | 如果输出为char型则是这个结构: push a push b call sub_xxxxxx add esp, 8 如果输出为其他型则为这个结构: push a mov ecx, offset unk_xxxxxx call sub_xxxxxx 目前仍然没有得出push ecx。这句的用意。 |
下步: | 做for循环。 |