彙編 C語言的for轉彙編

2022-09-21 15:48:11 字數 3296 閱讀 8007

for(變數初始化操作;判斷是否執行迴圈;變數增減操作)

;提公升堆疊

00f83c00 push ebp

00f83c01 mov ebp,esp

00f83c03 sub esp,0cch

;儲存現場

00f83c09 push ebx

00f83c0a push esi

00f83c0b push edi

;初始化堆疊

00f83c0c lea edi,[ebp+ffffff34h]

00f83c12 mov ecx,33h

00f83c17 mov eax,0cccccccch

00f83c1c rep stos dword ptr es:[edi]

;for迴圈**

00f83c1e mov dword ptr [ebp-8],0 ;初始化for引數

00f83c25 jmp 00f83c30

00f83c27 mov eax,dword ptr [ebp-8]

00f83c2a add eax,1 ;自增運算

00f83c2d mov dword ptr [ebp-8],eax

00f83c30 mov eax,dword ptr [ebp-8]

00f83c33 cmp eax,dword ptr [ebp+8] ;比較操作,i < n

00f83c36 jge 00f83c55

00f83c38 mov esi,esp

00f83c3a mov eax,dword ptr [ebp-8]

00f83c3d push eax

00f83c3e push 0f858a8h

00f83c43 call dword ptr ds:[00f89114h] ;呼叫printf

00f83c49 add esp,8 ;呼叫完函式的堆疊平衡

00f83c4c cmp esi,esp

00f83c4e call 00f8113b

00f83c53 jmp 00f83c27 ;重複for迴圈

;恢復現場

1)初始化塊

2)判斷是否執行塊

3)執行功能塊

4)改變變數塊

彙編 C語言的IF轉彙編

include int main else return 0 對應彙編 如下 00ae1a10 push ebp 棧提公升 00ae1a11 mov ebp,esp 00ae1a13 sub esp,0d8h 00ae1a19 push ebx 儲存現場 00ae1a1a push esi 00ae...

從C語言到彙編,從彙編到C語言

看雪一同志寫的文章,我覺得很基礎和有用,知識著眼於小處。積累才是王道!一 迴圈語句與發彙編後的機器語言 1 for迴圈 下面是一段c語言的 我們的目的是來看其反彙編的結果 int myfunction int a,int b return c 前面的反彙編暫時不理它,這裡從for的地方開始反彙編,結...

C語言嵌入彙編

概述 linux核心原始碼中,有很多c語言中嵌入了彙編語句,如何理解這些彙編語句,對理解核心有很重要的作用。具有輸入和輸出引數的嵌入式彙編語句的基本格式為 asm 彙編語句 輸出暫存器 輸入暫存器 會被修改的暫存器 除第一行以外,後面帶冒號的行若不使用就都可以省略。彙編語句 是你寫彙編指令的地方 輸...