Author: Gerd Isenberg
Date: 12:23:30 12/12/05
Go up one level in this thread
On December 12, 2005 at 12:18:50, Chrilly Donninger wrote: >>> >>>.text:0040D156 call sub_40D1B0 >>>.text:0040D15B mov esi, eax >>>.text:0040D15D lea eax, [esp+278h+var_238] >>>.text:0040D161 push eax >>>.text:0040D162 push edi >>>.text:0040D163 neg esi >>>.text:0040D165 call sub_40A780 >>>.text:0040D16A add esp, 18h >>>.text:0040D16D cmp esi, [esp+268h+var_25C] >>>.text:0040D171 jle short loc_40D183 >>>.text:0040D173 cmp esi, ebx >>>.text:0040D175 mov [esp+268h+var_25C], esi >>>.text:0040D179 jle short loc_40D183 >>>.text:0040D17B cmp esi, [ebp+arg_4] >>>.text:0040D17E mov [ebp+arg_0], esi >>>.text:0040D181 jge short loc_40D13A >>> >>> >>>Chrilly >> >>How can you tell? And how on earth did you find it? >> >>anthony > >There is a nice tool, called IDA-Pro. (IDA=Interactive DissAssembler). >IDA produces the code above. And then one needs some (assembler) experience to >read this. >E.g. [ebp+arg_0] means the first argument to the function. And if one follows >somewhat the logic, one sees that this is alpha, [ebp+arg_4] is argument 1 or >beta. >In Pseudo-Code the code above reads as: >val=-Quiescence(...); >UndoMove >if(val>bestscore) { bestscore=val; } >if(val>alpha) { alpha=val; } >if(val>beta) { return val; } // Actually goto return-sequence. > Hi Chrilly, a little nickpicking on your C-code ;-) I translate the conditional part that way: if (val > bestscore) { bestscore = val; if(val > alpha) { alpha = val; if(val >= beta) return val; // Actually goto return-sequence. } } i personally prefere this one, to save the assigment to alpha most of the time for nullwindow cuts: if (val > bestscore) { bestscore = val; if(val >= beta) return val; // Actually goto return-sequence. if(val > alpha) alpha = val; } May be Vas may archive another 0.1 ELO point with this improvement. Cheers, Gerd >All programms are open-source. Some opensource is only more difficult to read >than other. > >Dissassembling is no efficient way to improve one owns code. It does not help, >if one knows, that programm X has a nice trick. The trick must fit in one owns >programm/architecture. Usually it does not. E.g the well documented Fruit >History-Pruning did not work at all in Hydra. Dissassembling is just an old >hackers fun. > >Chrilly
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.