第14回 da.exe Ver.0.0.191.0
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 はありませんでした)
死んでお詫びするしか