FASM 1.66 Released :)

Developed or developing a new product in PureBasic? Tell the world about it.
Polo
Addict
Addict
Posts: 2422
Joined: Tue May 06, 2003 5:07 pm
Location: UK

FASM 1.66 Released :)

Post by Polo »

Just to tell everybody that the last version of Fasm has been released, it's time to include it in Purebasic :)
I'm not very sure of what it changes, but anyway ;)
va!n
Addict
Addict
Posts: 1104
Joined: Wed Apr 20, 2005 12:48 pm

Post by va!n »

i dont think that it will bring any news to us (PB users)... btw, here are the changes:

Code: Select all

version 1.66 (May 7, 2006)

[+] Added DEFINE directive to preprocessor, which defines symbolic constants, the same kind
    as EQU directive, however there's an important difference that DEFINE doesn't process
    symbolic constants in the value before assigning it. For example:

        a equ 1
        a equ a+a

        define b 1
        define b b+b

    defines the "a" constant with value "1+1", but the "b" is defined with value "b+b".
    This directive may be useful in some advanced macroinstructions.

[-] Moved part of the conditional expression processing into parser,
    for slightly better performance and lesser memory usage by assembler.
    The logical values defined with "eq", "eqtype" and "in" operators are now evaluated
    by the parser and if they are enough to determine the condition, the whole
    block is processed accordingly. Thus this block:

        if eax eq EAX | 0/0
                nop
        end if

    is parsed into just NOP instruction, since parser is able to determine that the
    condition is true, even though one of the logical values makes no sense -
    but since this is none of the "eq", "eqtype" and "in" expressions, the parser doesn't
    investigate.

[-] Also the assembler is now calculating only as many logical values as it needs to 
    determine the condition. So this block:

        if defined alpha & alpha

        end if

    will not cause error when "alpha" is not defined, as it would with previous versions.
    This is because after checking that "defined alpha" is false condition it doesn't need
    to know the second logical value to determine the value of conjunction.

[+] Added "short" keyword for specifying jump type, the "jmp byte" form is now
    obsolete and no longer correct - use "jmp short" instead.

[-] The size operator applied to jump no longer applies to the size of relative
    displacement - now it applies to the size of target address.

[-] The RET instruction with 0 parameter is now assembled into short form, unless you
    force using the 16-bit immediate with "word" operator.

[+] Added missing extended registers for the 32-bit addressing in long mode.

[+] Added "linkremove" and "linkinfo" section flags for MS COFF output.

[+] Added support for GOT offsets in ELF object formatter, which can be useful
    when making position-independent code for shared libraries. For any label
    you can get its offset relative to GOT by preceding it with "rva" operator
    (the same keyword as for PE format is used, to avoid adding a new one, while
    this one has very similar meaning).

[-] Changed ELF executable to use "segment" directive in place of "section",
    to make the distinction between the run-time segments and linkable sections.
    If you had a "section" directive in your ELF executables and they no longer assemble,
    replace it with "segment".

[-] The PE formatter now always creates the fixups directory when told to - even when
    there are no fixups to be put there (in such case it creates the directory with
    one empty block).

[-] Some of the internal structures have been extended to provide the possibility of making
    extensive symbol dumps.

[-] Corrected FIX directive to keep the value intact before assigning it to the
    prioritized constant.

[+] The ` operator now works with any kind of symbol; when used with quoted string it
    simply does nothing. Thus the sequence of ` operators applied to one symbol work the
    same as if there was just one. In similar manner, the sequence of # operators now
    works as if it was a single one - using such a sequence instead of escaping, which was
    kept for some backward compatibility, is now deprecated.

[-] Corrected order of identifying assembler directives ("if db eq db" was
    incorrectly interpreted as data definition).

[-] Many other small bugs fixed.
va!n aka Thorsten

Intel i7-980X Extreme Edition, 12 GB DDR3, Radeon 5870 2GB, Windows7 x64,
josku_x
Addict
Addict
Posts: 997
Joined: Sat Sep 24, 2005 2:08 pm

Post by josku_x »

I like FASM but I I like TASM the most. Is there any possibility to include another ASM compiler in PB and use it 'inline' or by adding ! in front of each command? Would be great if I can merge PB with TASM :o
User avatar
djes
Addict
Addict
Posts: 1806
Joined: Sat Feb 19, 2005 2:46 pm
Location: Pas-de-Calais, France

Post by djes »

I don't think so, as syntax of these two assemblers is so different. That would need a big rewrite of pb "basic to asm" interpreter.
josku_x
Addict
Addict
Posts: 997
Joined: Sat Sep 24, 2005 2:08 pm

Post by josku_x »

I know that, but with some hard work I can achieve evrything. I still won't do much even if I can merge TASM with PB as I need the PB sources so PB can interfere with TASM.
Fred
Administrator
Administrator
Posts: 18237
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Post by Fred »

TASM isn't free, it's not an option.
josku_x
Addict
Addict
Posts: 997
Joined: Sat Sep 24, 2005 2:08 pm

Post by josku_x »

I know, but that's why I like TASM, it's easy to use and it isn't even expensive.
thefool
Always Here
Always Here
Posts: 5875
Joined: Sat Aug 30, 2003 5:58 pm
Location: Denmark

Post by thefool »

IMHO: Flat Assembler is cheaper, and just as easy :p

On top of that, FASM is more updated afaik. Fasm supports 64bit natively (Fred :D) and its available for both windows and linux.

so; Tasm is not an option :P
josku_x
Addict
Addict
Posts: 997
Joined: Sat Sep 24, 2005 2:08 pm

Post by josku_x »

FASM may be great, but programming 32bit Windows applications using TASM is a lot easier and I'm not saying TASM should be in the place of FASM, so why do you tell me 'TASM is not an option' ?? Option for what?
thefool
Always Here
Always Here
Posts: 5875
Joined: Sat Aug 30, 2003 5:58 pm
Location: Denmark

Post by thefool »

An option. Just that.

fishface!!! :P
Polo
Addict
Addict
Posts: 2422
Joined: Tue May 06, 2003 5:07 pm
Location: UK

Post by Polo »

Sorry, but Fasm is perfect, the guy who did is a very nice guy too !
I like the way it is :)
Thalius
Enthusiast
Enthusiast
Posts: 711
Joined: Thu Jul 17, 2003 4:15 pm
Contact:

Post by Thalius »

Write your own Syntax converter for TASM =P ...

pbcompiler /commented ftw! :D

Thalius
"In 3D there is never enough Time to do Things right,
but there's always enough Time to make them *look* right."
"psssst! i steal signatures... don't tell anyone! ;)"
josku_x
Addict
Addict
Posts: 997
Joined: Sat Sep 24, 2005 2:08 pm

Post by josku_x »

OK THanks for the info. I maybe try to do a PB-Source to TASM converter sometimes, but right now I don't have the time.
ftw!
ftw? should that mean Fuck The Way? :?
Dare2
Moderator
Moderator
Posts: 3321
Joined: Sat Dec 27, 2003 3:55 am
Location: Great Southern Land

Post by Dare2 »

:?

Usually "For the win.", less frequently "'Forget' the world", here it probably means "Fasm's The Winner!" :)
@}--`--,-- A rose by any other name ..
Post Reply