Assembly code analysis ---- function call stack process (process kernel stack switching process)

When the stack holds the maintenance information needed for a function call, we call it a stack frame. The stack frame generally includes the following aspects:

The return address and parameters of the function

Temporary variables

Context information for function calls

The stack frame of a function is delimited by two registers, ebp and esp

The ebp register always points to the bottom of the current function stack frame.

The esp register always points to the top of the current function stack frame.

Stack frames grow from high addresses to low addresses.

The specific function calling process allows me to use a simple program and explain with drawing to increase my in-depth understanding of its process.

int sum(int a, int b)
{
	int tmp = a + b;
	return tmp;
}
intmain()
{
	int a = 10;
	int b = 20;
	int c = sum(a, b);
	return 0;
}
Drawing combined with assembly code analysis:


Tip: You can zoom in to view the picture for a clearer view.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326842714&siteId=291194637