C 反彙編六 WHILE DO語句

2021-06-03 21:03:28 字數 1002 閱讀 9683

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 接著進行 ...