return

Linux中的fork,子进程返回0,父进程返回子进程ID。子进程返回0的原因就是copy_process时任务状态段数据设置了eax为0。

昨天突然想不起return到底怎么return的了,现用简单示例Demo一下。

断在return 1出,go to disassembly。

在fun中,除了其他的栈操作外,可以看到有:mov eax 1 -> ret。

在main中使用eax。

这是单值返回的情况,使用eax传递。非单值为栈上的数据交换,mov来mov去。可以辅助理解fork的copy_process过程。

原文地址:https://www.cnblogs.com/jiejue/p/2751394.html