2016-03-26 6 views
-1

タイトルはほとんどそれを言います。私はアルゴリズムを書いています(そして、今はそれをnasmに移植しています)。これはたくさんの(8GB以上の)RAMを割り当てる必要があります(CPU使用の重大なトレードオフとして)。すべての反復で、スタックにintを格納します(出力および後で使用するため)。次に、定期的に値のセットを解放することができますが、スタックの一番下からのみ行うことができます。単純にスタックベース(rbp)を減らすことでこれを行うことができますか?x86_64上でスタックメモリをrbpから引くことで解放できますか?

答えて

0

スタックはスタックです。あなたはトップに値をプッシュしポップすることができますが、それ以上のものはありません。それ以外の方法では何も割り当てを解除することはできません。

RBPの変更は何もせず、現在のスタックフレームに使用するヘルパーレジスタです。 RSPはスタックの現在のトップを表示し、スタック内の次の値が格納される場所またはスタック内から取得される場所を変更します。したがって、必要に応じて一番上の値をドロップできますが、下からは値をドロップできません。

一時的に値を保存して後で解放する必要がある場合は、循環バッファまたは通常のメモリブロックがより適しています。

+0

Kiitos、sami。 Halki、poikki ja pinoon -vastaus。 –

関連する問題