动态线条
动态线条end

汇编:C语言while转汇编

while常用格式如下

while(表达式){
	//功能代码
}

C语言代码

#include <stdio.h>

void F(int n){
	int i = 0;
	while (i < n){
		printf("%d", i);
		i++;
	}
}

int main(){
	F(10);
	return 0;
}

对应汇编代码

image-20220216151047992

00A213C0  push        ebp  
00A213C1  mov         ebp,esp  
00A213C3  sub         esp,0CCh  
00A213C9  push        ebx  
00A213CA  push        esi  
00A213CB  push        edi  
00A213CC  lea         edi,[ebp+FFFFFF34h]  
00A213D2  mov         ecx,33h  
00A213D7  mov         eax,0CCCCCCCCh  
00A213DC  rep stos    dword ptr es:[edi]  
00A213DE  mov         dword ptr [ebp-8],0  
00A213E5  mov         eax,dword ptr [ebp-8]  
00A213E8  cmp         eax,dword ptr [ebp+8]  
00A213EB  jge         00A21413  
00A213ED  mov         esi,esp  
00A213EF  mov         eax,dword ptr [ebp-8]  
00A213F2  push        eax  
00A213F3  push        0A25858h  
00A213F8  call        dword ptr ds:[00A29114h]  
00A213FE  add         esp,8  
00A21401  cmp         esi,esp  
00A21403  call        00A2113B  
00A21408  mov         eax,dword ptr [ebp-8]  
00A2140B  add         eax,1  
00A2140E  mov         dword ptr [ebp-8],eax  
00A21411  jmp         00A213E5  
00A21413  pop         edi  
00A21414  pop         esi  
00A21415  pop         ebx  
00A21416  add         esp,0CCh  
00A2141C  cmp         ebp,esp  
00A2141E  call        00A2113B  
00A21423  mov         esp,ebp  
00A21425  pop         ebp  
00A21426  ret  
posted @ 2022-02-16 15:17  v1v1v1  阅读(163)  评论(0编辑  收藏  举报