FASM: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
(+links, Category)
mNo edit summary
 
(6 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The flat assembler (FASM) is a fast and efficient self-assembling 80x86 assembler for DOS, Windows and Linux operating systems. Currently it supports all 8086-80486/Pentium instructions with MMX, SSE, SSE2, SSE3 and 3DNow! extensions and x86-64 (both AMD64 and EM64T) instructions, can produce output in binary, MZ, PE, COFF or ELF format. It includes the powerful but easy to use macroinstruction support and does multiple passes to optimize the instruction codes for size. The flat assembler is self-compilable and the full source code is included.
The flat assembler (FASM) is a fast and efficient self-assembling [[x86]] assembler for DOS, Windows and *nix (Linux, BSD, MacOS etc.) operating systems. Currently it supports all x86/x64 instructions with MMX, 3DNow!, SSE up to SSE4, AVX, AVX2 and XOP extensions, can produce output in binary, MZ, PE, COFF or ELF format. It includes a powerful but easy to use macro language and compiles in multiple passes to optimize the instruction codes for size. The flat assembler is self-compilable and the full source code is included.

There's a version called '''FASM-ARM''' that generates AArch32 and [[AArch64]] native instructions (on x86, so this is a cross-compiler) but uses the same macro infrastructure as FASM.

The next generation of FASM is called '''FASMG''', which uses even more sophisticated macro infrastructure, and also macros to describe the instructions to be generated. Therefore it can be used to generate literally anything (macro definitions are available for x86, AArch64, Z80, MOS 6502, [[WebAssembly]], Java and Dalvik bytecode etc.)


==See Also==
==See Also==
Line 7: Line 11:
*[[NASM]]
*[[NASM]]
===External Links===
===External Links===
*[http://www.flatassembler.net/ Official flat assembler website]
*[https://www.flatassembler.net/ Official flat assembler website]
*[https://arm.flatassembler.net/ FASM-ARM cross-assembler]
*[https://board.flatassembler.net/topic.php?t=19389 FASMG official resources]


[[Category: Assemblers]]
[[Category: Assemblers]]
[[de:Flat_Assembler]]

Latest revision as of 16:20, 10 December 2020

The flat assembler (FASM) is a fast and efficient self-assembling x86 assembler for DOS, Windows and *nix (Linux, BSD, MacOS etc.) operating systems. Currently it supports all x86/x64 instructions with MMX, 3DNow!, SSE up to SSE4, AVX, AVX2 and XOP extensions, can produce output in binary, MZ, PE, COFF or ELF format. It includes a powerful but easy to use macro language and compiles in multiple passes to optimize the instruction codes for size. The flat assembler is self-compilable and the full source code is included.

There's a version called FASM-ARM that generates AArch32 and AArch64 native instructions (on x86, so this is a cross-compiler) but uses the same macro infrastructure as FASM.

The next generation of FASM is called FASMG, which uses even more sophisticated macro infrastructure, and also macros to describe the instructions to be generated. Therefore it can be used to generate literally anything (macro definitions are available for x86, AArch64, Z80, MOS 6502, WebAssembly, Java and Dalvik bytecode etc.)

See Also

Articles

External Links