bzipを実行して、nasmでコード化されたアセンブリプログラム(Linuxの場合)内から呼び出し元の関数に制御を戻そうとしています。これを実現するには、sys_forkシステムコールとsys_execveシステムコールを組み合わせて使用する必要があるようです。よく調べてみたところ、sys_execveの使い方の例が見つかりましたが、sys_forkの使い方の例が見つかりません。私のリクエストでどんな助けでもありがたいです。
1266 次
1 に答える
2
私の経験は限られていますが、思い出すsys_fork
と簡単です。「それをするだけ」-パラメータなし。この時点で、あなたは「一度に2つの場所にいる」ことになります。がゼロの場合eax
、あなたは子供ですsys_execve
-bzipで実行してください。がeax
ゼロ以外(および負でない!)の場合、あなたは親でeax
あり、PIDです。sys_waitpid
そのPIDでを実行します。私が思い出したように、これは左に8バイトシフトされたbzipの終了ステータスを返します-sys_execve
それ自体は決して戻りません。
エディター、nasm、およびld(すべてハードコードされた「hello.asm」上)を実行する大まかな例があります。投稿するのに時間がかかりますが、必要に応じて何らかの方法で利用できるようにすることができます。sys_execve
私が思い出したように、私は最も難しい部分に正しいパラメータを取得することを見つけました。
于 2012-12-10T21:12:26.753 に答える