[...]and it stops newbie hakx0rz from taking my data.


That are these guys who write Game Trainers for RTS games (in VB & Delphi) because they are to lame to beat them without cheating, right? :rolleyes:
Posted on 2002-07-18 00:59:39 by bazik

Anyone tried to compile FASM from the source?
I just did it for fun and noticed that the file size grows by about 50%... but only of FASM itself, not the compiled executables?!?!
It's because FASM was then packed with UPX. ;)

<edit> ooops.. you already got tons of replies, sorry :grin: </edit>
Posted on 2002-07-18 02:20:14 by Maverick
Maverick,
do you always reply without reading the entire thread? :tongue:
Posted on 2002-07-18 02:27:47 by bazik
No, very rarely, and this was one of those times. ;)

..by the way, the reason why it's taking first 0.5 seconds and then 0.3 seconds is not much due to the EXE being packed, but mostly because the 2nd (and 3rd, etc..) time the source and stuff are in the Windows disk cache, thus making things faster.
Posted on 2002-07-18 03:31:45 by Maverick
Ok this is a old thread but I'd thought I'd ask anyway instead of writing a new one.

On the initial post it says that there are 39 passes of the code in the file to be assembled. I'd like to know why that many? I think Tasm on normal basis does 2 passes of a file. I guess with speeds of computers it might be easier to do more passes to more easily "link references of positions and statements pointing to them" then saving all "state information" of a single pass.
From my point of view I imagine this is done to more easily write a syntax parser, am I right?

// CyberHeg
Posted on 2002-09-16 05:18:17 by CyberHeg
I don't know if this applies to bazik's source, but I had found a "too many passes" bug time ago, and Privalov fixed it.. so check the latest FAsm in case you're having the same problem.
Posted on 2002-09-16 07:42:45 by Maverick
I don't use Fasm, but I was just wondering why so many passes were done/needed.

// CyberHeg
Posted on 2002-09-17 01:44:29 by CyberHeg
downloaded the latest 1.40b and still compiles in 40 passes.

But since is so fast I really dont care :grin:
Posted on 2002-09-17 09:59:26 by dxantos
So many passes are needed because there is a huge amount of conditional jumps in the fasm's source. At the first pass all the conditional jumps are generated in the shortest form (7xh + relative byte), but in the second pass assembler may realize that some of them are "out of range" and needs to change the instruction opcode into longer form. Thus addresses change again and one more pass is needed, and then it can realize that even more jumps became "out of range" (or that some can be changed back into short form) and more and more passes will be needed until everything stabilizes. This applies also to some of the other instructions, not only conditional jumps - fasm will also generate the smallest possible code.
Posted on 2002-09-18 03:02:46 by Tomasz Grysztar