彙編與C的基本邏輯語句對應關係

2021-05-26 01:13:51 字數 1465 閱讀 1356

基本函式結構:

push        ebp

mov         ebp,esp

sub          esp,44h

push        ebx

push        esi

push        edi

lea           edi,[ebp-44h]

mov         ecx,11h

mov         eax,0cccccccch

rep stos   dword ptr [edi]

xor          eax,eax  ;若函式有返回值,則返回值在eax中

pop         edi

pop         esi

pop         ebx

mov         esp,ebp

pop         ebp

ret迴圈結構:

cmp  ....

jge(jl...)  addr

jmp  ....

if...else if...else結構:

cmp         dword ptr [ebp-4],1

jle           跳到else if位置

......

jmp         endaddr

cmp         dword ptr [ebp-4],0

jge          跳到else位置

......

jmp         endaddr

......

switch分支:

;先列出邏輯跳轉語句

cmp  .....

je  addr1

cmp  .....

je addr2

jmp  .....

;case內部語句單獨列出

addr1  ......

jmp  endaddr

addr2  ......

jmp  endaddr

struct結構:

;test[i].a = 1;

mov         ecx,dword ptr [ebp-2ch]

mov         dword ptr [ebp+ecx*8 -28h],1    ;8是結構大小,反彙編後總是以乙個常數出現

;test[i].b = 2;

mov         edx,dword ptr [ebp-2ch]

mov         dword ptr [ebp+edx*8-24h],2

;總之,結構的形式總是:1.求結構開始位址saddr;2.通過saddr求各成員的位址paddrs;3.為paddrs賦值。

c與彙編的關係

start是匯程式設計序的入口,main是c程式的入口?gcc 只是乙個 外殼而不是真正的編譯器,這真的c編譯器是 usr lib gcc i486 gun 4.3.2 cc1,gcc呼叫c編譯器 彙編器和鏈結器完成c 的編譯鏈結工作。usr lib gcc i486 linux gun 4.3.2...

c基本邏輯控制語句

for 語句的執行流程圖 for 表示式1 表示式2 表示式3 迴圈語句 先對表示式1進行求解 再對表示式2進行處理,表示式2一般是條件語句,條件為真則執行迴圈語句,否則不執行迴圈 迴圈語句執行完後執行語句3,語句3一般是步長,接下來繼續執行語句2,為真則繼續執行迴圈語句.if x 語句 if 條件...

Delphi迴圈語句對應的彙編語句序列 轉

count 終值,start 起始值 正向 語句 for i 0 to count do 彙編 mov eax,count test eax,eax jl inc eax 迴圈體 dec eax jnz 迴圈體 語句 for i 0 to count 1 do 彙編 mov eax,count de...