#include<iostream> | #include<iostream> |
using namespace std; | using namespace std; |
int main() | int main() |
{ | { |
int i=0; | int i=0; |
while(i!=10) | do |
{ | { |
i++; | i++; |
} | }while(i!=10); |
return 0; | return 0; |
} | } |
var_4= dword ptr -4 | var_4= dword ptr -4 |
argc= dword ptr 8 | argc= dword ptr 8 |
argv= dword ptr 0Ch | argv= dword ptr 0Ch |
envp= dword ptr 10h | envp= dword ptr 10h |
push ebp | push ebp |
mov ebp, esp | mov ebp, esp |
push ecx | push ecx |
mov [ebp+var_4], 0 | mov [ebp+var_4], 0 |
loc_40100B: | loc_40100B: |
cmp [ebp+var_4], 0Ah | mov eax, [ebp+var_4] |
je short loc_40101C | add eax, 1 |
mov eax, [ebp+var_4] | mov [ebp+var_4], eax |
add eax,1 | cmp [ebp+var_4], 0Ah |
mov [ebp+var_4] | jnz short loc_40100B |
jmp short loc_40100B | |
loc_40101C: | |
xor eax, eax | xor eax, eax |
mov esp, ebp | mov esp, ebp |
pop ebp | pop ebp |
retn | retn |
反思: | 可见do_while的汇编代码比while要精简 |
下步: | 做switch |