Hi! I haven't finished yet :) Now real fun begins :) What does this code from HTODW.ASM? .while ecx > 0 mul ebx dec ecx .endw Right! It multiply eax by ebx (16) ecx times In other words eax * 16 * ecx In other words (ecx*16) * eax And there is some words to say, but I can recall the time when I was 9 year old and used to go to school :) And there some words were said about power and logarithms. So I would replace this: .while ecx > 0 mul ebx dec ecx .endw which takes ecx*11+3 clocks whith this: shl ecx,2 shl eax,cl which takes just 2 clocks whith any value of ecx. So what we have so far: mov esi, eax xor edx,edx .while esi != 0 mov al, cmp al,'A' jb figure sub al,'a'-10 adc dl,0 shl dl,5 ;if cf set we get it bl 20h else - 0 add al,dl jmp vodka figure: sub al,'0' vodka: and eax,0Fh mov ecx, esi dec ecx shl ecx,2 shl eax,cl It used to be part of HTODW.ASM :)) And it's hard to belive :) And when we clock it at the end - one can be shocked... ..to be continued on HTODW.ASM The Svin.
Posted on 2001-01-21 15:03:00 by The Svin