忍者ブログ

どっかのゆとりのチラシの裏

plasma_effectのメモ帳的ブログのようなsomething

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

.NETのILを触ってみた

.NET Frameworkの実行ファイルは拡張子がexeであるが、コマンドプロンプトのildasmコマンドで拡張子ilのアセンブリファイルが生成される。これをILと言うっぽいのだが、Dt言語に向けてちょっと触ってみたわけだ。作ってみたコードを紹介するが、その前にまずDt言語のコンパイルについて今思い浮かんでいる流れをここに書いておく。
すなわち「Dt言語のコードをコンパイラに渡す→コードをパース、ILコード生成→ILコードをアセンブル」の流れだ。
分割コンパイルはどうすんだとかプリプロセッサはどうしたとかの声は聞こえないふりをしておく。そんなものプロトタイプが完成してから考えればいい。
で、今回書いたコードがこれだ。

01:.assembly test{}
02:
03:.method public static int32 test_mul(int32,int32) cil managed
04:{
05:    .locals init (int32 V_0,int32 V_1)
06:    ldarg.0
07:    ldarg.1
08:    mul
09:    ret
10:}
11:
12:.method public static void Main(string[] args)cil managed
13:{
14:    .entrypoint
15:    ldstr "一つ目を入力"
16:    call void [mscorlib] System.Console::WriteLine(string)
17:    call string [mscorlib] System.Console::ReadLine()
18:    call int32 [mscorlib] System.Int32::Parse(string)
19:    ldstr "二つ目を入力"
20:    call void [mscorlib] System.Console::WriteLine(string)
21:    call string [mscorlib] System.Console::ReadLine()
22:    call int32 [mscorlib] System.Int32::Parse(string)
23:    call int32 test_mul(int32,int32)
24:    call void [mscorlib] System.Console::WriteLine(int32)
25:    ret
26:}

解説しようと思ったが自分でもよくわかってないのでやめた。
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

フリーエリア

最新CM

[02/12 kariya_mitsuru]
[10/14 どっかの京大生o]
[10/04 どっかのZ会生y]
[07/31 どっかのZ会生y]
[07/31 GNR]

プロフィール

HN:
plasma_effect
性別:
非公開

バーコード

ブログ内検索

最古記事

(06/08)
(06/18)
(06/21)

P R