web-dev-qa-db-ja.com

「単語」とは何ビットですか?

これは本からですAssembly Language Step By Step、Jeff Duntemann:

クイックツアーは次のとおりです。ビットは単一の2進数、0または1です。バイトは8ビットが並んでいます。 Wordは2バイト並んでいます。ダブルワードは2ワード並んでいます。クワッドワードは、2つのダブルワードが並んでいます。

そして、これは本からですコンピュータ組織とアセンブリ言語の原則:Java仮想マシンの使用、Patrick Juola:

便宜上、8ビットは通常、通常バイトと呼ばれる単一のブロックにグループ化されます。次に大きい名前のビットブロックはWordです。 Wordの定義とサイズは絶対的なものではありませんが、コンピューターによって異なります。 Wordは、コンピューターが処理する最も便利なデータブロックのサイズです。

Wordは2バイト(16ビット)ですか?それとも、コンピューターが処理するのに最も便利なデータブロックですか? (これが何を意味するのかもわかりません。)

27
Koray Tugay

私はこれらの本のいずれにも精通していませんが、2番目は現在の現実に近いです。最初は特定のプロセッサについて議論しているかもしれません。

プロセッサは、常に8の倍数ではなく、非常にさまざまなWordサイズで作成されています。

8086および8087プロセッサは16ビットワードを使用しましたが、これが最初の著者が書いていたマシンである可能性があります。

最近のプロセッサは、一般に32ビットまたは64ビットワードを使用します。

50年代と60年代には、4、9、36など、今では非常に奇妙に思えるワードサイズのマシンがありました。

19
Don Roby

2番目の引用は正しいです。Wordのサイズはコンピューターによって異なります。 ARM NEON アーキテクチャは、32ビットワードのアーキテクチャの例です。64ビット量は「ダブルワード」と呼ばれ、128ビット量は「quadwords」と呼ばれます。

NEONオペランドは、ベクトルまたはスカラーです。 NEONベクトルは、64ビットダブルワードベクトルまたは128ビットクワッドワードベクトル。

通常、16ビットワードは、Amiga 500などの16ビットシステムでのみ使用されます。

2
samgak

他の回答に加えて、Wordのサイズ(システム間での)の可変性のさらなる例は、Aleph Oneの論文 Smashing The Stack For Fun And Profit にあります。

メモリは、Wordサイズの倍数でしかアドレスできないことを覚えておく必要があります。この場合のWordは4バイト、つまり32ビットです。したがって、5バイトのバッファーは実際に8バイト(2ワード)のメモリーを使用し、10バイトのバッファーは12バイト(3ワード)のメモリーを使用します。

1
Astrophe

これは、Steven Levyの本 Hackers:Heroes of the Computer Revolution からのものです。

..メモリは、それぞれ18ビットの4096個の「ワード」に削減されました。 (「ビット」は1または0の2進数です。一連の2進数は「ワード」と呼ばれます)。

他の答えが示唆するように、「単語」は固定長を持たないようです。

1
Koray Tugay

X86/x64プロセッサでは、バイトは8ビットであり、0から255までの8ビットで256の可能なバイナリ状態があります。これは、OSがキーボードのキーストロークを画面上の文字に変換する方法です。 'A'キーを押すと、キーボードは97に等しいバイナリ信号をコンピューターに送信し、コンピューターは小文字を印刷します画面上の「a」。 Altキーを押しながらNUMPADで97を入力し、Altキーを離すと、Windowsテキスト編集ソフトウェアでこれを確認できます。 「97」を0〜255の任意の数字に置き換えると、システムの文字コードページにその数字に関連付けられた文字が画面に表示されます。

文字が8ビットまたは1バイトの場合、Wordは少なくとも2文字でなければならないため、16ビットまたは2バイトでなければなりません。従来、Wordはさまざまな数の文字と考えるかもしれませんが、コンピューターでは、計算可能なものはすべて静的ルールに基づいています。その上、コンピューターは文字や記号が何であるかを知らず、数字を数える方法しか知らない。したがって、コンピューター言語では、Wordが2文字に等しい場合、ダブルワード、またはDWORD、2WORDs、4文字またはバイト、32ビットに等しい。さらに、クワッドワード、またはQWORDは2DWORDs、4WORDs、8文字、または64ビットと同じです。

これらの用語の機能は開発者向けのWindows APIに制限されていますが、他の状況では表示される場合があります(たとえば、Linux ddコマンドは数値サフィックスを使用してバイトサイズとブロックサイズを合成します。cは1バイトで、wはバイト)です。

0
Dan