<HTML> <HEAD> <TITLE>Introduction</TITLE> </HEAD> <BODY> <H1>1. <A NAME="s1"></A>Introduction</H1> <P> <A HREF="Assembly-HOWTO.html#toc1">Contenu de cette section</A></P> <P></P> <P></P> <H2>1.1 <A NAME="ss1.1"></A> Copyright</H2> <P></P> <P>Copyright (c) 1996,1997 François-René Rideau. Ce document peut être redistribué sous les termes de la license LDP, disponibles à <A HREF="http://sunsite.unc.edu/LDP/COPYRIGHT.html">http://sunsite.unc.edu/LDP/COPYRIGHT.html</A> .</P> <P></P> <P></P> <H2>1.2 <A NAME="ss1.2"></A> Note importante</H2> <P></P> <P>Ceci est censé être la dernière version que j'écrirai de ce document. Il y a un candidat pour reprendre en charge le document, mais jusqu'à ce qu'il le reprenne complètement en main, je serai heureux de m'occuper de tout courrier concernant ce document.</P> <P>Vous êtes tout spécialement invités à poser des questions, à y répondre, à corriger les données, à ajouter de nouvelles informations, à compléter les références sur d'autres logiciels, à mettre en évidence les erreurs et lacunes du document. Si vous êtes motivés, vous pouvez même <B>prendre en charge ce document</B>. En un mot, apporter votre contribution!</P> <P>Pour contribuer à ce document, contactez la personne qui apparaît actuellement en charge. Au moment où j'écris ces lignes, il s'agit de <A HREF="mailto:rideau@clipper.ens.fr">François-René Rideau</A> ) ainsi que de <A HREF="mailto:paul@geeky1.ebtech.net">Paul Anderson</A> .</P> <P></P> <P></P> <H2>1.3 <A NAME="ss1.3"></A> Avant-Propos</H2> <P></P> <P>Ce document est destiné à répondre aux questions les plus fréquemment posées par les gens qui développent ou qui souhaitent développer des programmes en assembleurs x86 32 bits en utilisant des logiciels <EM>libres</EM>, et tout particulièrement sous Linux. Vous y trouverez également des liens sur d'autres documents traitant d'assembleur, fondés sur des outils logiciels qui ne sont pas libres, pas 32-bit, ou pas dédiés à l'architecture x86, bien que cela ne soit pas le but principal de ce document.</P> <P>Etant donné que l'intéret principal de la programmation en assembleur est d'établir les fondations de systèmes d'exploitation, d'interpréteurs, de compilateurs, et de jeux, là où un compilateur C n'arrive plus à fournir le pouvoir d'expression nécessaire (les performances étant de plus en plus rarement un problème), nous insisteront sur le développement de tels logiciels.</P> <P></P> <P></P> <H3>Comment utiliser ce document</H3> <P></P> <P>Ce document contient des réponses à un certain nombre de questions fréquemment posées. Des URL y sont donnés, qui pointent sur des sites contenant documents ou logiciels. Prenez conscience que les plus utiles de ces sites sont dupliqués sur des serveurs miroirs, et qu'en utilisant le site miroir le plus proche de chez vous, vous évitez à un gâchis inutile aussi bien de précieuses ressources réseau communes à l'Internet que de votre propre temps. Ainsi, il existe un certain nombre de gros serveurs disséminés sur la planète, qui effectuent la duplication d'autres sites importants. Cherchez où se trouvent ces sites et identifiez les plus proches de chez vous (du point de vue du réseau). Parfois, la liste des miroirs est données dans un fichier ou dans le message de connexion. Suivez ces conseils. Si ces informations ne sont pas présentes, utilisez le programme archie.</P> <P>La version la plus récente de ce document peut être trouvée sur</P> <P> <A HREF="http://www.eleves.ens.fr:8080/home/rideau/Assembly-HOWTO">http://www.eleves.ens.fr:8080/home/rideau/Assembly-HOWTO</A> ou <A HREF="http://www.eleves.ens.fr:8080/home/rideau/Assembly-HOWTO.sgml">http://www.eleves.ens.fr:8080/home/rideau/Assembly-HOWTO.sgml</A> </P> <P>mais les répertoires de HowTo Linux <EM>devraient</EM> normalement être à peu près à jour (je ne peux pas le garentir):</P> <P> <A HREF="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/">ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/</A> (?)</P> <P>La version française de ce document peut être trouvée sur le site</P> <P> <A HREF="ftp://ftp.ibp.fr/pub/linux/french/HOWTO/">ftp://ftp.ibp.fr/pub/linux/french/HOWTO/</A> </P> <P></P> <P></P> <H3>Autres documents de référence</H3> <P></P> <P> <UL> <LI>si vous ne savez ce qu'est le <EM>libre</EM> logiciel, lisez avec attention la GPL (GNU General Public License), qui est utilisée dans un grand nombre de logiciels libres, et est une source d'inspiration pour la plupart des autres licences d'utilisations de logiciels libres. Elle se trouve généralement dans un fichier nommé <CODE>COPYING</CODE>, avec une version pour les bibliothèques de routines dans un fichier nommé <CODE>COPYING.LIB</CODE>. Les écrits publiés par la FSF (free software foundation) peuvent également vous aider à comprendre le phénomène. </LI> <LI>plus précisément, les logiciels libres intéressants sont ceux desquels les sources sont disponibles, que l'on peut consulter, corriger, et desquels on peut emprunter une partie. Lisez les licences d'utilisation avec attention et conformez-vous y. </LI> <LI>il existe une FAQ dans le forum de discussion comp.lang.asm.x86 qui répond aux questions générales concernant la programmation en assembleur pour x86, et aux questions concernant certains assembleurs commerciaux dans un environnement DOS 16 bits. Certaines de ces réponses peuvent s'appliquer à la programmation 32 bits, aussi serez-vous sans-doute intéressés de lire cette FAQ... <A HREF="http://www2.dgsys.com/~raymoon/faq/asmfaq.zip">http://www2.dgsys.com/~raymoon/faq/asmfaq.zip</A> </LI> <LI>Sont disponibles des FAQs, de la documentation, et des sources, concernant la programmation sur votre plate-forme préférée, quelqu'elle soit, et vous devriez les consulter pour les problèmes liés à votre plate-forme qui ne seraient pas spécifique à la programmation en assembleur.</LI> </UL> </P> <P></P> <P></P> <H2>1.4 <A NAME="ss1.4"></A> Historique de document</H2> <P></P> <P>Chaque version inclue quelques modifications et corrections mineures, qui ne sont pas indiquées à chaque fois. <DL> <DT><B>Version 0.1 23 Avril 1996</B><DD><P>Francois-Rene "Faré" Rideau <rideau@ens.fr> crée et diffuse initialement le document sous forme d'un mini-HOWTO car ``Je suis un peu fatigué d'avoir à répondre encore et toujours aux mêmes questions dans le forum comp.lang.asm.x86''</P> <DT><B>Version 0.2 4 Mai 1996</B><DD><P>*</P> <DT><B>Version 0.3c 15 Juin 1996</B><DD><P>*</P> <DT><B>Version 0.3f 17 Octobre 1996</B><DD><P>Tim Potter indique l'option -fasm pour activer l'assembleur en-ligne de GCC sans le reste des optimisations de -O.</P> <DT><B>Version 0.3g 2 Novembre 1996</B><DD><P>Création de l'historique. Ajout de pointeurs dans la section sur la compilation croisée. Ajout d'une section concernant la programmation des entrées/sorties sous Linux (en particulier pour l'accès vidéo).</P> <DT><B>Version 0.3h 6 Novembre 1996</B><DD><P>plus sur la compilation croisée - voir sur sunsite: devel/msdos/</P> <DT><B>Version 0.3i 16 Novembre 1996</B><DD><P>NASM commence à être particulièrement intéressant</P> <DT><B>Version 0.3j 24 Novembre 1996</B><DD><P>Référence sur la version française</P> <DT><B>Version 0.3k 19 Décembre 1996</B><DD><P>Quoi? J'avais oublié de parler de Terse?</P> <DT><B>Version 0.3l 11 Janvier 1997</B><DD><P>*</P> <DT><B>Version 0.4pre1 13 Janvier 1997</B><DD><P>Le mini-HOWTO au format texte est transformé en un authentique HOWTO au format linuxdoc-sgml, pour explorer les possibilités dudit format.</P> <DT><B>Version 0.4 20 Janvier 1997</B><DD><P>Première diffusion de ce HOWTO.</P> <DT><B>Version 0.4a 20 Janvier 1997</B><DD><P>Ajout de la section CREDITS</P> <DT><B>Version 0.4b 3 Février 1997</B><DD><P>NASM mis avant AS86</P> <DT><B>Version 0.4c 9 Février 1997</B><DD><P>Ajout de la partie "Avez-vous besoin d'utilisateur l'assembleur?"</P> <DT><B>Version 0.4d 28 Février 1997</B><DD><P>Annonce fantôme d'un nouveau responsable de ce HowTo.</P> <DT><B>Version 0.4e 13 Mar 1997</B><DD><P>Version diffusée pour DrLinux</P> <DT><B>Version 0.4f 20 Mars 1997</B><DD><P>*</P> <DT><B>Version 0.4g 30 Mars 1997</B><DD><P>*</P> <DT><B>Version 0.4h 19 Juin 1997</B><DD><P>Ajouts à propos de "Comment ne pas utiliser l'assembleur"; mises à jour concernant NASM et GAS.</P> <DT><B>Version 0.4i 17 Juillet 1997</B><DD><P>Informations sur l'accès au mode 16 bits à partir de Linux.</P> <DT><B>Version 0.4j 7 September 1997</B><DD><P>*</P> <DT><B>Version 0.4k 19 Octobre 1997</B><DD><P>je (Faré) reprends en main la traduction française du HowTo</P> <DT><B>Version 0.4l 16 Novembre 1997</B><DD><P>version pour LSL 6ème édition.</P> <P>Il s'agit encore d'une nouvelle ``toute dernière version réalisée par Faré avant qu'un nouveau responsable ne prenne la main''.</P> <P></P> </DL> </P> <P></P> <H2>1.5 <A NAME="ss1.5"></A> Crédits</H2> <P></P> <P>Je souhaiterais remercier les personnes suivantes: <UL> <LI> <A HREF="mailto:buried.alive@in.mail">Linus Torvalds</A> pour Linux</LI> <LI> <A HREF="mailto:bde@zeta.org.au">Bruce Evans</A> pour bcc d'où as86 est extrait</LI> <LI> <A HREF="mailto:anakin@poboxes.com">Simon Tatham</A> et <A HREF="mailto:jules@earthcorp.com">Julian Hall</A> pour NASM.</LI> <LI> <A HREF="mailto:jim-neil@digital.net">Jim Neil</A> pour Terse</LI> <LI> <A HREF="mailto:gregh@sunsite.unc.edu">Greg Hankins</A> pour la coordination des HOWTOs</LI> <LI> <A HREF="mailto:raymoon@moonware.dgsys.com">Raymond Moon</A> pour sa FAQ</LI> <LI> <A HREF="mailto:dumas@Linux.EU.Org">Eric Dumas</A> pour la traduction initiale en français... (l'auteur, français, est le premier attristé de devoir écrire l'original en anglais)</LI> <LI> <A HREF="mailto:paul@geeky1.ebtech.net">Paul Anderson</A> et <A HREF="mailto:rahim@megsinet.net">Rahim Azizarab</A> pour m'avoir aidé, à défaut de reprendre le HowTo en main.</LI> <LI>toutes les personnes qui ont contribué à l'écriture de ce document, par leurs idées, remarques ou leur soutient moral.</LI> </UL> </P> <P></P> <P></P> <HR> <P> Chapitre <A HREF="Assembly-HOWTO-2.html">suivant</A><P> Table des matières de <A HREF="Assembly-HOWTO.html#toc1">ce chapitre</A>, <A HREF="Assembly-HOWTO.html#toc">Table des matières</A> générale</P> <P> <A HREF="Assembly-HOWTO.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>