バイナリをつつく3ー電波を理解する2008-05-30 Fri 01:02
前回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 |
この記事のコメント |
コメントの投稿 |
||
|
||
管理者だけに閲覧 | ||
|
この記事のトラックバック |
| 無差別に技術をついばむ鳥 |
|