機械語初心者がアセンブラを作ってみる

機械語初心者がアセンブラを作ってみるだけのブログです。ひつまぶしひつまぶし

第8回 やっとここまでこきつけた

やっとキタ━━━━(゚∀゚)━━━━!!

 

アセンブリのニモニックを機械語に変換し

オブジェクトファイルに書き込むための

基幹部分が完成しました!

 

といっても

今は mov reg32, reg32 の部分だけ。

識別できるオペランドレジスタだけ。即値すら未実装です。

しかも定義されてるレジスタはeax~edxの4つだけ。

 

だけどこれからどんどん増やしていきます。

 

定数を目一杯定義した甲斐あって

ニモニック定義の追加がちょっと簡単になってます。

 

空行とコメントにも対応。

 

COFFフォーマットはまだです。

今は未だtextセクションの命令部分だけ。

 

例えば

次のアセンブリがあったとします。

 

; テストアセンブリ

 

mov eax,ecx

 

mov ebx,ecx; コメント

 

これをアセンブル(?)します。

 

C:\Users\***\Documents\mb\src>da

[ 3]  mov eax,ecx

[ 5]  mov ebx,ecx

 

        エラー: 0  警告:

 

(ファイル名の指定、警告は未実装。上2行はテストのための出力)

そしたらtest.objが生成されるので、

これをバイナリエディタで開いたら

 

8B C8 8B CB

 

やっとここまでできたよ

やったねたえちゃん!

 

とりま

死なない程度にばんがります。

 

その前に飽きそう