<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=Pl_NR</id>
	<title>Pl NR - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.temlib.org/AtariForumWiki/index.php?action=history&amp;feed=atom&amp;title=Pl_NR"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;action=history"/>
	<updated>2026-05-13T17:07:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;diff=16195&amp;oldid=prev</id>
		<title>&gt;Wongck at 15:14, 12 October 2011</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;diff=16195&amp;oldid=prev"/>
		<updated>2011-10-12T15:14:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:14, 12 October 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l749&quot;&gt;Line 749:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 749:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Back to [[ASM_Tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Back to [[ASM_Tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Programming&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ASSEMBLEUR 68000 sur ATARI ST Part 1 &lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Wongck</name></author>
	</entry>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;diff=16194&amp;oldid=prev</id>
		<title>&gt;Silver Surfer: Added category</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;diff=16194&amp;oldid=prev"/>
		<updated>2009-05-02T20:39:11Z</updated>

		<summary type="html">&lt;p&gt;Added category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:39, 2 May 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l749&quot;&gt;Line 749:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 749:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Back to [[ASM_Tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Back to [[ASM_Tutorial]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Programming]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Silver Surfer</name></author>
	</entry>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;diff=16193&amp;oldid=prev</id>
		<title>&gt;Zorro 2 at 14:18, 9 October 2006</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;diff=16193&amp;oldid=prev"/>
		<updated>2006-10-09T14:18:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:18, 9 October 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l743&quot;&gt;Line 743:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 743:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      PIECHOCKI Laurent&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      PIECHOCKI Laurent&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      8,impasse Bellevue                           Suite dans &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[pl_DEBUTS&lt;/del&gt;.DOC&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      8,impasse Bellevue                           Suite dans &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DEBUTS&lt;/ins&gt;.DOC&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      57980 TENTELING                                         ----------&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;      57980 TENTELING                                         ----------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>&gt;Zorro 2</name></author>
	</entry>
	<entry>
		<id>https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;diff=16192&amp;oldid=prev</id>
		<title>&gt;Zorro 2 at 13:33, 9 October 2006</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl_NR&amp;diff=16192&amp;oldid=prev"/>
		<updated>2006-10-09T13:33:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                       ------------------------------&lt;br /&gt;
                              CHAPITRE nrÂ° 2:&lt;br /&gt;
         &lt;br /&gt;
                       * PREMIERS PAS EN ASSEMBLEUR *&lt;br /&gt;
           &lt;br /&gt;
                       ------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              *** UTILISATION LOGICIELLE DE L'ASSEMBLEUR ***&lt;br /&gt;
              ----------------------------------------------&lt;br /&gt;
&lt;br /&gt;
 -   Comme  nous l'avons vu dans le chapitre prâ€šcâ€šdent, programmer en&lt;br /&gt;
     assembleur n'est possible qu'avec : un EDITEUR, un ASSEMBLEUR et&lt;br /&gt;
     un LINKER.&lt;br /&gt;
&lt;br /&gt;
 1) l'EDITEUR:    .C'est l'EDITEUR qui permet la saisie de votre listing:&lt;br /&gt;
    ----------&lt;br /&gt;
                   Vous  â€šcrirez  votre  programme grÆ’ce aux fonctions de&lt;br /&gt;
                   l'â€šditeur. L'â€šditeur sauvera et chargera vos listings.&lt;br /&gt;
&lt;br /&gt;
                   Les fichiers sauvâ€šs sont des fichiers ASCII (tout com-&lt;br /&gt;
                   me les fichiers de ce livre digital) et peuvent Ã¨tre&lt;br /&gt;
                   modifiâ€šs Ã  volontâ€š avec l'â€šditeur.&lt;br /&gt;
&lt;br /&gt;
                   Un tel fichier est nommâ€š CODE SOURCE.&lt;br /&gt;
&lt;br /&gt;
                   Les fonctions de l'â€šditeur varient avec l'utilitaire&lt;br /&gt;
                   (DEVPAC,METACOMCO,PROFIMAT...) et simplifient l'entrâ€še&lt;br /&gt;
                   du texte (listing).&lt;br /&gt;
&lt;br /&gt;
                  .Un fichier issu d'un â€šditeur ne peut pas Ãªtre executâ€š!&lt;br /&gt;
&lt;br /&gt;
                   Il faudra d'abord l'ASSEMBLER puis le LINKER.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 2) l'ASSEMBLEUR .l'ASSEMBLAGE constitue la deuxiÃ¨me â€štape:&lt;br /&gt;
    ------------&lt;br /&gt;
                  Les codes ASCII (texte) du listing sonts traduits par&lt;br /&gt;
                  l'Assembleur et sont convertis (codâ€šs) en BINAIRE (le&lt;br /&gt;
                  binaire est reconnu directement par l'ordinateur,con-&lt;br /&gt;
                  trairement au texte ASCII)&lt;br /&gt;
&lt;br /&gt;
                  Le fichier (listing) une fois traitâ€š (Assemblâ€š) est&lt;br /&gt;
                  sauvâ€š sur la disquette  sous le format d'un fichier&lt;br /&gt;
                  en BINAIRE appelâ€š CODE OBJET.&lt;br /&gt;
&lt;br /&gt;
3) le LINKER     .l'EDITION DE LIENS est la derniÃ¨re â€štape:&lt;br /&gt;
   ---------&lt;br /&gt;
                  Le CODE OBJET est chargâ€š et le LINKER intÃ¨grera les&lt;br /&gt;
                  MACROS INSTRUCTIONS qui constituent la bibliothÃ¨que&lt;br /&gt;
                  si le fichier SOURCE le demandait. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                                    -------------&lt;br /&gt;
Je m'explique:&lt;br /&gt;
--------------&lt;br /&gt;
  .En assembleur vous pouvez creâ€šr des MACRO-INSTRUCTIONS&lt;br /&gt;
   (voir chapitre prâ€šcâ€šdent).&lt;br /&gt;
&lt;br /&gt;
  .Une MACRO n'est rien d'autre qu'une nouvelle instruction (paramâ€štrable)&lt;br /&gt;
   qui sera incluse par le LINKER chaque fois qu'il rencontrera son nom&lt;br /&gt;
   dans le CODE OBJET.&lt;br /&gt;
&lt;br /&gt;
Un exp:&lt;br /&gt;
-------&lt;br /&gt;
  .Vous crâ€šez une MACRO qui affiche 'SALUT' sur l'â€šcran:&lt;br /&gt;
&lt;br /&gt;
   Cette MACRO dâ€šlimite en râ€šalitâ€š un PROGRAMME dont la fonction&lt;br /&gt;
   est d'afficher 'SALUT' sur l'â€šcran et vous la nommez 'ECRIS':&lt;br /&gt;
&lt;br /&gt;
             dâ€šbut de la Macro&lt;br /&gt;
&lt;br /&gt;
   ECRIS     .&lt;br /&gt;
             .&lt;br /&gt;
             .                      le listing qui permet d'afficher&lt;br /&gt;
             .                      'SALUT' sur l'â€šcran&lt;br /&gt;
             .&lt;br /&gt;
&lt;br /&gt;
             Fin de la Macro  &lt;br /&gt;
  &lt;br /&gt;
   Chaque fois que le LINKER rencontrera 'ECRIS' (le nom de la MACRO) ,&lt;br /&gt;
   dans le CODE OBJET, il reâ€šcrira la portion de programme 'ECRIS' Ã  la &lt;br /&gt;
   place de la MACRO.&lt;br /&gt;
&lt;br /&gt;
     .Une MACRO n'est donc pas un sous-programme, elle permet juste une&lt;br /&gt;
      une meilleur lisibilitâ€š dans le listing.&lt;br /&gt;
&lt;br /&gt;
     .Une macro sera reâ€šcrite entiÃ¨rement Ã  chaque appel: On perd donc&lt;br /&gt;
      un peu plus de MEMOIRE , mais c'est bien plus rapide qu'un sous-&lt;br /&gt;
      programme.&lt;br /&gt;
&lt;br /&gt;
     .Les Macros permettent une meilleur lisibilitâ€š du listing puisque&lt;br /&gt;
      Vous n'avez plus Ã  taper la ROUTINE correspondant au nom de la&lt;br /&gt;
      Macro, le Linker s'en charge.&lt;br /&gt;
&lt;br /&gt;
  .Vous pouvez donc vous crâ€šer une BIBLIOTHEQUE de MACROS ( c.Ã .d. des&lt;br /&gt;
   fichiers  dâ€šfinissant  des  MACROS ) pour les appeler quand vous en &lt;br /&gt;
   aurrez besoin dans votre listing...&lt;br /&gt;
&lt;br /&gt;
   Le LINKER s'occupe de charger les MACROS utilisâ€šes dans le listing&lt;br /&gt;
   (si le listing en contient...) et de les reâ€šcrires entiÃ¨rement.&lt;br /&gt;
&lt;br /&gt;
   Il suffira d'indiquer (au dâ€šbut du listing) le nom du fichier qui&lt;br /&gt;
   contient les MACROS utilisâ€šes, ou de dâ€šfinir les MACROS utilisâ€šes&lt;br /&gt;
   au dâ€šbut du listing.&lt;br /&gt;
                            (NOUS VERRONS COMMENT EN DETAIL ...)&lt;br /&gt;
&lt;br /&gt;
  .Nous,nous crâ€šerons des MACROS pour les fonctions du GEM,de l'XBIOS,&lt;br /&gt;
   du BIOS et du VDI ( Des MACROS qui se chargent d'appeler les fonc-&lt;br /&gt;
   tions dâ€šsirâ€šes en passant les paramÃ¨tres nâ€šcessaires pour plus de&lt;br /&gt;
   rapiditâ€š et de convivialitâ€š )&lt;br /&gt;
&lt;br /&gt;
                                   --------------&lt;br /&gt;
&lt;br /&gt;
                .le LINKER crâ€šera aussi la PAGE DE BASE, qui contient&lt;br /&gt;
                 des renseignements sur le prg indispensables au sys-&lt;br /&gt;
                 tÃ¨me d'exploitation pour pouvoir charger et executer&lt;br /&gt;
                 le prg LINKE.&lt;br /&gt;
                 VoilÃ  pourquoi le LINKAGE est indispenssable mÃ¨me si&lt;br /&gt;
                 le listing ne contient pas de Macros.&lt;br /&gt;
                 &lt;br /&gt;
                      (Je dâ€štaillerais quand je parlerais du GEMDOS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                .Le fichier ainsi obtenu sera sauvâ€š et pourra Ã¨tre &lt;br /&gt;
                 executâ€š.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 RESUME:&lt;br /&gt;
 ------&lt;br /&gt;
     * EDITEUR *              * ASSEMBLEUR *              * LINKER *&lt;br /&gt;
&lt;br /&gt;
      |listing|    -------&amp;gt;    |code objet|   -------&amp;gt; |prg executable|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                    *** QUELQUES NOTIONS ELEMENTAIRES ***&lt;br /&gt;
                    -------------------------------------&lt;br /&gt;
&lt;br /&gt;
VoilÃ  quelques notions TRES IMPORTANTES:&lt;br /&gt;
&lt;br /&gt;
1)  le BINAIRE: &lt;br /&gt;
    -----------&lt;br /&gt;
 .         Habituellement, pour calculer, on utilise un systÃ¨me dâ€šcimal,&lt;br /&gt;
  c.Ã .d. que ce systÃ¨me est composâ€š de 10 chiffres: 0,1,2,3,4,5,6,7,8,9&lt;br /&gt;
  :C'est une BASE de 10.&lt;br /&gt;
&lt;br /&gt;
  Si on dâ€šsire exprimmer un ensemble dont la quantitâ€š dâ€špasse 9: on aug-&lt;br /&gt;
  mente le chiffre d'une unitâ€š et on obtient un nombre:10,11,12,13,14...&lt;br /&gt;
&lt;br /&gt;
 .Le systÃ¨me BINAIRE (ou de BASE 2),est composâ€š de 2 chiffres: 0 et 1&lt;br /&gt;
&lt;br /&gt;
   Ainsi, si on veut exprimmer un ensemble dont la quantitâ€š dâ€špasse 1&lt;br /&gt;
   ( c.Ã .d. &amp;gt;1 en systÃ¨me dâ€šcimal !! ) on augmente d'une unitâ€š.&lt;br /&gt;
&lt;br /&gt;
Donc:&lt;br /&gt;
VoilÃ  comment on compte en BINAIRE:0,1,10,11,100,101,111,1000,1001,1011...&lt;br /&gt;
&lt;br /&gt;
.On SUPPOSERA que toute composante de la mâ€šmoire de l'ordi est reprâ€šsentâ€še&lt;br /&gt;
 (ou codâ€še) en BINaire.&lt;br /&gt;
&lt;br /&gt;
.On nomme le 0 et le 1 du systÃ¨me BINaire prâ€šsent dans les composantes de&lt;br /&gt;
 la structure de l'ordi par BIT.&lt;br /&gt;
&lt;br /&gt;
.Un BIT peut Ã¨tre nul (ou â€šteint):0    OU     activâ€š (ou encore allumâ€š):1&lt;br /&gt;
                                       --&lt;br /&gt;
.Le BIT est donc la plus petite structure modifiable et reconnaissable &lt;br /&gt;
 par l'ordi.&lt;br /&gt;
&lt;br /&gt;
.On dâ€šfinit par OCTET un groupe de 8 BITS. (L'OCTET est aussi appelâ€š BYTE &lt;br /&gt;
 en Anglais, ne le confondez pas avec 'bit' !)&lt;br /&gt;
&lt;br /&gt;
.On dâ€šfinit par  MOT un groupe de 2 OCTETS (donc de 16 BITS)&lt;br /&gt;
&lt;br /&gt;
.On dâ€šfinit par LONG MOT un groupe de 2 MOTS (donc de 4 OCTETS ou 32 BITS)&lt;br /&gt;
&lt;br /&gt;
.Ces regroupements sont arbitraires et conscernent des BITS consâ€šcutifs&lt;br /&gt;
 (qui se suivent) en mâ€šmoire.&lt;br /&gt;
&lt;br /&gt;
 CONSEQUENCES: Les composantes internes de l'ordi. peuvent Ãªtre exprimâ€šes&lt;br /&gt;
 ------------ en BITS,OCTETS,MOTS ou LONGS MOTS.&lt;br /&gt;
&lt;br /&gt;
RESUME:&lt;br /&gt;
-------&lt;br /&gt;
-  Un BIT prend soit la valeur 1 (activâ€š) soit la valeur 0 (â€šteind)&lt;br /&gt;
      ---&lt;br /&gt;
-  Un OCTET est un groupe de 8 BITS consâ€šcutifs en mâ€šmoire&lt;br /&gt;
      -----&lt;br /&gt;
-  Un MOT est un groupe de 2 OCTETS consâ€šcutifs en mâ€šmoire&lt;br /&gt;
      ---&lt;br /&gt;
-  Un LONG MOT est un groupe de 2 MOTS consâ€šcutifs en mâ€šmoire&lt;br /&gt;
      --------&lt;br /&gt;
Pour schâ€šmatiser, on pourrait dire que la mâ€šmoire de l'ordi. est composâ€še&lt;br /&gt;
d'une multitude de petites cases (BITS) pouvant prendre soit 1 soit 0 com-&lt;br /&gt;
me valeurs suivant les actions du Microprocesseur et pouvant Ã¨tres regrou-&lt;br /&gt;
pâ€šes (arbitrairement) sous la forme d'OCTETS, de MOTS ou de LONGS MOTS.&lt;br /&gt;
&lt;br /&gt;
EXP:&lt;br /&gt;
---         {    0                                est un BIT&lt;br /&gt;
extraits de {    01011101                         est un OCTET, ou 8 BITS&lt;br /&gt;
  mâ€šmoire   {    0101110111010110                 est un MOT,  ou 16 BITS&lt;br /&gt;
            {    01011101110101101000100100101101 est un LONG MOT,ou 32 B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) L'HEXADECIMAL:&lt;br /&gt;
   -------------&lt;br /&gt;
 .l'HEXADECIMAL est un systÃ¨me de BASE 16,les 16 composantes de ce systÃ¨me&lt;br /&gt;
  sont:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F&lt;br /&gt;
&lt;br /&gt;
  Ainsi, pour exprimer un ensemble dont la quantitâ€š dâ€špasse F (soit 16 en&lt;br /&gt;
  BASE de 10), on change d'unitâ€š: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,&lt;br /&gt;
  ,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20,21,22...&lt;br /&gt;
&lt;br /&gt;
  Comme vous pouvez le constater, la vâ€šritable utilitâ€š de ce systÃ¨me est&lt;br /&gt;
  qu'un grand nombre est reprâ€šsentâ€š par un minimum de chiffres.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 .Un OCTET est reprâ€šsentâ€š en HEXA. par 2 chiffres &lt;br /&gt;
&lt;br /&gt;
 .Un MOT est reprâ€šsentâ€š en HEXA. par 4 chiffres&lt;br /&gt;
&lt;br /&gt;
 .Un LONG MOT est reprâ€šsentâ€š en HEXA. par 8 chiffres &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 3) NOTATIONS:&lt;br /&gt;
    ----------&lt;br /&gt;
-      Dans un listing en ASS. ,les chiffres codâ€šs  en BINaire sont &lt;br /&gt;
  reprâ€šsentâ€šs avec le prâ€šfixe ' % ', ceux codâ€šs en HEXAdâ€šcimal avec&lt;br /&gt;
  le prâ€šfixe ' $ '.&lt;br /&gt;
&lt;br /&gt;
  ( L'utilisation de la BASE de 10 n'a pas besoin d'Ã¨tre indiquâ€še )&lt;br /&gt;
&lt;br /&gt;
  AprÃ¨s le Linkage, tous les chiffres seront automatiquement codâ€šs en&lt;br /&gt;
  Hexadâ€šcimal.&lt;br /&gt;
&lt;br /&gt;
EXP:           %01001011   est un chiffre codâ€š en BINAIRE (et un OCTET)&lt;br /&gt;
----           $1F0A       est un chiffre codâ€š en HEXA.   (et un MOT)&lt;br /&gt;
                101001     est un chiffre codâ€š en DECIMAL !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 4) REMARQUES:&lt;br /&gt;
    ----------&lt;br /&gt;
 -  Le BIT le plus Ã  gauche d'un OCTET,d'un MOT,d'un LONG MOT est appellâ€š&lt;br /&gt;
    M.S.B ( Most Significant Bit ) ou Bit de plus fort poids.&lt;br /&gt;
&lt;br /&gt;
 -  C'est ce bit qui permet de signer ( positif / nâ€šgatif ) un nombre.&lt;br /&gt;
    Il est activâ€š pour un nombre nâ€šgatif.&lt;br /&gt;
&lt;br /&gt;
 -  Il n'est utilisâ€š que pour signer un nombre !&lt;br /&gt;
&lt;br /&gt;
  EXP:  $FFFFFFFF est un L-M qui vaut -1 en dâ€šcimal&lt;br /&gt;
  ----  %1111111111111111 est un MOT qui vaut -1 en dâ€šcimal&lt;br /&gt;
        %11111110 est un OCTET qui vaut -2 en dâ€šcimal et&lt;br /&gt;
        %00000010 en est un qui vaut 2:Pour inverser le signe de l'OCTET,&lt;br /&gt;
         on a donc 'prolongâ€š' le 1 le plus Ã  gauche jusqu'au MSB.&lt;br /&gt;
&lt;br /&gt;
  :Exemples trÃ¨s thâ€šoriques, pas de panique,ce n'est pas vraiment utile&lt;br /&gt;
   en pratique (et mÃªme franchement inutile, je vous rassure...) car il&lt;br /&gt;
   existe des instructions qui font toutes sortes d'opâ€šrations sur les&lt;br /&gt;
   BITS,OCTETS,MOTS et L-M... (et personne ne vous oblige Ã  travailler en&lt;br /&gt;
   systÃ¨me Binaire!)&lt;br /&gt;
&lt;br /&gt;
  - D'aprÃ¨s nos dâ€šfinitions: (le MSB n'est utilisâ€š que pour signer le bit,&lt;br /&gt;
                              l'octet,le mot ou le long-mot)&lt;br /&gt;
&lt;br /&gt;
             donc:            *         -2^7  Ã³ OCTET &amp;lt; 2^7&lt;br /&gt;
                                        -128  Ã³ OCTET &amp;lt; 128&lt;br /&gt;
&lt;br /&gt;
                              *        -2^15  Ã³  MOT  &amp;lt; 2^15&lt;br /&gt;
                                       -32768 Ã³  MOT  &amp;lt; 32768&lt;br /&gt;
&lt;br /&gt;
                              *        -2^31  Ã³  L-M  &amp;lt; 2^31&lt;br /&gt;
                                  -2147483648 Ã³  L-M  &amp;lt; 2147483648&lt;br /&gt;
&lt;br /&gt;
  Ã§a par contre, c'est Ã  retenir: Les dâ€šbordements (OCTET trop grand...)&lt;br /&gt;
  provoquent des erreurs.&lt;br /&gt;
&lt;br /&gt;
 5) RECAPITULATION:&lt;br /&gt;
     ---------------&lt;br /&gt;
 .Une composante de la structure de l'ordi. : REGISTRE,VARIABLE... (termes&lt;br /&gt;
  expliquâ€šs bientot) peut prendre la forme de BIT,OCTET,MOT ou LONG MOT.&lt;br /&gt;
&lt;br /&gt;
  En thâ€šorie... Nous â€študierons les exceptions:Le choix est plus limitâ€š en&lt;br /&gt;
                râ€šalitâ€š.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    CONSEQUENCES:   .Une VARIABLE dâ€šfinie en tant que MOT ne pourra donc&lt;br /&gt;
    -------------    pas avoir une valeur supâ€šrieure Ã  32768. (par exp.)&lt;br /&gt;
&lt;br /&gt;
              NB:    Cette variable ne pourra qu'Ã¨tre un Long Mot (Si sa&lt;br /&gt;
              ---    valeur peut Ãªtre contenue dans un L-M , sinon cela&lt;br /&gt;
                     provoquerait une erreur puisque l'ordi ne reconnait&lt;br /&gt;
                     pas de composante dont la quantitâ€š depasse le L-M.)&lt;br /&gt;
                     (en thâ€šorie...)&lt;br /&gt;
&lt;br /&gt;
       REMARQUES:   .Une Variable pouvant Ã¨tre contenue dans un OCTET,&lt;br /&gt;
       ----------    donc dont la valeur est &amp;lt;128 peut aussi Ã¨tre con-&lt;br /&gt;
                     tenue dans un MOT ou un L-M.&lt;br /&gt;
&lt;br /&gt;
                     Mais il faut faire attention Ã  ce que la composante&lt;br /&gt;
                     (ici la variable) puisse Ã¨tre dâ€šfinie sur un MOT ou&lt;br /&gt;
                     un L-M (Dans cet exemple prâ€šcis, c'est possible)&lt;br /&gt;
&lt;br /&gt;
                    .Il faudra donc pour chaque composante de la structure&lt;br /&gt;
                     interne de l'ordi. indiquer les diffâ€šrentes formes&lt;br /&gt;
                     qu'elle peut prendre (BIT,OCTET,MOT,L-M...).&lt;br /&gt;
&lt;br /&gt;
                     Nous le feront avec prâ€šcision.&lt;br /&gt;
&lt;br /&gt;
  C'est pour cela qu'il faudra savoir les diffâ€šrentes formes que peut &lt;br /&gt;
  prendre ce que nous utilisons pour programmer (Registres,variables...)&lt;br /&gt;
  et aussi par quoi sont dâ€šfinit ces formes (BIT,OCTET...).&lt;br /&gt;
  VoilÃ  pourquoi l'Assembleur est trÃ¨s stricte dans sa programmation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6) IMPORTANT:&lt;br /&gt;
   ----------&lt;br /&gt;
&lt;br /&gt;
Les ensembles tels que les OCTETS,MOTS,L-M sont composâ€šs de BITS,ces BITS&lt;br /&gt;
sont numâ€šrotâ€šs ainsi (dans les OCTETS,MOT,L-M,REGISTRES,VARIABLES...):&lt;br /&gt;
&lt;br /&gt;
                        De la DROITE vers la GAUCHE.&lt;br /&gt;
&lt;br /&gt;
     31 30 .  .  .     .  .  . 15  .  .  .  9  8  7  6  5  4  3  2  1  0&lt;br /&gt;
    [*][ ][.][.][.][ ][ ][ ][ ][*][.][.][.][ ][ ][*][ ][ ][ ][ ][ ][ ][*]&lt;br /&gt;
&lt;br /&gt;
 - Un OCTET est donc numâ€šrotâ€š de la droite vers la gauche de 0 Ã  7&lt;br /&gt;
&lt;br /&gt;
 - Un MOT , de 0 Ã  15&lt;br /&gt;
&lt;br /&gt;
 - Un L-M , de 0 Ã  31&lt;br /&gt;
&lt;br /&gt;
 - Le BIT 0 est le bit de PLUS FAIBLE POIDS (ou LSB:Least significant Bit)&lt;br /&gt;
&lt;br /&gt;
 - Le BIT 7 (15 pour un MOT,31 pour un L-M) est le bit de POIDS le plus&lt;br /&gt;
   FORT (ou MSB)&lt;br /&gt;
&lt;br /&gt;
   AINSI:&lt;br /&gt;
   ------                     &amp;lt;-----------  poids FORT&lt;br /&gt;
&lt;br /&gt;
                     31&amp;lt;-- ...[][][][][][][][][][][][][]...  --&amp;gt;0&lt;br /&gt;
&lt;br /&gt;
                               poids FAIBLE ----------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   DONC: Un MOT est composâ€š de 2 OCTETS, un de poids FAIBLE (bits 0 Ã  7) et&lt;br /&gt;
   ----- un de poids FORT: (bits 8 Ã  15)&lt;br /&gt;
&lt;br /&gt;
         Un L-M est composâ€š de 2 MOTS, un de poids FAIBLE (bits 0 Ã  15) et&lt;br /&gt;
         un de poids FORT (bits 16 Ã  31)&lt;br /&gt;
&lt;br /&gt;
                           CETTE NOTION EST FONDAMENTALE &lt;br /&gt;
                           -----------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                              *** LA MEMOIRE ***&lt;br /&gt;
                              ------------------&lt;br /&gt;
&lt;br /&gt;
 - On admettra que la mâ€šmoire est une suite de nombres codâ€šs en BINaire.&lt;br /&gt;
&lt;br /&gt;
    :Nous savons maintenant que ces nombres peuvent Ã¨tres regrouppâ€šs en&lt;br /&gt;
     OCTETS,MOTS,L-M.&lt;br /&gt;
&lt;br /&gt;
 -      La programmation en assembleur permet de changer le contenu &lt;br /&gt;
        de la mâ€šmoire.&lt;br /&gt;
&lt;br /&gt;
.La mâ€šmoire est changâ€še quand l'ordinateur effectue une tÃ che (un calcul,&lt;br /&gt;
 une recherche quelconque...).&lt;br /&gt;
 Dans ce cas, l'ordi. s'occupe  d'ordonner sa mâ€šmoire , c'est en fonction&lt;br /&gt;
 de cet ordre que telle ou telle action se produit,l'utilisateur n'inter-&lt;br /&gt;
 vient donc pas: C'est ce qui se passe Ã  chaque instant, un ordinateur &lt;br /&gt;
 n'est donc jamais au repos (il verifie si on change de disquette,efface&lt;br /&gt;
 l'ecran cinquante fois par seconde).&lt;br /&gt;
&lt;br /&gt;
. La mâ€šmoire de l'ordi. peut aussi Ãªtre changâ€še par l'utilisateur,c'est le&lt;br /&gt;
 but de la programmation.La consâ€šquence en est un â€štat prâ€švu (programmâ€š)&lt;br /&gt;
 de la mâ€šmoire,donc telle ou telle action est effectuâ€še.&lt;br /&gt;
 Ceci est possible en utilisant des instructions propres au langage uti-&lt;br /&gt;
 lisâ€š ou en modifiant directement une portion de la mâ€šmoire.Cette derni-&lt;br /&gt;
 Ã¨re opâ€šration s'effectue trÃ¨s facilement en ASSembleur et avec une prâ€š-&lt;br /&gt;
 cision de l'ordre du BIT.&lt;br /&gt;
 On peut donc Dâ€šplacer un OCTET,un MOT, un L-M (qu'on aura pu dâ€šfinir)&lt;br /&gt;
 dans la mâ€šmoire.(lÃ  oâ€” c'est possible...)&lt;br /&gt;
&lt;br /&gt;
 Pour se repâ€šrer dans la vaste mâ€šmoire de notre ordi. , on a dâ€šcoupâ€š la&lt;br /&gt;
 mâ€šmoire et on a nommâ€š chaque portion de la mâ€šmoire par une ADRESSE (com-&lt;br /&gt;
 me pour des Adresses dans une rue...)&lt;br /&gt;
&lt;br /&gt;
 Thâ€šoriquement, il serait possible de mettre un BIT,OCTET,MOT ou L-M Ã &lt;br /&gt;
 n'importe quelle ADRESSE, mais en râ€šalitâ€š ceci n'est pas possible.&lt;br /&gt;
&lt;br /&gt;
     - L'utilisateur n'a accÃ¨s qu'Ã  une partie de la mâ€šmoire.&lt;br /&gt;
       (nous verrons laquelle)&lt;br /&gt;
&lt;br /&gt;
     - Il faut tenir compte de la paritâ€š et de l'imparitâ€š des ADRESSES:&lt;br /&gt;
       On ne peut pas mettre n'importe quoi Ã  n'importe quelle adresse.&lt;br /&gt;
&lt;br /&gt;
 EN EFFET: Si on SCHEMATISE la structure de la mâ€šmoire, celle-ci ressemble &lt;br /&gt;
 --------  Ã  une bande de longueur limitâ€še (dâ€šbut et fin) et d'une LAR-&lt;br /&gt;
           GEUR de 16 BITS, dont les diffâ€šrentes parties sont numâ€šrotâ€šes &lt;br /&gt;
           ADRESSEES) tout les 8 BITS. (Ã  chaque OCTET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                             etc...&lt;br /&gt;
&lt;br /&gt;
              bits: 15        7        0&lt;br /&gt;
              ----- .|        |        |&lt;br /&gt;
                  x-2|--------|--------|&lt;br /&gt;
        |           x|10001011|--------|   OCTET :10001011 Ã  l'adresse x&lt;br /&gt;
        |         x+2|--------|10001101|   OCTET :10001101 en x+3 octets&lt;br /&gt;
        |         x+4|--------|--------|&lt;br /&gt;
        |         x+6|00101100|10110011|   MOT  :0010110010110011&lt;br /&gt;
        |           .|--------|--------|         en x+6 octets&lt;br /&gt;
       \|/          .|--------|--------|&lt;br /&gt;
        '        x+12|11011111|01110100|   L-M  :110111110111010001011011-&lt;br /&gt;
     SENS des       .|01011011|01110100|         01110100&lt;br /&gt;
     adresses       .|--------|--------|         en x+12 octets&lt;br /&gt;
    CROISSANTES     .|--------|--------|&lt;br /&gt;
    -----------  x+20|--------|-------1|   BIT  :1  Ã  l'adresse x+21 octets&lt;br /&gt;
        |           .|--------|--------|&lt;br /&gt;
        |           .|OCT FORT| FAIBLE |&lt;br /&gt;
       \|/          .|--------| ------ |&lt;br /&gt;
        '           15        7        0&lt;br /&gt;
&lt;br /&gt;
                             ETC...&lt;br /&gt;
&lt;br /&gt;
                          +-------+&lt;br /&gt;
                          |MEMOIRE| : ( Exemple d'organisation )&lt;br /&gt;
                          +-------+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Observez bien cet exemple, il est trÃ¨s simple Ã  comprendre et ce schâ€šma&lt;br /&gt;
  devra Ãªtre dans votre tÃ¨te Ã  chaque fois que vous programmerez en ASS.&lt;br /&gt;
&lt;br /&gt;
- Vous pouvez constater que:&lt;br /&gt;
&lt;br /&gt;
             * La mâ€šmoire est adressable au niveau de l'octet *&lt;br /&gt;
               ----------------------------------------------&lt;br /&gt;
      *    :Entre 2 adresses diffâ€šrentes X et X+1 ou X-1, il y a   *&lt;br /&gt;
      *     8 BITS ou un OCTET.                                    *&lt;br /&gt;
&lt;br /&gt;
                     bits nÂ° 7  6  5  4  3  2  1  0&lt;br /&gt;
&lt;br /&gt;
            X-1  ----------&amp;gt;&lt;br /&gt;
                            [ ][ ][ ][ ][ ][ ][ ][ ]&lt;br /&gt;
            X    ----------&amp;gt;&lt;br /&gt;
                            [ ][ ][ ][ ][ ][ ][ ][ ]&lt;br /&gt;
            X+1  ----------&amp;gt;&lt;br /&gt;
                            [ ][ ][ ][ ][ ][ ][ ][ ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
       * La mâ€šmoire peut Ã¨tre reprâ€šsentâ€še comme un PUITS dans lequel on&lt;br /&gt;
         JETTE des donnâ€šes:BITS,OCTET,MOTS,L-M:&lt;br /&gt;
&lt;br /&gt;
         La largeur de ce puit est d'un MOT (soit 16 Bits)&lt;br /&gt;
         La profondeur dâ€špend de la taille de la mâ€šmoire.&lt;br /&gt;
&lt;br /&gt;
         Le but du jeu:  Jetter nos donnâ€šes dans le puit sans dâ€šformer&lt;br /&gt;
                         les donnâ€šes.&lt;br /&gt;
&lt;br /&gt;
   c.Ã .d: Si vous y jettez un MOT: 1010101110110110 (=2 octets,1 de&lt;br /&gt;
          poids fort (Ã  droite) et un de poids faible (Ã  gauche) ) Ã &lt;br /&gt;
          une adresse x paire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                      1010101110110110&lt;br /&gt;
                             |&lt;br /&gt;
                            \|/&lt;br /&gt;
&lt;br /&gt;
                    |--------|--------|&lt;br /&gt;
  ADRESSES PAIRES   |--------|--------|  ADRESSES IMPAIRES&lt;br /&gt;
  ---------------   |--------|--------|  -----------------&lt;br /&gt;
           bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
                   &lt;br /&gt;
                       vous obtenez:&lt;br /&gt;
&lt;br /&gt;
  ADRESSES PAIRES  x|10101011|10110110|  ADRESSES IMPAIRES&lt;br /&gt;
  ---------------x+2|--------|--------|  -----------------&lt;br /&gt;
                    |--------|--------|&lt;br /&gt;
           bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
               - Le MOT a Ã©tÃ© posÃ© Ã  l'adresse x (PAIRE)&lt;br /&gt;
&lt;br /&gt;
               . L'Oct de poids FORT est Ã  l'adresse x (PAIRE)&lt;br /&gt;
               . L'Oct de poids FAIBLE Ã  l'adresse x+1 (IMPAIRE)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            par contre, si vous jetez ce mot Ã  une adresse impaire:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                               10101011&lt;br /&gt;
                      10110110&lt;br /&gt;
                              |&lt;br /&gt;
                             \|/&lt;br /&gt;
&lt;br /&gt;
                     |--------|--------|&lt;br /&gt;
  ADRESSES PAIRES    |--------|--------|    ADRESSES IMPAIRES&lt;br /&gt;
  ---------------    |--------|--------|    -----------------&lt;br /&gt;
            bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
                   &lt;br /&gt;
                   &lt;br /&gt;
                        vous obtenez:&lt;br /&gt;
&lt;br /&gt;
                  x-3|--------|--------|&lt;br /&gt;
  ADRESSES PAIRES x-1|--------|10101011|x   ADRESSES IMPAIRES&lt;br /&gt;
  ---------------    |10110110|--------|x+2 -----------------&lt;br /&gt;
                     |--------|--------|&lt;br /&gt;
            bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
               - Le MOT a â€štâ€š posâ€š Ã  l'adresse x (IMPAIRE)&lt;br /&gt;
&lt;br /&gt;
               . L'Oct de poids FORT est Ã  une adresse IMPAIRE :x&lt;br /&gt;
               . L'Oct de poids FAIBLE Ã  une adresse PAIRE     :x+1&lt;br /&gt;
&lt;br /&gt;
            Dans ce cas, on ne respecte plus les rÃ¨gles de notre 'jeu'&lt;br /&gt;
            Si on devait jeter un autre MOT Ã  l'adresse x-3 dans notre&lt;br /&gt;
            puits, son Oct FORT ne pourrait pas se maintenir et dâ€šgrin-&lt;br /&gt;
            golerait en x-1!&lt;br /&gt;
&lt;br /&gt;
            ATTENTION,en râ€šalitâ€š ceci ne se produirait pas, Je simplifie&lt;br /&gt;
            seulement mon explication...&lt;br /&gt;
&lt;br /&gt;
     En fait, pour pouvoir dâ€šplacer (poser) des MOTS dans la mâ€šmoire, il&lt;br /&gt;
     faut veiller Ã  ce que l'adresse de destination soit PAIRE!&lt;br /&gt;
&lt;br /&gt;
            Pour notre exemple, il faut donc poser le MOT sous cette&lt;br /&gt;
            forme dans la mâ€šmoire (dans notre 'puits')&lt;br /&gt;
&lt;br /&gt;
                        +----------------+&lt;br /&gt;
                        |1010101110110110|&lt;br /&gt;
                        +----------------+&lt;br /&gt;
                                 |&lt;br /&gt;
                                \|/&lt;br /&gt;
&lt;br /&gt;
                        |--------|--------|&lt;br /&gt;
  ADRESSES PAIRES      x|10101011|10110110|x+1   ADRESSES IMPAIRES&lt;br /&gt;
  ---------------       |--------|--------|      -----------------&lt;br /&gt;
               bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
                  .L'Oct de poids FORT (10101011) est Ã  l'adresse x&lt;br /&gt;
                   qui est PAIRE&lt;br /&gt;
&lt;br /&gt;
                  .L'Oct de poids FAIBLE (10110110) est Ã  l'adresse x+1&lt;br /&gt;
                   qui est IMPAIRE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            * Il en est de mÃ¨me lorsqu'il s'agit d'un L-M:&lt;br /&gt;
              --------------------------------------------&lt;br /&gt;
&lt;br /&gt;
       VoilÃ  comment poser un L-M, lÃ  aussi il faut que l'adresse de&lt;br /&gt;
       destination soit PAIRE, pour  â€šviter les mâ€šmes  complications&lt;br /&gt;
       que dans notre exemple prâ€šcâ€šdent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        +-----------------+&lt;br /&gt;
                        |1110001001100100-|&lt;br /&gt;
                        |1010110011010001 |&lt;br /&gt;
                        +-----------------+&lt;br /&gt;
                                 |&lt;br /&gt;
                                \|/&lt;br /&gt;
&lt;br /&gt;
                        |--------|--------|&lt;br /&gt;
  ADRESSES PAIRES       |--------|--------|      ADRESSES IMPAIRES&lt;br /&gt;
  ---------------       |--------|--------|      -----------------&lt;br /&gt;
                       x|11100010|01100100|x+1&lt;br /&gt;
                     x+2|10101100|11010001|x+3&lt;br /&gt;
                        |--------|--------|&lt;br /&gt;
               bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
                  .Le MOT de poids FORT (1110001001100100) est Ã &lt;br /&gt;
                   l'adresse x ,qui est PAIRE&lt;br /&gt;
&lt;br /&gt;
                  .Le MOT de poids FAIBLE (1010110011010001) est Ã &lt;br /&gt;
                   l'adresse x+2 ,qui est PAIRE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            * Pour un OCTET ou un BIT&lt;br /&gt;
              -----------------------&lt;br /&gt;
&lt;br /&gt;
                 - La paritâ€š n'a plus d'importance!&lt;br /&gt;
&lt;br /&gt;
      Ainsi, pour un Octet: on a:&lt;br /&gt;
             --------------&lt;br /&gt;
&lt;br /&gt;
                      01000110&lt;br /&gt;
                          |&lt;br /&gt;
                         \|/&lt;br /&gt;
&lt;br /&gt;
                     |--------|--------|&lt;br /&gt;
  ADRESSES PAIRES   x|01000110|--------|x+1   ADRESSES IMPAIRES&lt;br /&gt;
  ---------------    |--------|--------|      -----------------&lt;br /&gt;
            bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                     .L'Oct (01000110) est Ã  une adresse x ,PAIRE&lt;br /&gt;
&lt;br /&gt;
           OU:&lt;br /&gt;
           --&lt;br /&gt;
                              01000110&lt;br /&gt;
                                  |&lt;br /&gt;
                                 \|/&lt;br /&gt;
&lt;br /&gt;
                     |--------|--------|&lt;br /&gt;
  ADRESSES PAIRES x-1|--------|01000110|x     ADRESSES IMPAIRES&lt;br /&gt;
  ---------------    |--------|--------|      -----------------&lt;br /&gt;
            bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                     .L'Oct (01000110) est Ã  une adresse x ,IMPAIRE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
             Pour un BIT: on a&lt;br /&gt;
             ------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                         0&lt;br /&gt;
                         |&lt;br /&gt;
                        \|/&lt;br /&gt;
&lt;br /&gt;
                     |--------|--------|&lt;br /&gt;
  ADRESSES PAIRES   x|-------0|--------|x+1   ADRESSES IMPAIRES&lt;br /&gt;
  ---------------    |--------|--------|      -----------------&lt;br /&gt;
            bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                     .Le BIT (0) est Ã  une adresse x ,PAIRE&lt;br /&gt;
&lt;br /&gt;
          OU:&lt;br /&gt;
          ---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                  0&lt;br /&gt;
                                  |&lt;br /&gt;
                                 \|/&lt;br /&gt;
&lt;br /&gt;
                     |--------|--------|&lt;br /&gt;
  ADRESSES PAIRES x-1| -------|-------0|x     ADRESSES IMPAIRES&lt;br /&gt;
  ---------------    |--------|--------|      -----------------&lt;br /&gt;
            bit nrÂ° 15        7        0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                     .Le BIT (0) est Ã  une adresse x ,IMPAIRE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                          *** RECAPITULATION ***&lt;br /&gt;
                          ----------------------&lt;br /&gt;
&lt;br /&gt;
 * Un BIT peut Ã¨tre, soit Ã  une adresse PAIRE, soit Ã  une adresse IMPAIRE&lt;br /&gt;
      ---                               -----                     -------&lt;br /&gt;
 * Un OCTET peut Ã¨tre, soit Ã  une adresse PAIRE, soit une adresse IMPAIRE&lt;br /&gt;
      -----                               -----                   -------&lt;br /&gt;
 * Un MOT est toujours situâ€š Ã  une adresse PAIRE en mâ€šmoire&lt;br /&gt;
      ---                                  -----&lt;br /&gt;
 * Un L-M est toujours situâ€š Ã  une adresse PAIRE en mâ€šmoire&lt;br /&gt;
      ---                                  -----&lt;br /&gt;
   ( Le non respect de cette rÃ¨gle entraine un 'plantage' de l'ordi ! )&lt;br /&gt;
&lt;br /&gt;
 * STRUCTURE de la MEMOIRE:&lt;br /&gt;
                   --------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                            etc...&lt;br /&gt;
              bits: 15        7        0&lt;br /&gt;
              ----- .|        |        |&lt;br /&gt;
                  x-2|--------|--------|x-1&lt;br /&gt;
        |           x|00001011|--------|  OCTET :00001011 Ã  l'adresse x&lt;br /&gt;
        |         x+2|--------|10110010|  OCTET :10110010 en x+3 octets&lt;br /&gt;
        |         x+4|--------|--------|         (impaire)&lt;br /&gt;
        |         x+6|10001011|10110110|  MOT  :1000101110110110&lt;br /&gt;
        |           .|--------|--------|        en x+6 octets (paire)&lt;br /&gt;
       \|/          .|--------|--------|&lt;br /&gt;
        '        x+12|01101100|00000000|  L-M  :011011000000000010111010-&lt;br /&gt;
     SENS des       .|10111010|01110111|        01110111&lt;br /&gt;
     adresses       .|--------|--------|        en x+12 octets (paire)&lt;br /&gt;
    CROISSANTES     .|--------|--------|&lt;br /&gt;
    -----------  x+20|--------|-------1|  BIT  :1  Ã  l'adresse x+21 octets&lt;br /&gt;
        |           .|--------|--------|           (impaire)&lt;br /&gt;
        |           .|oct FORT| FAIBLE |&lt;br /&gt;
       \|/          .|--------| ------ |&lt;br /&gt;
        '           15        7        0&lt;br /&gt;
                     |       etc...    |&lt;br /&gt;
 Adresses PAIRES     |        |        |     Adresses IMPAIRES&lt;br /&gt;
 ---------------                             -----------------&lt;br /&gt;
                          +-------+&lt;br /&gt;
                          |MEMOIRE|&lt;br /&gt;
                          +-------+&lt;br /&gt;
&lt;br /&gt;
              Exemple d'organisation de la mâ€šmoire.&lt;br /&gt;
              -------------------------------------&lt;br /&gt;
                 (Octets,Mots,L-M,Bits fictifs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                   *** ORGANISATION DE LA MEMOIRE ***&lt;br /&gt;
                   ----------------------------------&lt;br /&gt;
&lt;br /&gt;
- On distingue: .L'espace programme, qui contient les instructions de vos&lt;br /&gt;
                 programmes codâ€šes en BINaire.&lt;br /&gt;
&lt;br /&gt;
                .L'espace donnâ€šes, qui contient les donnâ€šes du prg et les&lt;br /&gt;
                 zones de la mâ€šmoire que vous avez initalisâ€š. (en BIN)&lt;br /&gt;
&lt;br /&gt;
                .Ces 2 zones sont dans la mâ€šmoire vive (RAM), on ne peut&lt;br /&gt;
                 pas â€šcrire sur la mâ€šmoire morte (ROM) car elle contient&lt;br /&gt;
                 tous les renseignements dont l'ordi a besoin pour fonc-&lt;br /&gt;
                 tionner correctement.&lt;br /&gt;
                 La RAM est la mâ€šmoire disponible en â€šcriture au progra-&lt;br /&gt;
                 mmeur (elle peut bien sur aussi Ãªtre effacâ€še.)&lt;br /&gt;
&lt;br /&gt;
                 On dispose d'environ 512 Ko de mâ€šmoire vive sur un 520ST&lt;br /&gt;
                 (un Kilo Octet=1024 Octets.) et d'1 Mâ€šga Octet soit 1024&lt;br /&gt;
                 Ko sur un 1040ST.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                        -----------------------&lt;br /&gt;
&lt;br /&gt;
- Vous voilÃ  prÃªts Ã  prâ€šsent Ã  commencer la programmation proprement dite:&lt;br /&gt;
  retenez bien tout ce qui a â€štâ€š dit ici (notez le quelquepart si vous le&lt;br /&gt;
  jugez utile), relisez encore une fois  si la tÃªte vous tourne, car dans&lt;br /&gt;
  le prochain chapitre, les choses sâ€šrieuses commencent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     PIECHOCKI Laurent&lt;br /&gt;
     8,impasse Bellevue                           Suite dans [[pl_DEBUTS.DOC]]&lt;br /&gt;
     57980 TENTELING                                         ----------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Back to [[ASM_Tutorial]]&lt;/div&gt;</summary>
		<author><name>&gt;Zorro 2</name></author>
	</entry>
</feed>