16 ビット アプリケーションまたは 32 ビット アプリケーションの意味がわかりません。16 ビット アプリケーションは、2^16 バイトを超えるメモリ空間を必要としないアプリケーションですか? この 16 ビットは、アプリケーションの最大サイズを指していますか?
3 に答える
32 ビット アプリケーションは、32 ビット フラット アドレス空間で実行されるソフトウェアです。
よくある質問への回答
64 ビット CPU は、OS の 64 ビット バージョンで標準 (32 ビット) プログラムを実行しますか? はい、そうなります。64 ビット システムは、対応する 32 ビット システムと下位互換性があります。
64 ビット OS は、64 ビット プロセッサ上で標準アプリケーションを実行しますか? 繰り返しますが、そうなります。これは下位互換性のためです。
64 ビット CPU で W2K と WXP を実行し、古いソフトウェアを使用できますか? はい、32 ビット OS (W2K および WXP) は 64 ビット プロセッサで動作します。また、64 ビット OS で「古いソフトウェア」を実行できるはずです。
数値 (addressmode のアセンブラー ディレクティブの 32 または 16 (例 "[use16]" および "[use32]")) は、アプリケーションがアドレス指定できるメモリの最大量を参照していません!
80386+ では、最大 4 GB の RAM をアドレス指定するために、operandsize- および addresssize プレフィックスを 16 ビット PM と組み合わせて使用することもできるためです。
(アプリケーションが使用できるメモリの最大量は、GDT/LDT セレクター内のセグメントサイズのセグメント エントリ、または 64 kb のセグメントのデフォルト サイズを参照しています。)
32 ビットと 16 ビットのアドレスモードの唯一の違いは、これらのオペランドサイズとアドレスサイズのプレフィックスの意味と使用法です。
【用途16】
したがって、16 ビット アドレス モードで 32 ビット オペランド/アドレスを使用する場合は、これらのプレフィックスをオペコードに追加する必要があります。これらのプレフィックスがないと、16 ビットしか使用できません。
【用途32】
32 ビット アドレス モードでは正反対の状況が見つかりました。したがって、32 ビット オペランド/アドレスを使用する場合は、これらのプレフィックスをオペコードから除外する必要があり、16 オペランド/アドレスを使用する場合にのみ、これらのプレフィックスをオペコードに追加します。
上記のサイズ ディレクティブ (または同様の表記) を慎重に使用すると、アセンブラがこの作業を行います。
ダーク