Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
FASM
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Design == FASM does not support as many [[high-level assembler|high-level]] statements as [[MASM]] or [[TASM]].<ref name="WhichAsm">{{cite web |author=Hyde |first=Randall |title=Which Assembler is the Best? |url=http://mmcs.sfedu.ru/~ulysses/Edu/MP/WhichAsm.html |archive-url=https://archive.today/20131116172530/http://mmcs.sfedu.ru/~ulysses/Edu/MP/WhichAsm.html |url-status=dead |archive-date=November 16, 2013 |accessdate=2008-05-18 }}</ref> It provides syntax features and macros, which make it possible to customize or create missing statements.<ref name="Interview"/> Its memory-addressing syntax is similar to TASM's ideal mode and [[Netwide Assembler|NASM]]. Brackets are used to denote memory operands as in both assemblers, but their size is placed outside the brackets, like in NASM.<ref name="Design"/> FASM is a multi-pass assembler. It makes extensive code-size optimization and allows unconstrained forward referencing.<ref name="WhichAsm"/><ref name="Design">{{cite web |author=Grysztar |first=Tomasz |title=Flat Assembler Design Principles |url=http://flatassembler.net/docs.php?article=design |accessdate=2008-05-12}}</ref> An unusual FASM construct is defining procedures only if they are used somewhere in the code, something that in most languages is done per-object by the [[linker (computing)|linker]]. FASM is based on the "same source, same output" principle: the contents of the resulting file are not affected by the command line.<ref name="Design"/> Such an approach saves FASM sources from compiling problems often present in many assembly projects. On the other hand, it makes it harder to maintain a project that consists of multiple separately compiled source files or mixed-language projects. However, there exists a Win32 [[wrapper library|wrapper]] called FA, which mitigates this problem.<ref name="FA">{{cite web |author=Grysztar |first=Tomasz |title=FA β command line extension for fasm |url=http://board.flatassembler.net/topic.php?t=9948 |accessdate=2012-05-11}}</ref> FASM projects can be built from one source file directly into an executable file without a linking stage.<ref name="WhichAsm" />
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)