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

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

第14回 da.exe Ver.0.0.191.0

f:id:kmynews:20130601155655p:plain

 

 

Visual Studio 2012に移行してみた。

 

これまではコンパイルもコマンドライン作業だったので

方向キーでコマンドを選ぶの大変だったんですけど

VSのおかけで

F5でコンパイルと実行が同時に出来るようになって‥‥ううっ

 

VS移行のためだけにビルド番号30ほど消費したっていうのは内緒

 

とりあえず

トークン分析のあたりをいじってました。

 

基礎的なところはあらかた終わったので

あとはこれに肉付けするだけ(`・ω・´)

 

アセンブリの機械語出力処理を書くまで秒読み。(汗

 

 

それはそうと

 

C言語のdumpbinは怖くてとてもできない的なことを言った気がするんですが

cl.exeで生成したオブジェクトファイルは

textセクションがほんとに必要最低限で

余計なコードもなかったので

 

cl.exeでも.objならdumpbin余裕じゃん

 

って話になったんだ。

わざわざml64.exeで書かなくても

Cコンパイラちゃんが作ったコードをdumpbinすれば余裕じゃん

って話になったんだ。

 

なんで

C言語

適当にコードを書いて

test64.objをdumpbinしたらあら不思議

 

main:

  0000000000000000: 48 83 EC 28        sub         rsp,28h

  0000000000000004: 48 8D 0D 00 00 00  lea         rcx,[$SG2871]

                    00

  000000000000000B: E8 00 00 00 00     call        printf

  0000000000000010: 33 C0              xor         eax,eax

  0000000000000012: 48 83 C4 28        add         rsp,28h

  0000000000000016: C3                 ret

 

( ゚д゚)

 

忘れてたああああああああああああああああああああああああああああ

 

(※この前載せたアセンブリにはスタックを元に戻す add はありませんでした)

 

死んでお詫びするしか