FASM

Le FASM (assembleur plat de ) est un assembleur libre d'Intel-modèle soutenant les architectures du IA-32 et du X86-64 .

On le connaît pour sa vitesse, optimisations de taille, portabilité d'OS, et macro possibilités puissantes. Ce qui devrait être noté est ces FASM est assembleur très de bas niveau ( différent MASM ), et utilisations presque aucune commande-ligne options.

FASM contient des attaches au GUI et OpenGL de Windows. Toutes les versions de FASM peuvent directement produire suivre l'un des : " plat ; raw" ; binaire (utilisable aussi comme COM de DOS exécutable ou conducteur de système), objets : ELF ou COFF (classique ou Mme-spécifique), ou executables dans le MZ , le ELF ou le format du PE (conducteurs y compris de WDM, permet le moignon de DOS du MZ de coutume). Des objets d'OMF, les executables de Ne, de le, et de LX ne sont pas soutenus à la façon des indigènes par FASM. Un port officieux visant l'architecture (FASMARM) de BRAS de existe également.

Histoire

Le projet a été lancé en 1999 par le Tomasz Grysztar , Privalov (à ce moment-là, un étudiant d'aka d'étudiant préparant une licence des mathématiques de Pologne ). FASM est complètement écrit dans le langage d'assemblage, vient avec la pleine source, et a pu s'assembler depuis la version 0.90 ( le 4 mai , 1999 ). Le premier dégagement public a été annoncé le 15 mars , le 2000 .

Conception

FASM est un assembleur très de bas niveau. Il n'a pas beaucoup de rapports communs intégrés (comme MASM) ; au lieu de cela il fournit des dispositifs de syntaxe pour créer de tels rapports. Ceci permet pour adapter ces rapports, et crée des rapports absents.

FASM est un assembleur à multipassage. Il fait l'optimisation étendue de nombre d'instructions, et permet une mise en référence plus vers l'avant. Une construction habituelle de FASM définit des données ou des procédures seulement si elles sont employées quelque part dans le code, quelque chose qui dans la plupart des langues sont par-objet fait par l'éditeur de liens.

FASM est lâchement basé sur le principe (la même source, le même rendement) du SSSO. Ceci signifie que le contenu du dossier en résultant n'est pas affecté par la ligne de commande. Une telle approche sauve des sources de FASM des problèmes de compilation souvent actuels dans beaucoup de projets d'assemblée. D'une part, elle le rend très dur pour maintenir un projet qui se compose des fichiers source séparément compilés de multiple, ou la mélangé-langue projette. Jusqu'à la version 1.24, FASM n'a pas laissé définir des constantes de ligne de commande, et par conséquent il a été la plupart du temps employé pour le développement de passe-temps, et rarement employé pour l'Assemblée mélangée et les projets de C/C++. La plupart des projets de FASM sont établis d'une source simple directement dans exécutable, sans étape de enchaînement.

Exemples

DexOS , et BOS - à 32 bits DOS-comme OS'es
logiciels d'exploitation à 32 bits et 64-bit de MenuetOS , - de GUI
KolibriOS , OS de GUI à 32 bits
FASMLIB - bibliothèque portative pour la programmation à 32 bits de l'ensemble x86
PROE - moteur du chiffrage x86-64
RevaForth
uFMOD - joueur de .xm pour Win32, Linux, Unix/BSD et KolibriOS

Plusieurs compilateurs emploient également FASM comme partie postérieure :
PureBasic
HLA (Assemblée à niveau élevé)
BlitzMax
Contexte/Win32
B0

D'autres assembleurs

YASM
Assembleur de Microsoft de macro
Assembleur à l'ensemble du réseau
Assembleur de Turbo de
Assemblée à niveau élevé
Assembleur de GNU de
POASM , la partie postérieure d'assembleur dans le toolchain de Pelles C.

Voir également

FreeDOS
DOSBox

.

Random links:Wahkon, Minnesota | Université de Kirksville de médecine Osteopathic | Malaise industriel | Nouvel argot | Hydrostat musculaire | FASM