無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

バイナリをつつく3ー電波を理解する

前回IntelCPUオブジェクトの大まかな仕様が決まったから早速CPUとお話しするよ。
「ハロー、インテル君」
CPU「B409 BA[0D00] CD21 B44C B000 CD21 48656C6C6F2C20696E 646F726924」
ガーン(@/\@)。何言っているのかわかんないや。宇宙語かな?
駄目だ!会話は不可能だ。
そうだった忘れていた、彼らは0と1しかわからないし0と1で話しをするんだった。
こういう時はやっぱり辞書が必要ピョ。
CPUの辞典はやっぱり、ゴソゴソゴソゴソ 見つかった! じゃーん。
IA-32 インテル® アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、中巻 A: 命令セット・リファレンス
さっそくP33の「第2章 命令フォーマット」を読むと・・・ピミュピミュ
命令プリフィックス、オペコード・バイト、ModR/Mバイト、SIB ( スケール・インデックス・ベース)、ディスプレースメント、即値データからなるらしい。 ずいぶん多いね、タジタジ、だけどほとんどのフィールドは必ずしも必要でないらしいね。ちょっとピォッとしたよ。
うーん、説明読んでもよくわかんないな・・・
こういう時は使ってみないとわかんないから、取り合えずこれをCommand構造体に決定!
もちろんマニュアルに書いてある命令フォーマットのフィールドはプロパティにしとく。

だけど、困ったな、この各フィールドはサイズが変動するんだよね。
だから実際にコードを書くのは、もう少し命令フォーマットを知ってからにしよう。
えっと、今回は話しが長くなるから今回はここでおしまい。多分今日中に続きを書くよ。
おやすみなさい・・・zzzzzzzzzzzzzzzzzzzzz
別窓 | バイナリ | コメント:0 | トラックバック:0 | ∧top | under∨
<<バイナリをつつく4−電波ソムリエ0 | 無差別に技術をついばむ鳥 | バイナリをつつく2-CPUの解剖>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |