319 lines
4.7 KiB
Plaintext
319 lines
4.7 KiB
Plaintext
|
.assembly '8q' { }
|
||
|
.assembly extern 'mscorlib' {
|
||
|
.ver 1:0:5000:0
|
||
|
.publickeytoken = ( b7 7a 5c 56 19 34 e0 89 )
|
||
|
}
|
||
|
.class 'EightQueens'
|
||
|
extends [mscorlib]System.Object
|
||
|
{
|
||
|
.field static private bool[] 'up'
|
||
|
.field static private bool[] 'down'
|
||
|
.field static private bool[] 'rows'
|
||
|
.method hidebysig static public void 'Main'() {
|
||
|
.entrypoint
|
||
|
.locals init ([0]int32 't0')
|
||
|
ldc.i4 0
|
||
|
stloc 0 // i
|
||
|
br $4
|
||
|
$1:
|
||
|
ldsfld bool[] 'EightQueens'::'up'
|
||
|
ldloc 0 // i
|
||
|
ldsfld bool[] 'EightQueens'::'down'
|
||
|
ldloc 0 // i
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
$2:
|
||
|
ldloc 0 // i
|
||
|
ldc.i4.1
|
||
|
add
|
||
|
.locals init ([1]int32 't1')
|
||
|
stloc 1 // t1
|
||
|
ldloc 1 // t1
|
||
|
stloc 0 // i
|
||
|
$4:
|
||
|
ldloc 0 // i
|
||
|
ldsfld bool[] 'EightQueens'::'up'
|
||
|
ldlen
|
||
|
conv.i4
|
||
|
blt $1
|
||
|
$3:
|
||
|
.locals init ([2]int32 't2')
|
||
|
ldc.i4 0
|
||
|
stloc 2 // i
|
||
|
br $8
|
||
|
$5:
|
||
|
ldsfld bool[] 'EightQueens'::'rows'
|
||
|
ldloc 2 // i
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
$6:
|
||
|
ldloc 2 // i
|
||
|
ldc.i4.1
|
||
|
add
|
||
|
.locals init ([3]int32 't3')
|
||
|
stloc 3 // t3
|
||
|
ldloc 3 // t3
|
||
|
stloc 2 // i
|
||
|
$8:
|
||
|
ldloc 2 // i
|
||
|
ldsfld bool[] 'EightQueens'::'rows'
|
||
|
ldlen
|
||
|
conv.i4
|
||
|
blt $5
|
||
|
$7:
|
||
|
ldc.i4 0
|
||
|
ldc.i4 8
|
||
|
newarr int32
|
||
|
call void 'EightQueens'::'queens'(int32,int32[])
|
||
|
ret
|
||
|
.maxstack 5
|
||
|
} // end of method EightQueens.Main
|
||
|
.method hidebysig static private void 'queens'(int32 'c',int32[] 'x') {
|
||
|
.locals init ([0]int32 't0')
|
||
|
ldc.i4 0
|
||
|
stloc 0 // r
|
||
|
br $4
|
||
|
$1:
|
||
|
ldsfld bool[] 'EightQueens'::'rows'
|
||
|
ldloc 0 // r
|
||
|
ldelem.i1
|
||
|
brfalse $5
|
||
|
ldsfld bool[] 'EightQueens'::'up'
|
||
|
ldloc 0 // r
|
||
|
ldarg 0 // c
|
||
|
sub
|
||
|
ldc.i4 7
|
||
|
add
|
||
|
ldelem.i1
|
||
|
brfalse $5
|
||
|
ldsfld bool[] 'EightQueens'::'down'
|
||
|
ldloc 0 // r
|
||
|
ldarg 0 // c
|
||
|
add
|
||
|
ldelem.i1
|
||
|
brfalse $5
|
||
|
ldsfld bool[] 'EightQueens'::'rows'
|
||
|
ldloc 0 // r
|
||
|
ldsfld bool[] 'EightQueens'::'up'
|
||
|
ldloc 0 // r
|
||
|
ldarg 0 // c
|
||
|
sub
|
||
|
ldc.i4 7
|
||
|
add
|
||
|
ldsfld bool[] 'EightQueens'::'down'
|
||
|
ldloc 0 // r
|
||
|
ldarg 0 // c
|
||
|
add
|
||
|
ldc.i4 0
|
||
|
stelem.i1
|
||
|
ldc.i4 0
|
||
|
stelem.i1
|
||
|
ldc.i4 0
|
||
|
stelem.i1
|
||
|
ldarg 1 // x
|
||
|
ldarg 0 // c
|
||
|
ldloc 0 // r
|
||
|
stelem.i4
|
||
|
ldarg 0 // c
|
||
|
ldc.i4 7
|
||
|
bne.un $7
|
||
|
ldarg 1 // x
|
||
|
call void 'EightQueens'::'print'(int32[])
|
||
|
br $8
|
||
|
$7:
|
||
|
ldarg 0 // c
|
||
|
ldc.i4 1
|
||
|
add
|
||
|
ldarg 1 // x
|
||
|
call void 'EightQueens'::'queens'(int32,int32[])
|
||
|
$8:
|
||
|
ldsfld bool[] 'EightQueens'::'rows'
|
||
|
ldloc 0 // r
|
||
|
ldsfld bool[] 'EightQueens'::'up'
|
||
|
ldloc 0 // r
|
||
|
ldarg 0 // c
|
||
|
sub
|
||
|
ldc.i4 7
|
||
|
add
|
||
|
ldsfld bool[] 'EightQueens'::'down'
|
||
|
ldloc 0 // r
|
||
|
ldarg 0 // c
|
||
|
add
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
$5:
|
||
|
$6:
|
||
|
$2:
|
||
|
ldloc 0 // r
|
||
|
ldc.i4.1
|
||
|
add
|
||
|
.locals init ([1]int32 't1')
|
||
|
stloc 1 // t1
|
||
|
ldloc 1 // t1
|
||
|
stloc 0 // r
|
||
|
$4:
|
||
|
ldloc 0 // r
|
||
|
ldsfld bool[] 'EightQueens'::'rows'
|
||
|
ldlen
|
||
|
conv.i4
|
||
|
blt $1
|
||
|
$3:
|
||
|
ret
|
||
|
.maxstack 7
|
||
|
} // end of method EightQueens.queens
|
||
|
.method hidebysig static private void 'print'(int32[] 'x') {
|
||
|
.locals init ([0]int32 't0')
|
||
|
.locals init ([1]int32 't1')
|
||
|
.locals init ([2]int32[] 't2')
|
||
|
ldarg 0 // x
|
||
|
stloc 2 // t2
|
||
|
ldc.i4.0
|
||
|
stloc 1 // t1
|
||
|
br $4
|
||
|
$1:
|
||
|
ldloc 2 // t2
|
||
|
ldloc 1 // t1
|
||
|
ldelem.i4
|
||
|
stloc 0 // c
|
||
|
ldstr "{0}"
|
||
|
ldloc 0 // c
|
||
|
ldc.i4 1
|
||
|
add
|
||
|
box int32
|
||
|
call void [mscorlib]System.Console::'Write'(string,object)
|
||
|
$2:
|
||
|
ldloc 1 // t1
|
||
|
ldc.i4.1
|
||
|
add
|
||
|
stloc 1 // t1
|
||
|
$4:
|
||
|
ldloc 1 // t1
|
||
|
ldloc 2 // t2
|
||
|
ldlen
|
||
|
conv.i4
|
||
|
blt $1
|
||
|
$3:
|
||
|
call void [mscorlib]System.Console::'WriteLine'()
|
||
|
ret
|
||
|
.maxstack 3
|
||
|
} // end of method EightQueens.print
|
||
|
.method hidebysig specialname rtspecialname public void .ctor() {
|
||
|
ldarg.0
|
||
|
call instance void [mscorlib]System.Object::.ctor()
|
||
|
ret
|
||
|
.maxstack 1
|
||
|
} // end of constructor EightQueens.EightQueens
|
||
|
.method hidebysig specialname rtspecialname static private void .cctor() {
|
||
|
ldc.i4 15
|
||
|
newarr bool
|
||
|
dup
|
||
|
ldc.i4 0
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 1
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 2
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 3
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 4
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 5
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 6
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 7
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 8
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 9
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 10
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 11
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 12
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 13
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 14
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
stsfld bool[] 'EightQueens'::'up'
|
||
|
ldsfld bool[] 'EightQueens'::'up'
|
||
|
callvirt instance object [mscorlib]System.Array::'Clone'()
|
||
|
castclass bool[]
|
||
|
stsfld bool[] 'EightQueens'::'down'
|
||
|
ldc.i4 8
|
||
|
newarr bool
|
||
|
dup
|
||
|
ldc.i4 0
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 1
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 2
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 3
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 4
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 5
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 6
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
dup
|
||
|
ldc.i4 7
|
||
|
ldc.i4 1
|
||
|
stelem.i1
|
||
|
stsfld bool[] 'EightQueens'::'rows'
|
||
|
ret
|
||
|
.maxstack 4
|
||
|
} // end of constructor EightQueens.EightQueens
|
||
|
} // end of class EightQueens
|