0

私は 32 ビットの数値を出力するプログラムを書いています。後入れ先出し機能を利用するために、各桁をスタックに格納することを考えていました。これにより、スタックに 32 桁を格納できるかという疑問が生じました。

私の質問は、スタックに何桁の情報を保存できるかということです。スタックにプッシュできるものの数の制限は? 64桁を保存できますか? 128? 任意の長さの数?

前もって感謝します、

ライリー

4

2 に答える 2

1

実際にはnasmこれを指示するのではなく、使用するリンカーを増やします。一緒nasmにリンクできるオブジェクトファイルを作成するだけです。

Linuxのリンカーを使用している場合ld、デフォルトのスタックは2Mである可能性があります。

したがって、いいえ、32バイトは実際には大きな影響を与えることはなく、スタックが不足した場合でも、スタックld --stack 4194304を増やすようなものを使用できます。

于 2012-10-30T05:29:16.217 に答える
1

OS に少し依存し、使用するリンカにもう少し依存しますが、問題ないはずです。デフォルトで 1 メガバイト以上のスタックを割り当てるのが一般的であるため、128 バイトは何でもありません。戻る前に必ずスタック ポインタをリセットしてください。すべて問題ありません。

デフォルトよりも多くのスタックが必要な場合は、通常、リンカーに特定のサイズのスタックを割り当てるように指示できます。

于 2012-10-30T05:15:18.883 に答える