...特定のプログラムがCPUに特定のアドレスから情報を取得するように指示するだけで、プログラムはその処理方法を定義します。
まさに。しかし、RAMは「シーケンシャル」に読み取られるわけではなく、ランダムアクセスメモリの略であり、まったく逆です。
バイトが何であるかを知る以外に、それがbyteであるか、浮動小数点数のような大きなアイテムのフラグメントであるかさえ知りません。
特定の例をいくつか挙げて、他の回答に追加したいと思います。
検討してください01000001
。プログラムは、その意味に関係なく、データの大部分の一部として、ある場所から別の場所にコピーする場合があります。しかし、それをテキストモードのビデオバッファで使用されるアドレスにコピーすると、文字A
が画面上の特定の位置に表示されます。カードがCGAグラフィックモードの場合、まったく同じアクションで、赤いピクセルと青いピクセルが表示されます。
レジスタでは、整数としての数値65が可能です。32のビットを設定するために算術を行うことは、コンテキストのないものを意味する可能性がありますが、具体的には文字を小文字に変更する場合があります。
8086 CPUは(まだ)と呼ばれる特別な指示があるDAA ※あなたはちょうどあなたが2桁として解釈される命令を使用している場合は、レジスタは2桁を保持しているときに使用されます41
。
メモリワードは、何か他のものがそこに格納されているときのポインタであると考えて読み取られるため、プログラムがクラッシュします。
デバッガを使用して、メモリ、マップを検査しますを使用して表示の解釈をガイドします。このシンボル情報がなければ、低レベルデバッガーで次を指定できます。このアドレスを16ビットワードとして表示し、このアドレスを長い浮動小数点として、文字列として...何でも表示します。ネットワークパケットダンプまたは不明なファイル形式を見ると、それを解決するのは困難です。
それは、現代のコンピューターアーキテクチャにおける力と柔軟性の主要な供給源です。メモリセルは、値で何をするか、そしてそれが後続の操作にどのように影響するかによって、プログラムにとって「意味する」ことだけを暗示する、あらゆるデータ、命令を意味します。 意味は整数の幅よりも深いです:これらの文字は... asciiまたはebcdicの文字ですか?英語またはSQUの製品コードで単語を形成しますか?送信先アドレスまたは送信元アドレス 最下位レベルの解釈(論理ビット、整数のような、符号付きまたは符号なし、浮動小数点、bcd、ポインタ)は、命令セットレベルではコンテキストに依存しますが、すべてのレベルですべてのコンテキストであることがわかります。に住所は、封筒に印刷されている場所のためです。CPUではなく、郵便配達員のルールに応じて異なります。コンテキストは1つの大きな連続体であり、その一端にビットがあります。
※脚注:DAA命令はbyteとしてエンコードされます00100111
。したがって、そのバイトは、命令ストリームで読み取られた場合は前述の命令であり、27
bcd数字として解釈される場合は数字、0x27 = 39 はASCII の数字9である整数、および割り込みテーブルの一部(INT 13の半分) BIOSサービスルーチンに使用される2バイトアドレス。