FASM |
FASM is an Assembler for the IA-32 architecture. The name stands for flat assembler . FASM itself is written in assembly language and is also available on Linux, Microsoft Windows, and MenuetOS systems. It shatters the assembly is not portable at all myth. FASM has some features that are advanced for assembly programming language, such as macros, structures, and virtual data . FASM contains bindings to the Microsoft Windows GUI and OpenGL.
MenuetOS is an operating system written in 100% FASM assembly language.
=Features=
Fasm borrows much of its syntax from the NASM assembler, and both include features such as flat binary output, and output of Executable and Linkable Format, COFF objects. Fasm can also directly output executables in both Executable and Linkable Format, and Portable Executable. (aka, linux and Windows .exe).
Features common in both NASM and FASM (and a few other assemblers):
==$==
$ describes current location. Useful for determining the size of a block of code or data. Example of use:
mystring db This is my string , 0 mystring.length equ $-mystring
==Local Labels==
Local Labels, which begin with a . (a period)
globallabel: .locallabelone: .locallabeltwo: globallabel2: .locallabelone: .locallabeltwo:
==Macros==
Macros in FASM are described in a C-like manner and are created like this:
macro (name) (parameters) { macro code. }
For example, the following could be used to overload the mov instruction to accept three parameters in FASM:
macro mov op1,op2,op3 { if op3 eq mov op1,op2 else mov op1,op2 mov op2,op3 end if }
= See also =
= External links =
|
|