GNU Assembler — Wikipédia
Développé par | Projet GNU |
---|---|
Première version | |
Dernière version | Toolset version of binutils[1] |
Écrit en | C |
Type | Programme assembleur |
Licence | Licence publique générale GNU version 3 ou ultérieure |
Site web | www.gnu.org/s/binutils |
GNU Assembler (aussi appelé gas), est le logiciel assembleur du projet GNU, initialement destiné à compiler le système d'exploitation GNU.
GNU assembler est l'équivalent de la commande as des systèmes d'exploitation Unix. C'est le back-end par défaut de GCC. Il fait partie du paquet GNU Binutils.
GNU Assembler est multiplate-forme. Il peut assembler pour différents processeurs. C'est un logiciel libre distribué selon les termes de la licence GNU GPL (version 2 puis version 3)[2].
Syntaxe générale
[modifier | modifier le code]GNU Assembler a une syntaxe générale qui fonctionne de la même manière pour toutes les architectures qu'il utilise. La syntaxe inclut les directives d'assemblage et une méthode pour les commenter.
Critique
[modifier | modifier le code]Une reproche qui est souvent faite à GNU Assembler est que pour les architectures X86 et X86-64, il utilise la syntaxe AT&T (placer la source avant la destination), plutôt que la syntaxe Intel (placer la destination avant la source, comme dans la plupart des langages évolués) utilisée par la plupart des autres assembleurs. Les dernières versions supportent désormais la syntaxe Intel, il suffit de le spécifier en utilisant l'instruction .intel_syntax
[3].
Notes et références
[modifier | modifier le code]- « https://sourceware.org/git/?p=binutils-gdb.git;a=tree » (consulté le )
- GNU GPL V2 constaté dans le fichier COPYING du repertoire /gas de la version 2.16.1a des binutils, et GNU GPL V3 constaté dans le fichier COPYING du repertoire /gas de la version 2.25 des binutils.
- Redhat.com - manuals : AT&T Syntax versus Intel Syntax
Voir aussi
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]Autres assembleurs
[modifier | modifier le code]Liens externes
[modifier | modifier le code]- (en) Page du projet