在nasm中请求sys_fork的示例

时间:2012-12-10 20:26:33

标签: linux assembly nasm

我正在尝试运行bzip并让它从一个nasm编码的汇编程序(在linux下)中将控制权返回给调用函数。我显然需要使用sys_fork和sys_execve系统调用的组合来实现这一点。经过多次搜索,我找到了一个如何使用sys_execve的示例,但是我找不到如何使用sys_fork的示例。任何有关我的请求的帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我的经验有限,但我记得sys_fork很容易。 “就这么做” - 没有参数。此时,你“同时在两个地方”。如果eax为零,那么您就是孩子 - 在bzip上执行sys_execve。如果eax非零(且非负数!),则您是父项,eax是您的PID。对该PID执行sys_waitpid。我记得,这会返回左移8字节的bzip的退出状态 - sys_execve本身永远不会返回。

我有一个粗略的例子,它运行一个编辑器,nasm和ld(所有这些都是硬编码的“hello.asm”)。很想发布,但如果你需要,我可以通过某种方式提供它。我记得在最难的部分sys_execve找到了正确的参数。