1

セグメントの長さはわずか 64KB です。そのため、メモリ セグメントに収まるには、プログラムのサイズが最大 64KB である必要があります (つまり、セグメント レジスタの値を変更しない場合)。

8086 システム用に 64KB を超えるプログラムを書きたいとします。おそらくこれには、プログラムの途中でセグメントレジスタ値を変更する必要がありますか? プログラム内で明示的に変更しますか、それとも単にコードを記述して OS に処理させるだけですか? DOS のような OS は、このような大きなプログラムをどのように処理しますか?

4

2 に答える 2

1

プログラムが .com ファイルにコンパイルされる場合、コードは最大 63 KB を超えることはできません。コードを追加する場合は、そのコードを別のファイルに記述し、実行時にファイルからコードをロードする必要があります。配列を作成したり、.com ファイルが読み込まれたセグメントの外にコードやデータを追加したりするには、プログラムで空きメモリを確保する必要があります。これを行うには、DOS 機能を使用して空き領域を予約します。これを行う前に、DOS 機能を使用して、現在のセグメントを除く、プログラムで使用されているメモリ全体を返してください。

于 2014-12-04T18:14:54.820 に答える