00401730 push ebp
00401731 mov ebp,esp
00401733 sub esp,44h
00401736 push ebx
00401737 push esi
00401738 push edi
00401739 lea edi,[ebp-44h]
0040173c mov ecx,11h
00401741 mov eax,0cccccccch
00401746 rep stos dword ptr [edi] // 初始化
87: int x=100;
00401748 mov dword ptr [ebp-4],64h // 區域性變數賦值100
88: while (x>0)
0040174f cmp dword ptr [ebp-4],0 // 區域性變數與0比較
00401753 jle grammar_while_do+30h (00401760) // 小於等於(不大於)則跳過迴圈,否則進入迴圈
89:
0040175e jmp grammar_while_do+1fh (0040174f) // 跳回while處繼續迴圈
92: }
00401760 pop edi
00401761 pop esi
00401762 pop ebx
00401763 mov esp,ebp
00401765 pop ebp
00401766 ret
C 反彙編 if語句分析
include void main std cout hello world 7?1 4 if b 1 std cout b equal 1 判斷語句有幾種 1.條件表示式 表示式1?表示式2 表示式3 2.if語句 3.switch語句 首先來分析if語句吧 debug版 0040117d 68 ...
C 反彙編四 SWITCH語句
004015d0 push ebp 004015d1 mov ebp,esp 004015d3 sub esp,48h 004015d6 push ebx 004015d7 push esi 004015d8 push edi 004015d9 lea edi,ebp 48h 004015dc mo...
switch語句反彙編分析
switch語句如下 反彙編 為 將區域性變數flag存放現在棧底即 ebp 8 然後通過 eax做中轉,在 ebp 4 存放乙個 flag 的備份,複製到 ecx中對其進行減一操作,其中的1則是 case 分支中的最小值,然後將操作完的數儲存到 ebp 4 中,此時為 flag 1 2 接著進行 ...