2016-09-23 4 views
0

少なくともエンディアンの基本を理解していますが、この段落の最後の文は自分のコンピューター組織のテキストでは理解できません。誰かがここで作られたことを示す例を提供することはできますか?エンディアンは、同じデータをダブルワードと8バイトの両方として扱うときにのみ重要です。

コンピュータは、ダブルワードアドレスとしての左端または "ビッグエンド"バイトのアドレスと、右端または "リトルエンド"バイトを使用するものとに分割されます。 LEGv8は、ビッグエンディアンとリトルエンディアンのどちらでも動作します。 同じデータをダブルワードと8バイトの両方にアクセスする場合のみ、順序が重要なので、「エンディアン」を認識する必要はほとんどありません。

"LEGv8"はARMv8命令セットのサブセットであることを指摘しておきます。

+0

https://ja.wikipedia.org/wiki/Endianness – xxbbcc

答えて

1

最初の部分では、プロセッサがどのようにメモリからデータにアクセスするかを検討します。これは、長さと組み合わせた何らかの種類のロードおよびストア命令を使用して、レジスタとの間でメモリ内容を転送します。エンディアンを考慮する必要はなく、プロセッサにロードを指示し、他の操作を実行して結果を格納するだけです。エンディアンは、データ型のサイズを使用しているときにロードとストアの間で同じであるため、何も気にしません。

ここで、同じダブルワードをネットワーク経由で送信するか、ファイルに保存するなどの操作を行う必要があると考えます。ダブルワードに個々のバイトとしてアクセスする必要がある場合があります。おそらく、ネットワーク接続のもう一方の端は異なるエンディアンを実行します。多分ファイルフォーマットは、相互運用性のための特定のエンディアンを指定します。この場合、正しい順序に保つためにバイトオーダを知る必要があります。

関連する問題