D. FASM INTERNAL
Why (not to) use FASM or some other assembler ?
http://board.flatassembler.net/topic.php?t=16215 "FASM vs. NASM vs. MASM" 2014-Jan
http://board.flatassembler.net/topic.php?t=10960 "So, why FASM?" 2009-Dec
http://board.flatassembler.net/topic.php?t=10943 "Anyone of you tried out YASM ?" 2009-Dec
http://board.flatassembler.net/topic.php?t=9686 ""Virtual" ... beautiful directive !"
http://board.flatassembler.net/topic.php?t=9196 "Which Assembler is better?"
How did the FASM project start ?
FASM started on
ASM32, Tomasz's previous assembler (32-bit DOS, non-public). ASM32 had started on
TASM - using the
IDEAL mode.
http://board.flatassembler.net/topic.php?t=13794 (in DOS) 2011-Dec-29 "HDOS" - About HDOS and early FASM history, with some old files released
http://board.flatassembler.net/topic.php?t=4919 (in DOS) 2006-Mar-08 "Some game with insight into origins of flat assembler"
Help with FASM porting / understanding the source
http://board.flatassembler.net/topic.php?t=3883
Where is the disassembler ?
There is no "official" one for FASM. You can use
NDISASM (inside every NASM package) or
DISTORM (semi-official disassembler of YASM) or OBJCONV (smart). OBJCONV is done in
C++, the other 2 are written in
C 
Or BEYE / BIEW (can save disassembly if you try hard enough).
http://board.flatassembler.net/topic.php?t=15510 "Disassembler?"
http://board.flatassembler.net/topic.php?t=14817 "Extended Length Disassembler Engine" 2012-Dec
http://board.flatassembler.net/topic.php?t=11132 "quick decoder v1.02 by CandyMan" 2010-Mar (only DOS32 and Win32 binaries, closed source)
http://board.flatassembler.net/topic.php?t=10874 "Challenge: code a disasembler <1 day & <512 Byte's" 2010-Feb (Toy < 512 Byte's disassembler and also a 256 Byte's self-disassembler)
http://board.flatassembler.net/topic.php?t=10345 "The importance of a disassembler by hopcode (output source)" 2009-Jun (open source project, early)
http://board.flatassembler.net/topic.php?t=10329 "FASM Disassembler" 2009-Jun
http://board.flatassembler.net/topic.php?t=5248 "[IDEA] fdasm - FASM decompiler" 2006-May
NDISASM (from NASM)
http://nasm.us
Lack:
CMP EAX, BYTE 0x02
DISTORM (semi-official disassembler of YASM)
http://www.ragestorm.net/distorm/ (was BSD, now only GPL)
Lack:
MOV GS:[EAX],0x0
BEYE / BIEW can save its disassembly output
http://board.flatassembler.net/topic.php?t=4715
Agner Fog's OBJCONV:
http://board.flatassembler.net/topic.php?t=10291 2009-Jun
http://www.agner.org/optimize/#objconv
Directive "comment" or C-style /* blah */ comments ?
There is a substantial need for such a thing in the community and this has been requested many (at least 19 !!!) times since this forum was launched in 2003. However
Tomasz doesn't want such a feature so it will most likely never be supported in the official versions of FASM.
http://board.flatassembler.net/topic.php?t=15630 "multi-line comments in FASM" 2013-Jul
http://board.flatassembler.net/topic.php?t=13186 "multi-comment function in FASM." 2011-Jul
http://board.flatassembler.net/topic.php?t=11343 "Block comments (infinity+n)th attempt" 2010-Mar (by DOS386
with POLL)
http://board.flatassembler.net/topic.php?t=11341 "Wink 6.91 (underlined, bold and italic)" 2010-Mar (famous IDE hacks by
ouadji)
http://board.flatassembler.net/topic.php?t=11161 "suggestion /*Comments*/ (final rev.8 - over for me)" 2010-Feb (famous "PREPROCE.INC" hacks by
ouadji)
http://board.flatassembler.net/topic.php?t=9911 "Commenting out garbage: /* blah */ and skip blah endskip" 2009-Mar (by DOS386)
http://board.flatassembler.net/topic.php?t=9305 "Comment a block of lines in FASM?" in
Main
http://board.flatassembler.net/topic.php?t=8826 "COMMENT directive?" in
Main
http://board.flatassembler.net/topic.php?t=8419 "Looking forward fasm 1.67.27 released" in
Main (posts in)
http://board.flatassembler.net/topic.php?t=7481 " Comments in FASM." 2007-08-09
http://board.flatassembler.net/topic.php?t=7115 " Multiline /* ... */ comments in FASM." 2007-05-27 by
MHajduk in
Compiler Internals
http://board.flatassembler.net/topic.php?t=5871
http://board.flatassembler.net/topic.php?t=5538
http://board.flatassembler.net/topic.php?t=4340
http://board.flatassembler.net/topic.php?t=3483
http://board.flatassembler.net/topic.php?t=2707 "Add block-comments into Fasm?" 2004-12-07 with
POLL
http://board.flatassembler.net/topic.php?t=2237 "comment feature?" 2004-09-12
http://board.flatassembler.net/topic.php?t=839
http://board.flatassembler.net/topic.php?t=582 "Improving comments" 2003-Nov (almost 10 years ago)
Tomasz's preferred answer:
http://board.flatassembler.net/topic.php?p=112215#112215 2010-Mar
Does FASM have a "-d" switch ?
The "-d" switch (known from many other HLL and ASM compilers) defines a symbol using the commandline, it has same effect as the "define" directive. And this is probably the most controversial design decision in FASM. Originally it was NOT there, then it got added in 1.67.24 (after Tomasz got pressured), but in 1.67.35 it got removed (after Tomasz got pressured and accused of breaking principles), so the history file of 1.68 is comparing with 1.66 only (1.67.xx was a "development line") and "-d" is not ever mentioned. But in 1.71.31 got got re-added, with the chief arguments that FASM should promote, but not enforce self-sufficient sources, and that the "include" directive (had been always in) does "break" the holy SSSO principle more than "-d". So YES, FASM does have "-d" switch now, but still self-sufficient sources are preferable.
http://board.flatassembler.net/topic.php?t=17584 "FASM define macro from commmand line - "-d" switch" 2015-Jan
http://board.flatassembler.net/topic.php?t=10763 2009-Oct
http://board.flatassembler.net/topic.php?t=9948 "FA - command line extension for fasm" 2009-Mar
http://board.flatassembler.net/topic.php?t=9770 "flat assembler 1.67.3x" 2009-Feb to 2009-Mar (removing "-d")
http://board.flatassembler.net/topic.php?t=9634 2008-Dec
http://board.flatassembler.net/topic.php?t=7902 "flat assembler 1.67.24" 2007-Dec
Trouble with FASM's expression evaluator: 63 or 64 or 65 bits ?
For years FASM's expression evaluator had a resolution of 64 bits, although it probably should be 65 bits. TASM had 33 bits for up to 32 bits code. With version 1.69.41 from 2012-03-01 it got upgraded to 65 bits.
http://board.flatassembler.net/topic.php?t=14048 "flat assembler 1.69.41"
http://board.flatassembler.net/topic.php?t=13815 "db 0. A bug or not a bug?"
http://board.flatassembler.net/topic.php?t=13578 "Bug ? (value out of range)"
http://board.flatassembler.net/topic.php?t=11876 ""db (-1) shr 1" results into "value out of ra"" scroll down:
Tomasz explains TASM and FASM expression evaluator backgrounds (now obsolete)