[Atelier Blue アトリエブルー]Homeプログラミング IL(CIL,MSIL)>定数のロード

定数のロード

今回は前回の経験を実際に生かす一歩目として、定数ロードについて詳しく学びましょう。

それぞれの型の定数ロード

それではILの実行スタックに定数をロードしてみましょう。

.assembly hina{}

.method public static void main(){
    .entrypoint
    .maxstack 1
    
    ldc.i4 123 //int32型の定数ロード
    call void [mscorlib]System.Console::WriteLine(int32)
    
    ldc.i8 123456 //int64型の定数ロード
    call void [mscorlib]System.Console::WriteLine(int64)
    
    ldc.r4 123.456 //float64型の定数ロード
    call void [mscorlib]System.Console::WriteLine(float32)
    
    ldc.r8 123456.789 //float64型の定数ロード
    call void [mscorlib]System.Console::WriteLine(float64)
    
    ret
}

今回の命令は「ldc.i8」「ldc.r4」「ldc.r8」です。説明ははしょりますのであしからず。

短縮形のロード命令

IL命令ではint32の特定の値に限って短縮形の命令が用意されています。バイトコードの量を減らしたい時に活用すると良いでしょう。

詳細は定数ロードの命令一覧にあります。


ページの一番上へ
前のページへ 一覧に戻る 次のページへ
初版2006-11-19
[Atelier Blue アトリエブルー]Homeプログラミング IL(CIL,MSIL)>定数のロード