FAQ AssembleurConsultez toutes les FAQ

Nombre d'auteurs : 8, nombre de questions : 50, dernière mise à jour : 26 avril 2014  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur le forum Assembleur de et de l'expérience personnelle des auteurs. Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être exhaustive ; vous pouvez la compléter avec vos propres questions/réponses ou proposer des corrections ou des compléments à des questions/réponses existantes.

Nous espérons que cette FAQ saura répondre à un maximum de vos questions. Nous vous en souhaitons une bonne lecture.

L'équipe Assembleur de Developpez.com.


SommaireF.A.Q. Assembleur x86 (11)
précédent sommaire suivant
 

x86 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.

Mis à jour le 8 novembre 2004 Smortex

Il faut télécharger les DataSheets fournies par le fabricant. A cet effet, on se rendra sur le site ou (Ou autre selon le microprocesseur que l'on possède).

Mis à jour le 8 novembre 2004 Smortex

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.

Mis à jour le 8 novembre 2004 Smortex

  • Adressage direct : l'adresse de la donnée fait partie de l'instruction :

Code assembly-x86 :
1
2
3
 
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 :

Code assembly-x86 :
1
2
 
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 :

Code assembly-x86 :
1
2
 
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 :

Code assembly-x86 :
1
2
 
mov ax,[cx]
Il existe différents adressages indirects :

Basé ou indexé simple (avec éventuellement ajout d'un offset) :

Code assembly-x86 :
1
2
3
4
5
 
mov ax,Truc [bx] 
mov ax,[bp] 
mov ax,[si] 
mov ax,[di]
Basé-indexé (avec éventuellement ajout d'un offset) :

Code assembly-x86 :
1
2
3
 
mov ax,[bp][di] 
mov ax,Truc [bx][si]
Ce type d'adressage est très utile pour gérer des tableaux.

Mis à jour le 8 novembre 2004 Alcatîz

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2014 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
 
 
 
Partenaires

PlanetHoster
Ikoula