[...]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:
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?!?!
<edit> ooops.. you already got tons of replies, sorry :grin: </edit>
Maverick,
do you always reply without reading the entire thread? :tongue:
do you always reply without reading the entire thread? :tongue:
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.
..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.
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
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
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.
I don't use Fasm, but I was just wondering why so many passes were done/needed.
// CyberHeg
// CyberHeg
downloaded the latest 1.40b and still compiles in 40 passes.
But since is so fast I really dont care :grin:
But since is so fast I really dont care :grin:
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.