
FAQ AssembleurConsultez toutes les FAQ
Nombre d'auteurs : 8, nombre de questions : 50, dernière mise à jour : 29 avril 2007
Sommaire→F.A.Q. Assembleur x86x86 fait référence a tous les microprocesseurs de PC, depuis le 8086. Cela inclut donc (Pour les x86 les plus connus) : les 8080, 286, 386, 486, 586, 686. Le numéro peut être précédé d'un 'i' : i586. Il s'agit d'un problème d'enregistrement des marques : elles doivent nécessairement débuter par une lettre.
Il faut télécharger les DataSheets fournies par le fabricant. A cet effet, on se rendra sur le site http://www.intel.fr ou http://www.amd.com (Ou autre selon le microprocesseur que l'on possède).
Le "Ring" désigne le niveau de privilège.
Il en existe quatre : de Ring 0 à Ring 3.
Ils ont été créés afin de hiérarchiser les tâches du microprocesseur.
Le niveau de privilège le plus élevé est le niveau 0; il correspond au fonctionnement du Kernel du système d'exploitation.
Les niveaux 1 et 2 au système d'exploitation lui même (drivers, services, etc...) et le niveau 3 aux applications de l'utilisateur.
- Adressage direct : l'adresse de la donnée fait partie de l'instruction :
mov ax,Truc
mov ax,ds:[0020h]
- Adressage immédiat : en réalité, ce n'est pas un adressage puisque c'est la donnée elle-même qui fait partie de l'instruction :
mov ax,20
- Adressage indirect : on met dans l'instruction un ou plusieurs élément(s) qui contie(nne)nt l'adresse de la donnée :
mov ax,[bx]
Attention ! Seuls les registres suivants peuvent contenir une adresse :
bx (registre de base dans le segment de données);
bp (registre de base dans la pile);
si et di (registres d'index dans le segment de données).
L'instruction suivante est une erreur de syntaxe :
mov ax,[cx]
Il existe différents adressages indirects :
Basé ou indexé simple (avec éventuellement ajout d'un offset) :
mov ax,Truc [bx]
mov ax,[bp]
mov ax,[si]
mov ax,[di]
Basé-indexé (avec éventuellement ajout d'un offset) :
mov ax,[bp][di]
mov ax,Truc [bx][si]
Ce type d'adressage est très utile pour gérer des tableaux.



