コマンドライン引数のパラメーター受け渡しがどのように機能するのか疑問に思っていますか? 私のアセンブリは少し錆びています。関数のパラメーターが呼び出し元によってスタックにプッシュされることを理解しています。コマンドライン引数はどうですか?メイン関数のスタック フレームにどのようにプッシュされますか?
ありがとう
コマンドライン引数のパラメーター受け渡しがどのように機能するのか疑問に思っていますか? 私のアセンブリは少し錆びています。関数のパラメーターが呼び出し元によってスタックにプッシュされることを理解しています。コマンドライン引数はどうですか?メイン関数のスタック フレームにどのようにプッシュされますか?
ありがとう
標準Cでは、main
少なくとも2つの引数を取ることができます。1つ目はコマンドライン引数の数で、2つ目はそれらへのポインターの配列です。スタックに表示される順序は実装によって定義されますが、Cの一般的な規則では、右から左にプッシュするため、後続の引数は上位のアドレスに表示されます。
ただし、生のアセンブリに関する限り、アセンブリに関連するほとんどのものと同様に、プラットフォームに依存します。Linuxは、コマンドライン引数を解析し、スタック上のそれらへのポインターを渡します。GetCommandLineA
Windowsでは、コマンドラインはOS(または)の呼び出しによって取得され、GetCommandLineW
自分で解析します。WindowsアプリでCまたはC++を使用している場合、コマンドラインも。の引数の1つですWinMain
。