<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://haypo.alwaysdata.net:443/wiki/skins/common/feed.css?63"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://haypo.alwaysdata.net:443/wiki/index.php?action=history&amp;feed=atom&amp;title=Vocabulaire_de_l%27assembleur_Intel_x86</id>
		<title>Vocabulaire de l'assembleur Intel x86 - Historique des versions</title>
		<link rel="self" type="application/atom+xml" href="http://haypo.alwaysdata.net:443/wiki/index.php?action=history&amp;feed=atom&amp;title=Vocabulaire_de_l%27assembleur_Intel_x86"/>
		<link rel="alternate" type="text/html" href="http://haypo.alwaysdata.net:443/wiki/index.php?title=Vocabulaire_de_l%27assembleur_Intel_x86&amp;action=history"/>
		<updated>2026-06-16T11:11:44Z</updated>
		<subtitle>Historique pour cette page sur le wiki</subtitle>
		<generator>MediaWiki 1.10.1</generator>

	<entry>
		<id>http://haypo.alwaysdata.net:443/wiki/index.php?title=Vocabulaire_de_l%27assembleur_Intel_x86&amp;diff=6479&amp;oldid=prev</id>
		<title>Haypo: /* Interruption */</title>
		<link rel="alternate" type="text/html" href="http://haypo.alwaysdata.net:443/wiki/index.php?title=Vocabulaire_de_l%27assembleur_Intel_x86&amp;diff=6479&amp;oldid=prev"/>
				<updated>2007-09-04T21:07:03Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Interruption&lt;/span&gt;&lt;/p&gt;

			&lt;table border='0' width='98%' cellpadding='0' cellspacing='4' style=&quot;background-color: white;&quot;&gt;
			&lt;tr&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan='2' width='50%' align='center' style=&quot;background-color: white;&quot;&gt;Version du 4 septembre 2007 à 21:07&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 80&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;
&lt;td colspan=&quot;2&quot; align=&quot;left&quot;&gt;&lt;strong&gt;Ligne 80&amp;nbsp;:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;== Interruption ==&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;== Interruption ==&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; font-size: smaller;&quot;&gt;Une '''interruption''' est un action qui va appeler une fonction lorsqu'elle est &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;dÃ©clanchÃ©e&lt;/del&gt;. Une interruption peut Ãªtre matÃ©rielle (arrivÃ©e d'une touche du clavier par exemple) ou logicielle (division par zÃ©ro). Il y en a 256 au maximum, et les premiÃ¨res sont intÃ©grÃ©s dans le BIOS (programme lancÃ© au dÃ©marrage de l'ordinateur qui gÃ¨re le matÃ©riel : disque dur, accÃ¨s mÃ©moire, ...) comme les interruptions de la carte vidÃ©o ou le clavier. Certaines sont appelÃ©es Ã  une frÃ©quence constante : l'interruption 1Ch par exemple qui est un compteur qui incrÃ©mente une valeur 18.6 fois/seconde; d'autres sont appelÃ©es uniquement si on a besoin d'elle : l'interruption 09h du clavier est appelÃ©e Ã  chaque pression ou relachement d'une touche.&lt;/td&gt;&lt;td&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; font-size: smaller;&quot;&gt;Une '''interruption''' est un action qui va appeler une fonction lorsqu'elle est &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;dÃ©clenchÃ©e&lt;/ins&gt;. Une interruption peut Ãªtre matÃ©rielle (arrivÃ©e d'une touche du clavier par exemple) ou logicielle (division par zÃ©ro). Il y en a 256 au maximum, et les premiÃ¨res sont intÃ©grÃ©s dans le BIOS (programme lancÃ© au dÃ©marrage de l'ordinateur qui gÃ¨re le matÃ©riel : disque dur, accÃ¨s mÃ©moire, ...) comme les interruptions de la carte vidÃ©o ou le clavier. Certaines sont appelÃ©es Ã  une frÃ©quence constante : l'interruption 1Ch par exemple qui est un compteur qui incrÃ©mente une valeur 18.6 fois/seconde; d'autres sont appelÃ©es uniquement si on a besoin d'elle : l'interruption 09h du clavier est appelÃ©e Ã  chaque pression ou relachement d'une touche.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;Consultez la [[Liste des interruptions Intel x86|liste complÃ¨te des interruptions]].&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; font-size: smaller;&quot;&gt;Consultez la [[Liste des interruptions Intel x86|liste complÃ¨te des interruptions]].&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Haypo</name></author>	</entry>

	<entry>
		<id>http://haypo.alwaysdata.net:443/wiki/index.php?title=Vocabulaire_de_l%27assembleur_Intel_x86&amp;diff=3838&amp;oldid=prev</id>
		<title>Haypo le 18 octobre 2005 à 03:08</title>
		<link rel="alternate" type="text/html" href="http://haypo.alwaysdata.net:443/wiki/index.php?title=Vocabulaire_de_l%27assembleur_Intel_x86&amp;diff=3838&amp;oldid=prev"/>
				<updated>2005-10-18T03:08:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[CatÃ©gorie:Assembleur]]&lt;br /&gt;
{{Retour|Assembleur Intel x86|Retour Ã  l'assembleur}}&lt;br /&gt;
&lt;br /&gt;
Vocabulaire de l'assembleur Intel x86.&lt;br /&gt;
&lt;br /&gt;
== Compilateur ==&lt;br /&gt;
&lt;br /&gt;
Un ''compilateur'' est un programme qui traduit un code source en code machine. Il produit un programme exÃ©cutable ou un objet pouvant Ãªtre liÃ© Ã  un projet dans un autre langage. On peut par exemple utiliser une fonction en assembleur dans un programme Ã©crit en langage C.&lt;br /&gt;
&lt;br /&gt;
== Notation hexadÃ©cimale ==&lt;br /&gt;
&lt;br /&gt;
La notation usuelle des nombres n'utilise que les chiffres arabes compris entre 0 et 9. On dit qu'on travaille en base 10 ou en notation ''dÃ©cimale'' (''dÃ©ci'' signifiant dix), car nous utilisons 10 chiffres. On peut par exemple dÃ©composer 452 en 4*100 + 5*10 + 2.&lt;br /&gt;
&lt;br /&gt;
Le systÃ¨me '''hexadÃ©cimal''' au contraire est en base 16, ''hexa'' signifiant seize. Pour les chiffres supÃ©rieurs Ã  dix, nous utiliserons des lettres : A pour 10, B pour 11, C pour 12, D pour 13, E pour 14, et F pour 15.&lt;br /&gt;
&lt;br /&gt;
Exemples :&lt;br /&gt;
* 42 se notera Â« 2A Â» en hexadÃ©cimal, effectivement 42 se dÃ©compose en 2*16 + 10*1 et 10 se note Â« A Â»&lt;br /&gt;
* Inversement Â« 3DA Â» en hexadÃ©cimal vaut 986 en dÃ©cimal, effectivement 3DA se dÃ©compose en 3 * 16&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + 14*16 + 10 avec 14 qui se note Â« D Â» et 10 qui se note Â« A Â»&lt;br /&gt;
&lt;br /&gt;
Pour diffÃ©rencier les nombres hexadÃ©cimaux des nombres dÃ©cimaux, on utilisera un suffixe ou un prÃ©fixe :&lt;br /&gt;
* En langage C, on utilise le prÃ©fixe &amp;quot;0x&amp;quot; : exemple Â« 0x3DA Â»&lt;br /&gt;
* En langage Pascal, on utilise le prÃ©fixe &amp;quot;$&amp;quot; : exemple Â« $3DA Â»&lt;br /&gt;
* En langage assembleur, on utilise le suffixe &amp;quot;h&amp;quot; : exemple Â« 3DAh Â»&lt;br /&gt;
&lt;br /&gt;
== Notation binaire ==&lt;br /&gt;
&lt;br /&gt;
Le processeur d'un ordinateur travaille majoritairement avec des nombres en notation '''binaire'''. Cette notation est dite Â« en base 2 Â» (''bi'' dans binaire signifiant deux)&lt;br /&gt;
&lt;br /&gt;
Exemples :&lt;br /&gt;
* Le nombre 9 se note Â« 1001 Â» en binaire, effectivement 9 se dÃ©compose en 1*2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; + 0*2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + 0*2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; + 1&lt;br /&gt;
&lt;br /&gt;
Pour diffÃ©rencier les nombres binaires des nombres dÃ©cimaux, on utilisera un suffixe ou un prÃ©fixe :&lt;br /&gt;
* En langage assembleur, on utilise le suffixe &amp;quot;b&amp;quot; : exemple Â« 1001b Â»&lt;br /&gt;
* En langage C, on utilise le prÃ©fixe &amp;quot;0b&amp;quot; : exemple Â« 0b1001 Â»&lt;br /&gt;
&lt;br /&gt;
== Bit ==&lt;br /&gt;
&lt;br /&gt;
Un '''bit''' est un nombre ne pouvant prendre que deux valeurs : un ou zÃ©ro, souvent exprimÃ©s comme Â« vrai Â» (un) ou Â« faux Â» (zÃ©ro). C'est un chiffre dans la notation binaire.&lt;br /&gt;
&lt;br /&gt;
== Octet ==&lt;br /&gt;
&lt;br /&gt;
Un '''octet''' est un ensemble de 8 bits.&lt;br /&gt;
* S'il est ''signÃ©'' (peut Ãªtre positif ou nÃ©gatif), il peut prendre une valeur comprise entre -128 et 127. Le premier bit est utilisÃ© pour le signe (vaut un si le nombre est positif).&lt;br /&gt;
* S'il n'est pas signÃ©, il peut prendre une valeur comprise entre 0 et 255.&lt;br /&gt;
&lt;br /&gt;
Note : 128 = 2&amp;lt;sup&amp;gt;7&amp;lt;/sup&amp;gt;, 127 = 2&amp;lt;sup&amp;gt;7&amp;lt;/sup&amp;gt; - 1, et 255 = 2&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; - 1.&lt;br /&gt;
&lt;br /&gt;
== Mot ==&lt;br /&gt;
&lt;br /&gt;
Un '''mot''' est un ensemble de deux octets, il a donc une taille de 16 bits.&lt;br /&gt;
* S'il est signÃ©, il peut avoir une valeur comprise entre -32768 (2&amp;lt;sup&amp;gt;15&amp;lt;/sup&amp;gt;) et +32767 (2&amp;lt;sup&amp;gt;15&amp;lt;/sup&amp;gt; -1)&lt;br /&gt;
* S'il n'est pas signÃ©, il peut avoir une valeur comprise entre 0 Ã  65535 (2&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt; - 1)&lt;br /&gt;
&lt;br /&gt;
== Double mot ==&lt;br /&gt;
&lt;br /&gt;
Un double mot est un ensemble de deux mots (quatres octets) et a double une taille de 32 bits.&lt;br /&gt;
* S'il est signÃ©, il peut prendre une valeur comprise entre &amp;lt;span style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;-2 147 483 648&amp;lt;/span&amp;gt; (- 2&amp;lt;sup&amp;gt;31&amp;lt;/sup&amp;gt;, environ moins deux milliards) et &amp;lt;span style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;2 147 483 647&amp;lt;/span&amp;gt; (2&amp;lt;sup&amp;gt;31&amp;lt;/sup&amp;gt; - 1, environ deux milliards)&lt;br /&gt;
* S'il n'est pas signÃ©, non-signÃ©, il peut prendre une valeur comprise entre 0 et &amp;lt;span style=&amp;quot;white-space: nowrap;&amp;quot;&amp;gt;4 294 967 295&amp;lt;/span&amp;gt; (2&amp;lt;sup&amp;gt;32&amp;lt;/sup&amp;gt; - 1, environ quatre milliards)&lt;br /&gt;
&lt;br /&gt;
== Registre ==&lt;br /&gt;
&lt;br /&gt;
Un registrest un espace mÃ©moire stockÃ© physiquement dans le cÅ“ur du processeur. Ils sont vitaux pour avoir un temps de rÃ©ponse optimum, effectivement, on a souvent besoin d'une variable locale lors de calculs.&lt;br /&gt;
&lt;br /&gt;
Dans les tous premiers processeurs Intel (4004 et 4040), les registres avaient une taille de 4 bits. Ils sont rapidement passÃ©s Ã  8 bits avec la gÃ©nÃ©ration 8080. Puis 16 bits avec le 8086, et enfin 32 bits avec le 486. Aujourd'hui (en 2005), les processeurs Ã  registre de 64 bits gagnent le grand public avec l'AMD64.&lt;br /&gt;
&lt;br /&gt;
* Les premiers registres (8 bits) s'appelaient : AL, BL, CL et DL&lt;br /&gt;
* Les registres 16 bits se sont appelÃ©s : AX, BX, CX et DX. La particularitÃ© est que les 8 bits de poids faibles sont en fait les registres 8 bits (AL pour AX, BL pour BX, etc.)&lt;br /&gt;
* Enfin les registres sont : EAX, EBX, ECX et EDX. La aussi, la partie faible correspond aux registres en 16 bits (AX pour EAX, BX pour EBX, etc.).&lt;br /&gt;
&lt;br /&gt;
Voyez Ã©galement la [[Liste des registres Intel x86|liste des registres]].&lt;br /&gt;
&lt;br /&gt;
== Segment et Offset ==&lt;br /&gt;
&lt;br /&gt;
En mode rÃ©el, l'adresse d'une variable en mÃ©moire se dÃ©compose en deux parties : '''segment''' et '''offset'''. L'adresse rÃ©sultat vaut en fait Â« adresse = segment * 16 + offset Â». Tous les systÃ¨mes d'exploitation modernes (aprÃ¨s MS-Dos) travaillent en mode protÃ©gÃ© oÃ¹ les adresses n'utilisent qu'un seul registre de 32 bits (et non plus deux registres de 16 bits).&lt;br /&gt;
&lt;br /&gt;
Cet article Ã©tait Ã©crit pour MS-Dos, nous utiliserons le mode rÃ©el. Les adresses mÃ©moires sont donc dÃ©finies par deux registres : le segment, partie haute de l'adresse, et l'offset (partie basse de l'offset). On note l'adresse : Â« segment:offset Â» ou Â« segment:[offset] Â» (les crochets sont optionnels). Avec les processeurs Intel 386, les offsets sont passÃ©s en 32 bits pour accÃ©der Ã  plus de mÃ©moire (plus de 16 Mo), les offsets avec le prÃ©fixe &amp;quot;E&amp;quot; sont apparus (ESI, EDI, ESP, EBP), et comme pours les registres 32 bits, les registres 16 bits, les offsets SI, DI, SP, BP en sont leur partie basse.&lt;br /&gt;
&lt;br /&gt;
Consultez la [[Liste des registres Intel x86|liste des registres]].&lt;br /&gt;
&lt;br /&gt;
== Interruption ==&lt;br /&gt;
&lt;br /&gt;
Une '''interruption''' est un action qui va appeler une fonction lorsqu'elle est dÃ©clanchÃ©e. Une interruption peut Ãªtre matÃ©rielle (arrivÃ©e d'une touche du clavier par exemple) ou logicielle (division par zÃ©ro). Il y en a 256 au maximum, et les premiÃ¨res sont intÃ©grÃ©s dans le BIOS (programme lancÃ© au dÃ©marrage de l'ordinateur qui gÃ¨re le matÃ©riel : disque dur, accÃ¨s mÃ©moire, ...) comme les interruptions de la carte vidÃ©o ou le clavier. Certaines sont appelÃ©es Ã  une frÃ©quence constante : l'interruption 1Ch par exemple qui est un compteur qui incrÃ©mente une valeur 18.6 fois/seconde; d'autres sont appelÃ©es uniquement si on a besoin d'elle : l'interruption 09h du clavier est appelÃ©e Ã  chaque pression ou relachement d'une touche.&lt;br /&gt;
&lt;br /&gt;
Consultez la [[Liste des interruptions Intel x86|liste complÃ¨te des interruptions]].&lt;br /&gt;
&lt;br /&gt;
== Pile ==&lt;br /&gt;
&lt;br /&gt;
La '''pile''' est un espace mÃ©moire utilisÃ© pour stoquer temporairement des valeurs : variables locales d'une fonction ou paramÃ¨tres d'une fonction. Une pile en informatique peut Ãªtre comparÃ©e Ã  une pile d'assiette : on entasse des assiettes avec l'instruction &amp;quot;PUSH&amp;quot; puis on les enlÃªve avec l'instruction &amp;quot;POP&amp;quot;. La hauteur de la pile est la valeur du registre BP (ou EBP sur les processeurs 32 bits). On peut voir ce qu'il y a Ã  l'Ã©tage X avec une instruction dans le style &amp;quot;MOV AX,[BP-4]&amp;quot;, mais pas l'enlever, car si on enlÃ¨ve une assiette au milieu de la pile, la pile dÃ©gringole (= plantage du PC).&lt;br /&gt;
&lt;br /&gt;
== Flags ==&lt;br /&gt;
&lt;br /&gt;
Les ''flags'', ou '''drapeaux''' en franÃ§ais, sont des bits internes au processeur permettant de signaler un Ã©tat ou de modifier le fonctionnement du processeur. Le flag ZF indique par exemple si le rÃ©sultat de la derniÃ¨re instruction Ã  mis un registre Ã  zÃ©ro.&lt;br /&gt;
&lt;br /&gt;
Consultez la [[Liste des drapeaux Intel x86|liste des drapeaux]].&lt;/div&gt;</summary>
		<author><name>Haypo</name></author>	</entry>

	</feed>