c函数堆栈

使用反汇编分析代码

1.无参数无返回值

void fun1()
{

}

int main(int argc, char* argv[])
{
	fun1();
	return 0;
}

反汇编分析

image-20240529195435120

2.有参无返回值

代码

void fun2(int x,int y)
{
	x + y;
}

int main(int argc, char* argv[])
{
	fun2(1,2);
	return 0;
}

返汇编分析

image-20240529201202725

3.无参有返回值

代码

int fun3()
{
	return 8+7;
}

int main(int argc, char* argv[])
{
	fun3();
	return 0;
}

反汇编分析

image-20240529202025082

有参数有返回值

代码

int fun4(int x,int y)
{
	return x+y;
}

int main(int argc, char* argv[])
{
	fun4(3,7);
	return 0;
}

反汇编分析

image-20240530161324920

作业:使用两个数相加和三个数相加(应用两个数相加函数)的函数,编写实现五个数相加的函数,分析反汇编

代码

int fun1(int x,int y)
{
	return x+y;
}

int fun2(int x,int y,int z)
{
	int m;
	m = fun1(x,y);
	return fun1(m,z);
}

int fun3(int a,int b,int c,int d,int e)
{
	int m,n;
	m = fun1(a,b);
	n = fun2(c,d,e);
	return m+n;
}
int main(int argc, char* argv[])
{
	fun3(1,3,5,7,9);
	return 0;
}

反汇编分析

duizhan_Sheet1

posted @ 2024-06-05 13:45  yee-l  阅读(14)  评论(0)    收藏  举报