2012-12-10 39 views
0

我試圖運行bzip並讓它從nasm編碼的彙編程序(linux下)返回到調用函數的控制。我顯然需要使用sys_fork和sys_execve系統調用的組合來實現這一點。經過多次搜索,我找到了一個如何使用sys_execve的例子,但是我找不到如何使用sys_fork的例子。任何幫助我的請求將不勝感激。在nasm中請求sys_fork的示例

回答

1

我的經驗是有限的,但正如我記得sys_fork很容易。 「只要做到這一點」 - 無參數。此時,你「同時在兩個地方」。如果eax爲零,那麼您就是孩子 - 在bzip上做sys_execve。如果eax不爲零(非負值!),則表示您是父項,eax是您的PID。在該PID上執行sys_waitpid。我記得,這返回退出狀態bzip左移8個字節 - sys_execve本身永遠不會返回。

我有一個粗略的例子,它運行編輯器,nasm和ld(全部用硬編碼的「hello.asm」)。希望發佈,但如果您需要,我可以提供某種方式。據我所知,我發現獲得正確的參數是最難的部分。

+0

「左移8位」,當然不是字節...... –

+0

非常感謝您的意見;非常感謝。如果沒有太多的麻煩,我會帶你提供示例代碼。再次感謝! – user1808714