私は 32 ビットの数値を出力するプログラムを書いています。後入れ先出し機能を利用するために、各桁をスタックに格納することを考えていました。これにより、スタックに 32 桁を格納できるかという疑問が生じました。
私の質問は、スタックに何桁の情報を保存できるかということです。スタックにプッシュできるものの数の制限は? 64桁を保存できますか? 128? 任意の長さの数?
前もって感謝します、
ライリー
実際にはnasm
これを指示するのではなく、使用するリンカーを増やします。一緒nasm
にリンクできるオブジェクトファイルを作成するだけです。
Linuxのリンカーを使用している場合ld
、デフォルトのスタックは2Mである可能性があります。
したがって、いいえ、32バイトは実際には大きな影響を与えることはなく、スタックが不足した場合でも、スタックld --stack 4194304
を増やすようなものを使用できます。
OS に少し依存し、使用するリンカにもう少し依存しますが、問題ないはずです。デフォルトで 1 メガバイト以上のスタックを割り当てるのが一般的であるため、128 バイトは何でもありません。戻る前に必ずスタック ポインタをリセットしてください。すべて問題ありません。
デフォルトよりも多くのスタックが必要な場合は、通常、リンカーに特定のサイズのスタックを割り当てるように指示できます。