mirror of https://github.com/icsharpcode/ILSpy.git
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							132 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							132 lines
						
					
					
						
							2.5 KiB
						
					
					
				.assembly extern mscorlib | 
						|
{ | 
						|
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) | 
						|
  .ver 4:0:0:0 | 
						|
} | 
						|
.assembly StackTests | 
						|
{ | 
						|
  .hash algorithm 0x00008004 | 
						|
  .ver 1:0:4059:39717 | 
						|
} | 
						|
.module StackTests.exe | 
						|
.imagebase 0x00400000 | 
						|
.file alignment 0x00000200 | 
						|
.stackreserve 0x00100000 | 
						|
.subsystem 0x0003       // WINDOWS_CUI | 
						|
.corflags 0x00000003    //  ILONLY 32BITREQUIRED | 
						|
 | 
						|
.class private auto ansi beforefieldinit StackTests.Program extends [mscorlib]System.Object | 
						|
{ | 
						|
  .method public hidebysig static void  Main(string[] args) cil managed | 
						|
  { | 
						|
    .entrypoint | 
						|
    .maxstack  8 | 
						|
	 | 
						|
	ldc.i4.0 | 
						|
	call string StackTests.Program::Test1(bool cond) | 
						|
	call void [mscorlib]System.Console::WriteLine(string) // false | 
						|
	 | 
						|
	ldc.i4.1 | 
						|
	call string StackTests.Program::Test1(bool cond) | 
						|
	call void [mscorlib]System.Console::WriteLine(string) // true | 
						|
	 | 
						|
	ldc.i4.0 | 
						|
	ldc.i4.0 | 
						|
	ldc.i4.0 | 
						|
	call int32 StackTests.Program::Test2(int32 switch1, int32 br1, int32 br2) | 
						|
	call void [mscorlib]System.Console::WriteLine(int32)  // 11 | 
						|
	 | 
						|
	ldc.i4.0 | 
						|
	ldc.i4.1 | 
						|
	ldc.i4.0 | 
						|
	call int32 StackTests.Program::Test2(int32 switch1, int32 br1, int32 br2) | 
						|
	call void [mscorlib]System.Console::WriteLine(int32)  // 21 | 
						|
	 | 
						|
	ldc.i4.1 | 
						|
	ldc.i4.1 | 
						|
	ldc.i4.1 | 
						|
	call int32 StackTests.Program::Test2(int32 switch1, int32 br1, int32 br2) | 
						|
	call void [mscorlib]System.Console::WriteLine(int32)  // 32 | 
						|
	 | 
						|
	ldc.i4.2 | 
						|
	ldc.i4.1 | 
						|
	ldc.i4.0 | 
						|
	call int32 StackTests.Program::Test2(int32 switch1, int32 br1, int32 br2) | 
						|
	call void [mscorlib]System.Console::WriteLine(int32)  // 23 | 
						|
	 | 
						|
	ret | 
						|
  } | 
						|
 | 
						|
  .method public hidebysig static string Test1(bool cond) cil managed | 
						|
  { | 
						|
	ldarg.0 | 
						|
	brtrue TRUE | 
						|
	 | 
						|
	FALSE: | 
						|
	ldstr "false" | 
						|
	br EXIT | 
						|
		 | 
						|
	TRUE: | 
						|
	ldstr "true" | 
						|
		 | 
						|
	EXIT: | 
						|
	ret | 
						|
  } | 
						|
 | 
						|
  .method public hidebysig static int32 Test2(int32 switch1, int32 br1, int32 br2) cil managed | 
						|
  { | 
						|
    ldarg.0 | 
						|
    switch (ENTRY1, ENTRY2, ENTRY3) | 
						|
	ldc.i4.0 | 
						|
    ret | 
						|
 | 
						|
    ENTRY1: | 
						|
	ldc.i4.1 | 
						|
    br BRANCH1 | 
						|
 | 
						|
    ENTRY2: | 
						|
	ldc.i4.2 | 
						|
    br BRANCH1 | 
						|
 | 
						|
    ENTRY3: | 
						|
	ldc.i4.3 | 
						|
    br BRANCH2 | 
						|
	 | 
						|
	BRANCH1: | 
						|
	ldarg.1 | 
						|
	brtrue BRANCH2 | 
						|
	 | 
						|
	EXIT1: | 
						|
	ldc.i4 10 | 
						|
	add | 
						|
	ret | 
						|
	 | 
						|
	BRANCH2: | 
						|
	ldarg.2 | 
						|
	brtrue.s EXIT3 | 
						|
	 | 
						|
	EXIT2: | 
						|
	ldc.i4 20 | 
						|
	add | 
						|
	ret | 
						|
	 | 
						|
	EXIT3: | 
						|
	ldc.i4 30 | 
						|
	add | 
						|
	ret | 
						|
  } | 
						|
 | 
						|
  .method public hidebysig specialname rtspecialname  | 
						|
          instance void  .ctor() cil managed | 
						|
  { | 
						|
    // Code size       7 (0x7) | 
						|
    .maxstack  8 | 
						|
    IL_0000:  ldarg.0 | 
						|
    IL_0001:  call       instance void [mscorlib]System.Object::.ctor() | 
						|
    IL_0006:  ret | 
						|
  } // end of method Program::.ctor | 
						|
 | 
						|
} // end of class StackTests.Program | 
						|
 | 
						|
 | 
						|
// =============================================================
 | 
						|
 |