<?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_CORRIG_1.DOC</id>
	<title>Pl CORRIG 1.DOC - 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_CORRIG_1.DOC"/>
	<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl_CORRIG_1.DOC&amp;action=history"/>
	<updated>2026-07-26T21:26:00Z</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_CORRIG_1.DOC&amp;diff=16158&amp;oldid=prev</id>
		<title>&gt;Wongck at 15:12, 12 October 2011</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl_CORRIG_1.DOC&amp;diff=16158&amp;oldid=prev"/>
		<updated>2011-10-12T15:12:59Z</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:12, 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-l913&quot;&gt;Line 913:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 913:&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_CORRIG_1.DOC&amp;diff=16157&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_CORRIG_1.DOC&amp;diff=16157&amp;oldid=prev"/>
		<updated>2009-05-02T20:42:13Z</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:42, 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-l913&quot;&gt;Line 913:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 913:&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_CORRIG_1.DOC&amp;diff=16156&amp;oldid=prev</id>
		<title>&gt;Zorro 2 at 13:40, 9 October 2006</title>
		<link rel="alternate" type="text/html" href="https://www.temlib.org/AtariForumWiki/index.php?title=Pl_CORRIG_1.DOC&amp;diff=16156&amp;oldid=prev"/>
		<updated>2006-10-09T13:40:16Z</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;
                               EXERCICES   I&lt;br /&gt;
&lt;br /&gt;
                                CORRECTIONS&lt;br /&gt;
&lt;br /&gt;
                         -------------------------&lt;br /&gt;
&lt;br /&gt;
- Les solutions des exercices proposâ€šs dans ce fichier se rapportent&lt;br /&gt;
  aux exercices nrÂ°1 du fichier : EXOS_1.DOC&lt;br /&gt;
                                  -----------&lt;br /&gt;
  Repportez vous au nrÂ° de l'exercice dont vous voulez savoir la solution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                            ------------------&lt;br /&gt;
&lt;br /&gt;
nrÂ° 1:&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
Il fallait trouvez l'erreur dans ce prg:&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
ab   move.b    #345,d0        ; -128&amp;lt;OCTET&amp;lt;128  !!&lt;br /&gt;
     add.b     #1,d0&lt;br /&gt;
     jmp       ab&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
La râ€šponse â€štait trÃ¨s simple,l'erreur se trouve Ã  la premiÃ¨re instruction,&lt;br /&gt;
en effet, on fait un 'MOVE.B  #345,d0' c.Ã .d. qu'on pose l'Octet 345 dans&lt;br /&gt;
l'Octet  de poids  faible  du registre  d0,mais  je vous  rappelle que la &lt;br /&gt;
valeur maximale que  peut prendre un octet est 128 et 345&amp;gt;128, ceci entr-&lt;br /&gt;
aine donc une erreur lors de l'assemblage. &lt;br /&gt;
Pour rectifier, il suffirait d'â€šcrire 'MOVE.W #345,d0' ou 'MOVE.L #345,d0'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
nrÂ° 2:&lt;br /&gt;
------&lt;br /&gt;
Il fallait trouver la valeur du registre de donnâ€še d3 aprÃ¨s le prg.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.l    #12,d3    ;On met le L-M=12 dans le registre d3&lt;br /&gt;
     add.l     #4,d3     ;On lui rajoute le L-M=4:  d3=12+4=16&lt;br /&gt;
     add.l     d3,d3     ;On ajoute le L-M d3 Ã  lui mÃ¨me, donc&lt;br /&gt;
                         ;d3=d3+d3=16+16=32 (sur un L-M)&lt;br /&gt;
     move.l    var,d2    ;On pose le L-M pointâ€š par 'var',soit &lt;br /&gt;
                         ;458 dans le registre de donnâ€še d2&lt;br /&gt;
     add.l     d2,d3     ;on ajoute le L-M de d2 au L-M de d3,&lt;br /&gt;
                         ;donc d3=d2+d3=458+32=490 (L-M)&lt;br /&gt;
&lt;br /&gt;
     data                ;segment data&lt;br /&gt;
&lt;br /&gt;
var  dc.l      458&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
Comme le montrent les Remarques, d3=490&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ° 3:&lt;br /&gt;
------&lt;br /&gt;
On demandait ce que contiendra le registre d5 aprÃ¨s le prg.&lt;br /&gt;
     &lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move      ici,d4    ;on pose le mot pointâ€š par 'ici' dans le mot de&lt;br /&gt;
                         ;poids faible du registre de donnâ€še d4&lt;br /&gt;
                         ;donc d4=10 (sur un mot)&lt;br /&gt;
     add       #5,d4     ;on ajoute le mot 5 au mot de poids faible de d4&lt;br /&gt;
     move      d4,la     ;On pose le mot de p.fa. de d4 (soit 15) Ã  'la' &lt;br /&gt;
     add       ici,la    ;On ajoute la valeur pointâ€še par 'ici' Ã  la&lt;br /&gt;
                         ;donnâ€še pointâ€še par 'la', 'la' pointe donc sur&lt;br /&gt;
                         ;un mot (ds.w) â€šgal Ã  10+15=25&lt;br /&gt;
     move      la,d5     ;On pose le mot pointâ€š par 'la' dans la mot &lt;br /&gt;
                         ;de p.fa. de d5.Donc d5=25&lt;br /&gt;
&lt;br /&gt;
     data &lt;br /&gt;
&lt;br /&gt;
ici  dc.w      10&lt;br /&gt;
&lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
la   ds.w      1&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
On trouve donc d5=25&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°4:&lt;br /&gt;
-----&lt;br /&gt;
Il fallait:&lt;br /&gt;
Trouvez la valeur de a4 Ã  la fin du prg en sachant que le label 'ad' est&lt;br /&gt;
situâ€š Ã  une adresse â€šgale Ã  $ff0 et qu'il pointe (dc.l) le nombre 45&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.l    #ad,a4   ;on pose l'adresse de 'ad' (L-M) dans le &lt;br /&gt;
                        ;registre d'adresse a4, donc a4=$ff0 &lt;br /&gt;
     move.l    ad,d5    ;on pose le L-M pointâ€š par 'ad', soit 45 dans&lt;br /&gt;
                        ;le registre de donnâ€še d5&lt;br /&gt;
          &lt;br /&gt;
     data&lt;br /&gt;
&lt;br /&gt;
ad   dc.l      45       ;on suppose qu'ici PC=$ff0&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
Dans ce cas prâ€šcis, a4=$ff0 (et non pas 45,revoyez vos cours!)&lt;br /&gt;
C'â€štait vraiment trÃ¨s simple.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°5:&lt;br /&gt;
-----&lt;br /&gt;
Il faut trouver la valeur de d5 et de a5 Ã  la suite de ce prg.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move      #15,d5    ;On pose le mot 15 dans le mot de p.fa. de d5&lt;br /&gt;
     move.l    #zz,a5    ;On pose l'adresse de 'zz' dans le registre &lt;br /&gt;
                         ;d'adresse a5&lt;br /&gt;
     move      zz,d5     ;On Pose le mot pointâ€š par 'zz' dans le mot de&lt;br /&gt;
                         ;p.fa. du registre de donnâ€še d5, donc d5=0.&lt;br /&gt;
     &lt;br /&gt;
     data&lt;br /&gt;
&lt;br /&gt;
zz   dc.w      0&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
Donc d5=0 (mot) et a5=adresse de 'zz' (L-M)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°6:&lt;br /&gt;
-----&lt;br /&gt;
Il fallait trouver la valeur contenue Ã  l'adresse 'out', la valeur de d0 &lt;br /&gt;
et d5 Ã  la fin de ce programme.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move      #247,d0   ;on pose le mot 247 dans le mot de p.fa. de d0&lt;br /&gt;
     move      #3,d5     ;on pose le mot 3 dans le mot de p.fa. de d5&lt;br /&gt;
&lt;br /&gt;
bbb  add       #8,d0     ;on ajoute le mot 8 au mot de p.fa. de d0&lt;br /&gt;
     move      d0,out    ;puis on pose le mot de p.fa. de d0 en 'out'&lt;br /&gt;
     dbf       d5,bbb    ;on revient en 'bbb' jusqu'Ã  ce que d5=-1&lt;br /&gt;
                         ;soit 4 fois de suite car d5=3 au dâ€špart&lt;br /&gt;
                         ;Ã  la fin de la boucle, d0=247+(8*4)=279 (mot)&lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
out  ds.b      2         ;on reserve 2 Octets (soit 1 mot) en 'out' &lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
En 'out' on trouve donc un Mot, la derniÃ¨re valeur de d0 soit 279, d5=-1&lt;br /&gt;
car sa le registre est dâ€šcrâ€šmentâ€še jusqu'Ã  ce que d5=-1.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°7:&lt;br /&gt;
----- &lt;br /&gt;
Il fallait: &lt;br /&gt;
Trouver la valeur BINAIRE du registre de donnâ€še d1 Ã  la fin de ce prg .&lt;br /&gt;
sachant que 5438=%0001010100111110&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move      #5391,d0  ;on pose le mot 5391 dans le mot de p.fa. de d0&lt;br /&gt;
     add       #47,d0    ;on lui ajoute 47, donc d0=5438 (mot)&lt;br /&gt;
&lt;br /&gt;
     move      d0,dix    ;on pose le mot de p.fa. de d0 en 'dix',&lt;br /&gt;
                         ;comme en 'dix' il y a 'ds.b' ,seul l'octet de&lt;br /&gt;
                         ;poids fort de d0 sera en 'dix',l'octet de p.fa.&lt;br /&gt;
                         ;sera en 'in' (adresse 'dix'+1).&lt;br /&gt;
     move.b    in,d1     ;on pose l'octet pointâ€š par 'in' dans l'octet&lt;br /&gt;
                         ;de poids faible de d1&lt;br /&gt;
                         ;en 'in' il y a l'octet de poids faible de d0,&lt;br /&gt;
                         ;donc d1 contiendra %00111110&lt;br /&gt;
&lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
dix  ds.b      1         ;reserve un octet en 'dix'&lt;br /&gt;
in   ds.w      47        ;reserve 47 mots en 'in'='dix'+1 &lt;br /&gt;
&lt;br /&gt;
     data&lt;br /&gt;
&lt;br /&gt;
nul  dc.w      5438      ;rien Ã  voir ici...&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a donc d1=%00111110 (octet)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°8:&lt;br /&gt;
-----&lt;br /&gt;
Que va-t-il se passer en 'gag' ?&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.l    #gag,a2        ;a2 pointe sur l'adresse de 'gag'&lt;br /&gt;
     &lt;br /&gt;
gag  move.b    #100,d1        ;on pose l'octet 100 dans l'octet de p.fa.&lt;br /&gt;
                              ;de d1&lt;br /&gt;
     jmp       (a2)           ;on saute Ã  l'adresse pointâ€še par a2 (soit&lt;br /&gt;
                              ;l'adresse de 'gag')&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le programme est donc une boucle sans fin, on pose l'octet 100 en d1&lt;br /&gt;
une infinitâ€š de fois.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°9:&lt;br /&gt;
-----&lt;br /&gt;
Quelle sera la valeur de d3 aprÃ¨s ce prg ?&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.b    #12,lab   ;on pose  l'octet 12 en 'lab'&lt;br /&gt;
     move.b    #14,lac   ;&amp;quot;   &amp;quot;       &amp;quot;    14 en 'lac'&lt;br /&gt;
     move.b    #15,lad   ;&amp;quot;   &amp;quot;       &amp;quot;    15 en 'lad'&lt;br /&gt;
&lt;br /&gt;
     move.l    #lab,a3   ;on pose l'adresse de 'lab' en a3 &lt;br /&gt;
     move.b    #1,d1     ;on met l'octet 1 dans l'octet de p.fa. de a1&lt;br /&gt;
&lt;br /&gt;
fff  move.b    (a3)+,d3  ;on prend la valeur pointâ€še par a3,on incrâ€šmente&lt;br /&gt;
                         ;a3 d'1 (.b) et on la pose dans l'octet de poids&lt;br /&gt;
                         ;faible de d3.&lt;br /&gt;
     dbf       d1,fff    ;on dâ€šcrâ€šmente d1 d'1 unitâ€š juqu'Ã  ce que d1=-1&lt;br /&gt;
                         ;,si d1 est diffâ€šrent de -1, on saute en 'fff'&lt;br /&gt;
&lt;br /&gt;
     add.b     (a3),-(a3);on ajoute l'octet pointâ€š par a3 ( on dâ€šcrâ€šmente &lt;br /&gt;
                         ;a3 de 1 (.b) ) Ã  l'octet pointâ€š par la nouvelle&lt;br /&gt;
                         ;adresse de a3.&lt;br /&gt;
     move.b    -(a3),d3  ;On dâ€šcrâ€šmente a3 d'1 (.b) et on pose la valeur&lt;br /&gt;
                         ;ainsi pointâ€še dans l'octet de p.fa. de d3&lt;br /&gt;
     add.b     (a3),d3   ;On ajoute la valeur pointâ€še par a3 Ã  d3 (octet)&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
lab  ds.w      1         ;on râ€šserve 1 L-M&lt;br /&gt;
lac  ds.b      1         ;on    &amp;quot;    1 octet&lt;br /&gt;
lad  ds.w      5         ;on râ€šserve 5 mots&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En 'fff',la premiÃ¨re fois:d1=1, a3 pointe sur 'lab'.&lt;br /&gt;
&lt;br /&gt;
Avec,'move.b (a3)+,d3', on prend l'octet en 'lab',on incrâ€šmente a3 d'une&lt;br /&gt;
unitâ€š (.b) donc a3 pointe maintenant sur lab+1 et on pose l'octet dans &lt;br /&gt;
l'octet de poids faible de d3 ,donc d3=12 (on a posâ€š l'octet 12 en 'lab').&lt;br /&gt;
&lt;br /&gt;
Puis on a:&lt;br /&gt;
 &lt;br /&gt;
'dbf  d1,fff' : d1=d1-1=0 comme 0 est diffâ€šrent de -1, on saute en 'fff'.&lt;br /&gt;
&lt;br /&gt;
Ã  nouveau: &lt;br /&gt;
&lt;br /&gt;
'move.b (a3)+,d3':on prend l'octet pointâ€š par a3 (ici a3 pointe sur le se-&lt;br /&gt;
cond octet de 'lab' soit 0 puisqu'ici rien n'a â€štâ€š initialisâ€š...)et on le&lt;br /&gt;
pose dans d3 aprÃ¨s avoir incrâ€šmentâ€š a3 d'une unitâ€š :d3=0 et a3 pointe sur&lt;br /&gt;
'lab'+2='lac'.&lt;br /&gt;
On arrive Ã  'dbf d1,fff',Ã  nouveau,d1=d1-1=-1,cette fois ci,on ne va plus&lt;br /&gt;
en 'fff' car d1=-1:on continue.&lt;br /&gt;
&lt;br /&gt;
Puis arrive 'add.b  (a3),-(a3)',a3 pointe sur 'lac' ('lab'+2),on prend la&lt;br /&gt;
donnâ€še (l'octet) pointâ€še par a3 (qui vaut 14), on dâ€šcrâ€šmente a3 d'une uni-&lt;br /&gt;
tâ€š (.b) et on l'ajoute Ã  la nouvelle valeur ainsi pointâ€še par a3 (soit 0)&lt;br /&gt;
&lt;br /&gt;
finalement:&lt;br /&gt;
&lt;br /&gt;
Avec 'move.b  -(a3),d3' ,on dâ€šcrâ€šmente a3 d'une unitâ€š (donc a3 pointe sur &lt;br /&gt;
'lab') et on pose la donnâ€še ainsi pointâ€še dans l'octet de poids faible de&lt;br /&gt;
d3, donc d3=12.&lt;br /&gt;
&lt;br /&gt;
Pour finir, avec 'add.b (a3),d3', on ajoute Ã  d3 la donnâ€še pointâ€še par a3,&lt;br /&gt;
comme d3 pointe sur 'lab', on a: d3=d3+12=12+12=24&lt;br /&gt;
&lt;br /&gt;
Finalement:d3=24.et a3 pointe sur 'lab' ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
nrÂ°10:&lt;br /&gt;
------&lt;br /&gt;
&lt;br /&gt;
Quelle seront les valeurs de d0,d1,d2,d3,a0 aprÃ¨s ce prg ?&lt;br /&gt;
Facile...&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.b    #10,a     ;pose l'octet 10 en a&lt;br /&gt;
     move.b    #11,b     ;             11 en b&lt;br /&gt;
     move.b    #12,c     ;             12 en c &lt;br /&gt;
     move.b    #13,d     ;             13 en d &lt;br /&gt;
     move.b    #98,e     ;             98 en e&lt;br /&gt;
&lt;br /&gt;
     move.l    #deb,a0   ;pose l'adresse de 'deb' dans a0&lt;br /&gt;
                         ;:a0 pointe sur 'deb'&lt;br /&gt;
     move.b    (a0)+,d0  ;pose l'octet pointâ€š par a0 :0 car rien n'est&lt;br /&gt;
                         ;initialisâ€š en 'deb',(incrâ€šmente a0 d'une uni-&lt;br /&gt;
                         ;tâ€š (.b) ), dans d0, donc:&lt;br /&gt;
                         ;d0=0 (octet) ,a0=a0+1, donc a0 pointe sur 'a'.&lt;br /&gt;
     move.b    (a0)+,d1  ;idem pour d1:d1=10,a0 pointe sur 'a'+1='b'&lt;br /&gt;
     move.b    (a0)+,d2  ;     pour d2:d2=11,a0 pointe sur 'b'+1='c'&lt;br /&gt;
     move.b    (a0),d3   ;Pose l'octet pointâ€š par a0 dans d3:&lt;br /&gt;
                         ;a0 pointe sur 'c', donc d3=12 &lt;br /&gt;
     move.b    -(a0),d4  ;dâ€šcrâ€šmente a0 d'une unitâ€š et pose l'octet&lt;br /&gt;
                         ;ainsi pointâ€š par a0 dans l'octet de poids&lt;br /&gt;
                         ;faible de d4:&lt;br /&gt;
                         ;comme a0 pointait sur 'c', on a maintenant:&lt;br /&gt;
                         ;a0='c'-1='b', donc d4=11 (on a mis 11 en 'b')&lt;br /&gt;
&lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
deb  ds.b      1    ;râ€šserve 1 octet en deb&lt;br /&gt;
a    ds.b      1    ;en a&lt;br /&gt;
b    ds.b      1    ;en b&lt;br /&gt;
c    ds.b      1    ;en c&lt;br /&gt;
d    ds.b      1    ;en d&lt;br /&gt;
e    ds.b      1    ;en e&lt;br /&gt;
f    ds.l      4    ;râ€šserve en L-M en f&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
Donc: d0=0,d1=10,d2,11,d3=12,d4=11, a0 pointe sur 'b'.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°11:&lt;br /&gt;
------&lt;br /&gt;
On devait trouver la valeur de a4 et d0,d1 aprÃ¨s ce prg.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.b    #3,d0     ;pose l'octet 3 dans le registre d0&lt;br /&gt;
     move.l    #pil,a4   ;pose l'adresse de 'pil' dans a4&lt;br /&gt;
&lt;br /&gt;
rrr  move.b    -(a4),d1  ;dâ€šcrâ€šmente a4 d'une unitâ€š (.b) et pose l'octet&lt;br /&gt;
                         ;pointâ€š par a4 dans l'octet de p.faible de d1&lt;br /&gt;
     add.b     #4,d1     ;ajoute l'octet 4 Ã  l'oct de p faible de d1&lt;br /&gt;
     dbf       d0,rrr    ;boucle jusqu'Ã  ce que d0=-1&lt;br /&gt;
&lt;br /&gt;
     data&lt;br /&gt;
&lt;br /&gt;
     dc.b      1,2,3,4,5,6,7,8,9   ;9 octets sont stockâ€šs ici&lt;br /&gt;
pil  dc.b      245                 ;octet 245 Ã  l'adresse 'pil'&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ã  la fin du prg,d0=-1, c'est le compteur de boucle...&lt;br /&gt;
&lt;br /&gt;
la boucle:&lt;br /&gt;
&lt;br /&gt;
1Â° passage: d0=3,a4 pointe sur 'pil'&lt;br /&gt;
avec 'move.b -(a4),d1', on dâ€šcrâ€šmente a4 d'1 unitâ€š (car .b),on prend &lt;br /&gt;
l'octet pointâ€š par a4 et on le pose dans l'octet de p.faible de d1:&lt;br /&gt;
a4='pil'-1 donc a4 pointe sur l'octet '9',d1=9+4=13 car on 'add.b #4,d1'&lt;br /&gt;
On dâ€šcrâ€šmente d0 et on retourne en 'rrr' car d0=2&lt;br /&gt;
&lt;br /&gt;
2Â° passage:d0=2,a4 pointe sur l'octet '9'&lt;br /&gt;
La mÃ¨me opâ€šration que prâ€šcâ€šdement s'effectue:&lt;br /&gt;
a4 pointe sur l'octet '8',d1=8+4=12 (octet),d0=2-1=1&lt;br /&gt;
&lt;br /&gt;
3Â° passage:d0=1,a4 pointe sur l'octet '8'&lt;br /&gt;
de mÃ¨me, on obtient:&lt;br /&gt;
a4 pointe sur l'octet '7',d1=7+4=11 (octet),d0=1-1=0&lt;br /&gt;
&lt;br /&gt;
4Â° passage:d0=0,a4 pointe sur l'octet '7'&lt;br /&gt;
de mÃ¨me, on a:&lt;br /&gt;
a4 pointe sur l'octet '6',d1=6+4=10 (octet),d0=0-1=-1 donc on sort de&lt;br /&gt;
la boucle et finalement:&lt;br /&gt;
&lt;br /&gt;
d0=-1,d1=10,a4 pointe sur l'octet '6'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°12:&lt;br /&gt;
------&lt;br /&gt;
Trouvons ce qu'il y a en 'out' et la valeur de d2.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
a    equ       3    ;on asigne 3 Ã  'a'&lt;br /&gt;
b    equ       5    ;          5 Ã  'b'&lt;br /&gt;
&lt;br /&gt;
     move.b    a,d2      ;on pose l'octet pointâ€š par 'a' dans l'octet de&lt;br /&gt;
                         ;poids faible de d2,donc d2=3&lt;br /&gt;
     add.b     b,d2      ;on lui ajoute l'octet pointâ€š par 'b', donc&lt;br /&gt;
                         ;d2=d2+5=8 (octet)&lt;br /&gt;
&lt;br /&gt;
     move.l    #g,a5     ;on pose l'adresse de 'g' dans a5&lt;br /&gt;
     move.b    d2,(a5)   ;on pose l'octet de poids faible de d2 Ã  &lt;br /&gt;
                         ;l'adresse pointâ€še par a5 (soit en 'g') &lt;br /&gt;
     move.b    d2,-(a5)  ;on pose l'octet de p.fa. de d2 (on dâ€šcrâ€šmente&lt;br /&gt;
                         ;a5 d'une unitâ€š ) Ã  la nouvelle  adresse de a5&lt;br /&gt;
                         ;(ici, a5 pointe sur 'out',donc on trouvera d2&lt;br /&gt;
                         ;soit l'octet 8 en 'out')&lt;br /&gt;
     move.b    (a5)+,d2  ;on pose l'octet pointâ€š par a5 (soit l'octet 8)&lt;br /&gt;
                         ;(on incrâ€šmente a5 d'1 unitâ€š) dans l'octet de&lt;br /&gt;
                         ;poids faible de d2:d2=8 et a5 pointe sur 'g'&lt;br /&gt;
     move.b    (a5),d2   ;on pose l'octet pointâ€š par a5 dans l'octet de&lt;br /&gt;
                         ;p.fa. de d2:  a5 pointe sur 'g',en 'g' il y a&lt;br /&gt;
                         ;l'octet 8 donc d2=8 encore une fois. &lt;br /&gt;
&lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
out  ds.b      1&lt;br /&gt;
g    ds.b      4&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
conclusion:en 'out' il y a l'octet 8 et d2=8 (octet)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°13:&lt;br /&gt;
------&lt;br /&gt;
Il faut trouver la valeur de d1,d2,d3,d4 et a0.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.l    #out,a0   ;on pose l'adresse de 'out' dans a0&lt;br /&gt;
     move.w    #2,d3     ;on pose le mot '2' dans d3&lt;br /&gt;
     move.w    (a0),d1   ;on pose le mot pointâ€š par a0 (soit 15) dans &lt;br /&gt;
                         ;le mot de poids faible de d1:d1=15 (a0='out')&lt;br /&gt;
     move.w    -4(a0),d2 ;on prend le mot pointâ€š par a0-4 (mode d(an) )&lt;br /&gt;
                         ;et on le pose dans le mot de poids faible de &lt;br /&gt;
                         ;d2:donc d2=12 (a0='out')&lt;br /&gt;
&lt;br /&gt;
     move.w    -4(a0,d3),d3   ;on prend le mot pointâ€š par  'a0'+d3-4&lt;br /&gt;
                              ;(mode d(an,rn) ) soit 'a0'-2 et on le&lt;br /&gt;
                              ;pose dans le mot de p.faible de d3:&lt;br /&gt;
                              ;d3=2356 (a0='out')  &lt;br /&gt;
     move.w    -(a0),d4       ;on dâ€šcrâ€šmente a0 de 2 unitâ€šs (.w) donc a0&lt;br /&gt;
                              ;pointe sur 2356 Ã  prâ€šsent et on pose ce&lt;br /&gt;
                              ;mot dans le mot de poids faible de d4:&lt;br /&gt;
                              ;d4=2356 et a0 pointe sur le mot 2356&lt;br /&gt;
     data&lt;br /&gt;
&lt;br /&gt;
     dc.l      1&lt;br /&gt;
     dc.w      12&lt;br /&gt;
     dc.w      2356&lt;br /&gt;
out  dc.b      15&lt;br /&gt;
&lt;br /&gt;
     end &lt;br /&gt;
&lt;br /&gt;
Conclusion:d1=15,d2=12,d3=2356,d4=2356 et a0 pointe sur le mot 2356&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°14:&lt;br /&gt;
------&lt;br /&gt;
On demandait:&lt;br /&gt;
Quelles sont les diffâ€šrentes valeurs prises par a0 au cours de ce prg ?&lt;br /&gt;
Quelle est la valeur finale contenue en 'res' ?&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
     &lt;br /&gt;
     move.l    #a,a5     ;on pose l'adresse de 'a' dans a5&lt;br /&gt;
     move.l    #2,d2     ;on pose le L-M '2' dans d2 &lt;br /&gt;
&lt;br /&gt;
ttt  move.b    #1,(a5)+  ;on ajoute l'octet 1 Ã  l'adresse pointâ€še par a5&lt;br /&gt;
                         ;puis on incrâ€šmente a5 d'une unitâ€š (.b)&lt;br /&gt;
     dbf       d2,ttt    ;boucle&lt;br /&gt;
     move.b    #5,(a5)   ;on pose l'octet 5 Ã  l'adresse pointâ€še par a5&lt;br /&gt;
&lt;br /&gt;
     move.l    #vec,a1   ;on pose l'adresse de 'vec' dans a1&lt;br /&gt;
     move.b    #3,d0     ;on pose l'octet 3 dans l'octet de poids faible&lt;br /&gt;
                         ;de d0&lt;br /&gt;
     move.b    #0,d2     ;on pose l'octet 0 dans l'octet de poids faible&lt;br /&gt;
                         ;de d2&lt;br /&gt;
&lt;br /&gt;
cde  move.l    0(a1,d2),a0    ;on pose le L-M pointâ€š par 'a1'+d2 dans a0&lt;br /&gt;
     add.l     #4,d2          ;on ajoute le L-M 4 Ã  d2&lt;br /&gt;
     move.b    (a0),res       ;on pose l'octet pointâ€š par a0 en 'res'&lt;br /&gt;
     dbf       d0,cde         ;boucle&lt;br /&gt;
&lt;br /&gt;
     data&lt;br /&gt;
&lt;br /&gt;
vec  dc.l      a,b,c,d        ;4 L-M contenant les adresses de 'a','b'&lt;br /&gt;
                              ;,'c','d'&lt;br /&gt;
&lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
a    ds.b      1    ;ici on râ€šserve les octets&lt;br /&gt;
b    ds.b      1&lt;br /&gt;
c    ds.b      1&lt;br /&gt;
d    ds.b      1&lt;br /&gt;
res  ds.b      1&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1Â° boucle:en ttt&lt;br /&gt;
---------&lt;br /&gt;
1Â° passage:d2=2,a5 pointe sur 'a'&lt;br /&gt;
----------&lt;br /&gt;
On pose l'octet '1' en 'a' puis on incrâ€šmente a5 d'une unitâ€š, a5 pointe&lt;br /&gt;
donc sur 'b' maintenant et on repart en 'ttt' aprÃ¨s avoir dâ€šcrâ€šmentâ€š d2&lt;br /&gt;
&lt;br /&gt;
2Â° passage:d2=1,a5 pointe sur 'b'&lt;br /&gt;
----------&lt;br /&gt;
On pose l'octet '1' en 'b' puis on incrâ€šmente a5 d'une unitâ€š, a5 pointe&lt;br /&gt;
donc sur 'c' maintenant et on repart en 'ttt' aprÃ¨s avoir dâ€šcrâ€šmentâ€š d2&lt;br /&gt;
&lt;br /&gt;
3Â° passage:d2=0,a5 pointe sur 'c'&lt;br /&gt;
----------&lt;br /&gt;
On pose l'octet '1' en 'c' puis on incrâ€šmente a5 d'une unitâ€š, a5 pointe&lt;br /&gt;
donc sur 'd' maintenant,puis avec 'dbf', on dâ€šcrâ€šmente d2 qui vaut main-&lt;br /&gt;
tenant -1 c.Ã .d. qu'on sort de la boucle.&lt;br /&gt;
&lt;br /&gt;
avec 'move.b  #5,(a5)', on pose l'octet '5' Ã  l'adresse pointâ€še par a5,&lt;br /&gt;
soit 'd'&lt;br /&gt;
&lt;br /&gt;
Ã  l'issue de cette boucle,on trouve donc l'octet '1' en 'a','b','c' et&lt;br /&gt;
l'octet '5' en 'd'&lt;br /&gt;
&lt;br /&gt;
puis arrive la 2Â° boucle en 'cde':&lt;br /&gt;
               ---------&lt;br /&gt;
1Â° passage:d2=0,d0=3,a1 pointe 'vec'&lt;br /&gt;
-----------&lt;br /&gt;
On pose le L-M pointâ€š par 0+'vec'+d2 soit 'vec'+0 en a0:a0 vaut donc 'a',&lt;br /&gt;
puis on ajoute '4' Ã  d2,on pose l'octet pointâ€š par a0 (donc en 'a') en&lt;br /&gt;
'res' avec 'move.b (a0),res'.En 'a' se trouve l'octet '1', donc cela&lt;br /&gt;
revient Ã  poser l'octet '1' en res.&lt;br /&gt;
Avec 'dbf  d0,cde',on dâ€šcrâ€šmente d0 et on revient en 'cde'&lt;br /&gt;
&lt;br /&gt;
2Â° passage:d2=4,d0=2,a1 pointe 'vec',a0 pointe 'a'&lt;br /&gt;
----------&lt;br /&gt;
On pose le L-M pointâ€š par 0+'vec'+d2 soit 'vec'+4 en a0:a0 vaut donc 'b',&lt;br /&gt;
puis on ajoute '4' Ã  d2,on pose l'octet pointâ€š par a0 (donc en 'b') en&lt;br /&gt;
'res' avec 'move.b (a0),res'.En 'b' se trouve l'octet '1', donc cela&lt;br /&gt;
revient Ã  poser l'octet '1' en res.&lt;br /&gt;
Avec 'dbf d0,cde',on dâ€šcrâ€šmente d0 et on revient en 'cde'&lt;br /&gt;
&lt;br /&gt;
3Â° passage:d2=8,d0=1,a1 pointe 'vec',a0 pointe 'b'&lt;br /&gt;
----------&lt;br /&gt;
On pose le L-M pointâ€š par 0+'vec'+d2 soit 'vec'+8 en a0:a0 vaut donc 'c',&lt;br /&gt;
puis on ajoute '4' Ã  d2,on pose l'octet pointâ€š par a0 (donc en 'c') en&lt;br /&gt;
'res' avec 'move.b (a0),res'.En 'c' se trouve l'octet '1', donc cela&lt;br /&gt;
revient Ã  poser l'octet '1' en res.&lt;br /&gt;
Avec 'dbf d0,cde',on dâ€šcrâ€šmente d0 et on revient en 'cde'&lt;br /&gt;
&lt;br /&gt;
4Â° passage:d2=12,d0=0,a1 pointe 'vec',a0 pointe 'c'&lt;br /&gt;
----------&lt;br /&gt;
On pose le L-M pointâ€š par 0+'vec'+d2 soit 'vec'+8 en a0:a0 vaut donc 'd',&lt;br /&gt;
puis on ajoute '4' Ã  d2,on pose l'octet pointâ€š par a0 (donc en 'd') en&lt;br /&gt;
'res' avec 'move.b (a0),res'.En 'd' se trouve l'octet '5',donc cela&lt;br /&gt;
revient Ã  poser l'octet '5' en res.&lt;br /&gt;
Avec 'dbf d0,cde',on dâ€šcrâ€šmente d0:d0=-1,on sort de la boucle.&lt;br /&gt;
&lt;br /&gt;
En 'res' on trouve donc l'octet '5'.A la fin:a0='d'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
nrÂ°15:&lt;br /&gt;
------&lt;br /&gt;
Il faut trouver la valeur pointâ€še par ret, Ã  la fin de ce prg.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.l    #5,a      ;on pose le L-M 5 en 'a'&lt;br /&gt;
     move.l    #a,a0     ;on pose l'adresse de 'a' dans a0&lt;br /&gt;
&lt;br /&gt;
     move.l    (a0)+,d2  ;on pose le L-M pointâ€š par a0 (soit 5)(on incrâ€š-&lt;br /&gt;
                         ;mente a0 de 4 unitâ€šs) dans d2&lt;br /&gt;
     move.l    d2,ret    ;on pose le L-M contenu dans d2 en 'ret'&lt;br /&gt;
&lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
a    ds.l      2    ;on râ€šserve 2 L-M en 'a' &lt;br /&gt;
ret  ds.l      1    ;on reserve un L-M en 'ret'&lt;br /&gt;
     &lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
On trouve donc le L-M '5' Ã  l'adresse 'ret'. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nÂ°16:&lt;br /&gt;
-----&lt;br /&gt;
Trouvez la valeur de d0 et a0 aprÃ¨s ce prg.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.b    #3,d1          ;on pose l'octet 3 dans l'octet de poids&lt;br /&gt;
                              ;faible de d1&lt;br /&gt;
     move.b    #a,a0          ;on pose l'adresse de 'a' dans a0&lt;br /&gt;
&lt;br /&gt;
mno  move.b    1(a0,d1),d0    ;on pose l'octet pointâ€š par 1+'a0'+d1 dans&lt;br /&gt;
                              ;l'octet de poids faile de d0&lt;br /&gt;
     add.b     #14,d0         ;on ajoute l'octet 14 Ã  l'octet de poids&lt;br /&gt;
                              ;faible de d0&lt;br /&gt;
     add.b     a,d0           ;On ajoute l'octet pointâ€š par 'a',soit 0&lt;br /&gt;
                              ;Ã  l'octet de poids faible de d0&lt;br /&gt;
     dbf       d1,mno         ;boucle  (4 fois)&lt;br /&gt;
&lt;br /&gt;
     data&lt;br /&gt;
&lt;br /&gt;
a    dc.b      0,5,6,7,8,9&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
1Â° passage Ã  la boucle mno:d1=3,a0 pointe 'a',d0=0&lt;br /&gt;
----------&lt;br /&gt;
On pose l'octet pointâ€š par 1+'a'+d1 soit 'a'+4 (donc l'octet '8') dans&lt;br /&gt;
d0.On lui ajoute l'octet 14 et l'octet 0:d0=8+14+0=22&lt;br /&gt;
Puis on dâ€šcrâ€šmente d1 le compteur de boucle et on retourne en 'mno'&lt;br /&gt;
&lt;br /&gt;
2Â° passage:d1=2,a0 pointe 'a',d0=22&lt;br /&gt;
----------&lt;br /&gt;
On pose l'octet pointâ€š par 1+'a'+d1 soit 'a'+3 (donc l'octet '7') dans&lt;br /&gt;
d0.On lui ajoute l'octet 14 et l'octet 0:d0=7+14+0=21&lt;br /&gt;
Puis on dâ€šcrâ€šmente d1 le compteur de boucle et on retourne en 'mno'&lt;br /&gt;
&lt;br /&gt;
3Â° passage:d1=1,a0 pointe 'a',d0=21&lt;br /&gt;
----------&lt;br /&gt;
On pose l'octet pointâ€š par 1+'a'+d1 soit 'a'+2 (donc l'octet '6') dans&lt;br /&gt;
d0.On lui ajoute l'octet 14 et l'octet 0:d0=6+14+0=20&lt;br /&gt;
Puis on dâ€šcrâ€šmente d1 le compteur de boucle et on retourne en 'mno'&lt;br /&gt;
&lt;br /&gt;
4Â° passage:d1=0,a0 pointe 'a',d0=20&lt;br /&gt;
----------&lt;br /&gt;
On pose l'octet pointâ€š par 1+'a'+d1 soit 'a'+1 (donc l'octet '5') dans&lt;br /&gt;
d0.On lui rajoute l'octet 14 et l'octet 0:d0=5+14+0=19&lt;br /&gt;
Puis on dâ€šcrâ€šmente d1 le compteur de boucle=d1=-1, on sort de la boucle&lt;br /&gt;
&lt;br /&gt;
On a finalement:&lt;br /&gt;
&lt;br /&gt;
d0=19 et a0 qui pointe l'adresse de 'a'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
nrÂ°17: &lt;br /&gt;
------&lt;br /&gt;
Trouvez la valeur de d3 aprÃ¨s ce prg.&lt;br /&gt;
&lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.l    #a,a0          ;on pose l'adresse de 'a' dans a0&lt;br /&gt;
     move.b    #5,(a0)+       ;on pose l'octet 5 Ã  l'adresse pointâ€še par&lt;br /&gt;
                              ;a0 et on incrâ€šmente a0 d'une unitâ€š&lt;br /&gt;
                              ;on a donc posâ€š l'octet 5 en 'a'&lt;br /&gt;
     move.b    #6,(a0)+       ;on pose l'octet 6 Ã  l'adresse pointâ€še par&lt;br /&gt;
                              ;a0 et on incrâ€šmente a0 d'une unitâ€š&lt;br /&gt;
                              ;on a donc posâ€š l'octet 6 dans 'a'+1&lt;br /&gt;
     move.b    -(a0),d2       ;on dâ€šcrâ€šmente a0 d'une unitâ€š et on pose&lt;br /&gt;
                              ;l'octet ainsi pointâ€š par a0 dans l'octet&lt;br /&gt;
                              ;de poids faible de d2&lt;br /&gt;
                              ;on a donc posâ€š l'octet de 'a'+1+1-1 soit&lt;br /&gt;
                              ;'a'+1 ou l'octet 6 dans d3&lt;br /&gt;
     move.l    #a,a0          ;on pose l'adresse de 'a' dans a0&lt;br /&gt;
     move.b    1(a0),d3       ;on pose l'octet en 'a'+1 dans l'octet de&lt;br /&gt;
                              ;poids faible de d3&lt;br /&gt;
                              ;soit l'octet 6 dans d3&lt;br /&gt;
     add.b     d2,d3          ;on ajoute les 2 octets de d2 et d3 ,le&lt;br /&gt;
                              ;râ€šsultat est dans d3:d3=6+6=12&lt;br /&gt;
&lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
a    ds.w      1              ;on râ€šserve 1 mot en 'a'&lt;br /&gt;
     ds.b      1              ;on râ€šserve 1 octet en 'a'+2&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
On a donc d3=12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°18:&lt;br /&gt;
------&lt;br /&gt;
Il faut trouver ce qui se passe en 'stp', et ce que contient 'res' ?&lt;br /&gt;
   &lt;br /&gt;
     text&lt;br /&gt;
&lt;br /&gt;
     move.w    #5,d3     ;on pose le mot 5 dans le mot de poids faible&lt;br /&gt;
                         ;de d3&lt;br /&gt;
     add.b     #6,d2     ;on ajoute l'octet 6 Ã  l'octet de poids faible&lt;br /&gt;
                         ;de d2 donc d2=0+6=6&lt;br /&gt;
     add.b     d2,d3     ;on ajoute les octets de poids faibles de d2 et&lt;br /&gt;
                         ;d3, le râ€šsultat est dans d3:d3=11&lt;br /&gt;
     move.l    #ad,a0    ;on pose l'adresse de 'ad' dans a0&lt;br /&gt;
&lt;br /&gt;
stp  jmp       10(a0)    ;on saute Ã  l'adresse a0+10 (mode d(an) ) soit&lt;br /&gt;
                         ;'ad'+10      &lt;br /&gt;
 &lt;br /&gt;
ad   move.l    #5,res    ;en 'ad',on trouve une instruction d'une taille&lt;br /&gt;
                         ;de 10 octets (4 pour '.l', +4 pour le mot '5',&lt;br /&gt;
                         ;+2 pour les mots d'extension=10 octets)&lt;br /&gt;
     move.b    d3,res    ;on saute donc jusqu'ici et on met l'octet de&lt;br /&gt;
                         ;poids faible de d3 en 'res'&lt;br /&gt;
    &lt;br /&gt;
     bss&lt;br /&gt;
&lt;br /&gt;
res  ds.b      1&lt;br /&gt;
&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
En 'stp' on saute donc l'instruction situâ€še en 'ad' et en 'res' on trouve&lt;br /&gt;
l'octet 11&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
nrÂ°19:&lt;br /&gt;
------&lt;br /&gt;
Maintenant les questions Ã  râ€šponses rapides:&lt;br /&gt;
&lt;br /&gt;
a) Si j'â€šcris 'MOVE.W   #0,d0', que se passera-t-il au niveau du CCR ?&lt;br /&gt;
   Et si j'â€šcris ensuite 'ADD.W   #-2,d0'  ?&lt;br /&gt;
&lt;br /&gt;
 Avec 'move.w  #0,d0', on pose le mot 0 dans le mot de poids faible de&lt;br /&gt;
 d0, ceci a pour effet de mettre le bit 'Z' (comme Zâ€šro) du CCR Ã  1.&lt;br /&gt;
&lt;br /&gt;
 Avec 'add.w  #-2,d0', on pose le mot -2 dans le mot de poids faible de&lt;br /&gt;
 d0, ceci a pour effet de mettre le bit 'N' (comme Nâ€šgatif) du CCR Ã  1&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
b) Peut-on placer un OCTET Ã  une adresse impaire ?&lt;br /&gt;
 &lt;br /&gt;
   Oui!&lt;br /&gt;
   C'est aussi possible avec un Bit, mais pas avec un Mot ou un Long Mot&lt;br /&gt;
   (cf le cours...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
c) Par combien de chiffres est codâ€š un L-M en HEXADECIMAL ?&lt;br /&gt;
&lt;br /&gt;
   Par 8 chiffres Hexa. (cf le cours)     &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
d) Peut-on se servir du PC pour y ranger un chiffre comme avec un registre&lt;br /&gt;
   de donnâ€še ou d'adresse ? (Je vous rappelle que c'est un registre).&lt;br /&gt;
   Si oui comment ?&lt;br /&gt;
&lt;br /&gt;
   FAUX !!&lt;br /&gt;
   Le PC est un registre c'est vrai, mais il vous est impossible d'y &lt;br /&gt;
   placer une donnâ€še.Le PC n'est changâ€š que par les instructions de&lt;br /&gt;
   saut et Ã  chaque fois qu'une instruction est effectuâ€še.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
e) La directive 'END' met fin au programme et permet le retour au DESKTOP,&lt;br /&gt;
   Vrai ou Faux ? Argumentez.&lt;br /&gt;
 &lt;br /&gt;
   FAUX !!&lt;br /&gt;
   Elle indique seulement Ã  l'assembleur que le listing est terminâ€š.&lt;br /&gt;
   Pour revenir au DESKTOP (ou Bureau GEM) il faut employer une ins-&lt;br /&gt;
   truction du GEMDOS (nous verrons comment en dâ€štail)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
f) Une macro instruction est un sous-programme appellâ€š par le Linker Ã &lt;br /&gt;
   chaque fois qu'il rencontre son nom dans le code objet.&lt;br /&gt;
   Vrai ou Faux ? Expliquez.&lt;br /&gt;
&lt;br /&gt;
   FAUX !!&lt;br /&gt;
   Revoyez le cours, tout y est expliquâ€š en dâ€štail...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
g) On peut utiliser n'importe quel mode d'adressage pour les opâ€šrandes des&lt;br /&gt;
   instructions du 68000.&lt;br /&gt;
   Vrai ou Faux ? &lt;br /&gt;
&lt;br /&gt;
   FAUX !!&lt;br /&gt;
   Les instructions n'admettent que certains modes d'adressage pour leurs&lt;br /&gt;
   opâ€šrandes source et leurs opâ€šrandes destination.&lt;br /&gt;
   Il faudra donc que je vous indique pour chaque instruction les diffâ€š-&lt;br /&gt;
   rents modes d'adressage acceptâ€šs pour les opâ€šrandes.&lt;br /&gt;
&lt;br /&gt;
   Par exemple:Move (an)+,d(pc,rn) sera impossible...&lt;br /&gt;
   Nous verrons tout cela en dâ€štail lorsque je commenterai les diffâ€š-&lt;br /&gt;
   rentes instructions du 68000.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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&lt;br /&gt;
57980 TENTELING&lt;br /&gt;
&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>