誰もが明確な答えを持っていますか?
誰かが、32 ビット OS では WORD は 16 ビットを意味すると言っていますが、本当ですか?
「単語」の概念にはいくつかの意味があります。質問には3つの意味が埋め込まれています。
WORD
- これは、Windows の「Win32」C 言語 API の一部です。Win32 のWORD
型定義を説明すると、次のようなことも出てきます。
一般的/一般的な使用法では、「プロセッサ ワード」はプロセッサ レジスタのサイズを指します。また、CPU 命令のサイズ、またはポインターのサイズを参照することもできます (正確な CPU アーキテクチャによって異なります)。単純なケースでは、32 ビット プロセッサの「ワード」サイズ (およびポインタ サイズ) は 32 ビットになります。64 ビット プロセッサの「ワード」サイズ (およびポインタ サイズ) は 64 ビットです。
この「プロセッサ ワード」の概念に関するウィキペディアの記事があります。この用語の一般的な使用法と、現在および過去のいくつかの CPU アーキテクチャのサイズが詳しく説明されています。
「64ビット」ソフトウェアを実行するには、「64ビット」CPUと「64ビット」OSが必要です。これはおそらく明らかです。
「64 ビット ソフトウェア」は、64 ビット命令を使用します (たとえば、64 ビットの数値を加算したり、64 ビットのデータをプロセッサ レジスタから RAM に同時にコピーしたりします)。また、64 ビットのポインター サイズも使用できます。これは、最大 4 ギガバイトの RAM (「32 ビット ソフトウェア」など) しか使用できないのではなく、理論的には約 170 億ギガバイトの RAM (16 エクサバイト) を使用できることを意味します。
「64 ビット」x64/x86 CPU は、「32 ビット」(または「16 ビット」) ソフトウェアも実行できます。これは、コードを変更することなく、またソフトウェアを再構築する必要もなく実行できます。これは、すべての古い CPU 命令がまだ新しい CPU に存在し、下位互換性があるためです。
これらの概念は、「プロセッサ ワード」の一般的な概念と厳密には同じではありませんが、密接に関連しています。
注: この概念は、古くて特殊なプロセッサ (特に古いビデオ ゲーム システム) について話すと少し複雑になりますが、質問は実際にはそれらに関するものではないので、詳細には触れません。それらは「64 ビット」または「8 ビット」システムとして語られがちですが、実際はそれよりも少し複雑です。上でリンクした「プロセッサ ワード」の wiki 記事、または問題の特定のシステムに関する記事を参照してください。
WORD
、すべて大文字質問の大文字と特定のサイズ ( WORD
32 ビット OS では 16 ビット) は、「プロセッサ ワード」という一般的な用語とは異なるものを暗示しています。
従来の Windows プログラミング (Win32 API) では、 と呼ばれるマクロが定義されWORD
ており、そのサイズは 16 ビットです。これは、プロセッサが 16 ビットだったときに意味がありました。ただし、このマクロを含むコードを 32 ビットまたは 64 ビット ターゲット用にコンパイルしても、16 ビットのままです。Win32 APIの ADWORD
は 32 ビットで、aQWORD
は 64 ビットです。
これは、Microsoft が Win32 API で、コードを変更することなく下位互換性をサポートするために非常に懸命に努力しているためです。ほとんどの場合、Windows 95 時代の Win32 サンプルを変更せずにコンパイルでき、現在でもまったく同じように動作します。
Microsoft は、Intel (およびおそらく AMD) のドキュメントからこの命名スキームを継承した可能性が非常に高いです。
Intel ドキュメントでは、「Word」(Win32 WORD
) は 16 ビットです。「ダブルワード」(Win32 DWORD
) は 32 ビットです。「Quadword」(Win32 QWORD
) は 64 ビットです。関連するアセンブリ命令名も、この命名スキームを反映しています (たとえば、MMX Add Packed IntegersPADD
命令: PADDW
、PADDD
、PADDQ
)。
いくつかの例については、x86 命令セットに関するこのウィキペディアの記事、またはインテルのソフトウェア開発マニュアルを確認できます。
この命名方式は、「プロセッサ ワード」の一般的な概念に関して必ずしも意味があるとは限りません。これらの概念はレジスタの一部にしか対応していないためです。ただし、x86 プログラム用の安定したプログラミング インターフェイスを作成するという点では意味があります。これは、「64 ビット」OS 上で「32 ビット」(および 16 ビット) プログラムを使用できる大きな理由です。
1 Word は 16 ビットのサイズ DWord (ダブル ワード) は、プログラミングで使用される 32 ビットの Word のサイズの 2 倍ですが...
OS の Word という名前は、OS の横に表示される番号です。したがって、64 ビットと表示されている場合、この場合、1 つの単語 (storege のアドレス) は 64 ビットです。
したがって、プログラミングまたはOS番号からどの角度から見るかによって異なります