最近どうっすか?

コンピュータをメインに技術系の話題について書いていけたらいいなぁ。

リトルエンディアン

計算機のメモリー配置の方式で「ビッグエンディアン」と「リトルエンディアン」というのがありますが、リトルエンディアンについて疑問に思っていた頃がありました。

メモリーに格納される対象が「データ」であればLSBから順に配置されるのは良くわかるのです。

では、「コード」の場合は?
例えば、3バイトの命令がこのようなフォーマットだったとすると、
+----+----+----+
|OPコード|  オペランド…  |
+----+----+----+
オペコードにあたるバイトがMSBになるんじゃないか?
で、オペランドのバイトから配置したら、命令読むときに何バイト命令なのか?っていう以前に何命令なのかわからんぞ。

まぁ、当然ながらオペコードのバイトに続いてオペランドが次のアドレスに配置されていくんですね。

でも!
オペランドがアドレス値や即値などのデータだった場合は、LSBがオペコードに続いて先に配置されるという「あたりまえ」なのか「ひっかけ」なのか面白いものだなぁと思ったのを覚えています。

なんだか最近は雑談のカテゴリーばかりだなぁ。

ではでは。