3

Kip Irvinesの本で、私は次のことに出くわしました。

データ?ディレクティブは初期化されていないデータを宣言します。初期化されていないデータの大きなブロックを定義する場合、.DATA?ディレクティブは、コンパイルされたプログラムのサイズを縮小します。たとえば、次のコードは効率的に宣言されます。

。データ?

bigArray DWORD 5000 DUP(?); 20,000バイト、初期化されていません

一方、次のコードは、20,000バイト大きいコンパイル済みプログラムを生成します。

。データ

bigArray DWORD 5000 DUP(?); 20,000バイト

.dataとは正確には何ですか?プログラムを20k小さくするために、上記の例の内部で実行するディレクティブ。

4

1 に答える 1

6

初期化されていないデータは、コンパイルされたバイナリである必要はありません。プログラムの実行時にOSローダーが実行時に割り当てるバイトカウントだけです。

于 2011-08-21T11:58:00.487 に答える