IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 16-bits Assembleur Discussion :

Syntaxe de type <mov bl, es:[17h]>


Sujet :

x86 16-bits Assembleur

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 51
    Points : 29
    Points
    29
    Par défaut Syntaxe de type <mov bl, es:[17h]>
    Salut,

    J'ai souvent vu la syntaxe avec reg:[imm], je ne sais pas a quoi elle sert, pouvez-vous me l'expliquer précisément svp ?

  2. #2
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Le registre doit être un registre de segment et le sens change en mode réel et en mode protégé. En gros en mode réel c'est relativement simple à comprendre mais lourd à utiliser, en mode protégé c'est lourd à comprendre mais simple à utiliser.
    :wq

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 51
    Points : 29
    Points
    29
    Par défaut
    Ok, mais c'est pour faire quoi ?
    Par exemple que fait cette ligne ?

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 370
    Points : 23 625
    Points
    23 625
    Par défaut
    Citation Envoyé par Voldemort09 Voir le message
    Ok, mais c'est pour faire quoi ?
    Par exemple que fait cette ligne ?
    Elle charge dans BL la valeur contenue par l'octet se trouvant à l'offset 0017h du segment pointé par le registre es.

    Au tout début, le plan mémoire adressable l'était à l'aide d'un bus de 16 bits, soit 64 ko de mémoire maximum. Pour permettre aux microprocesseurs de travailler avec plus de mémoire, directement, sans avoir à piloter un périphérique pour commuter logiciellement des pages, on a bien sûr élargi la taille du bus (jusqu'à 20 puis 32 bits) mais pour conserver les registres existants et ne pas avoir à modifier le processeur entier pour gérer des registres plus larges, on a adjoint aux registres d'offsets les registres de segment, dont la valeur s'ajoute à l'offset mais décalée de 4 bits (donc multipliée par 16).

    En gros, tu peux placer un segment n'importe où dans ta mémoire avec une granularité de 16 octets, et de cet endroit, tu peux voir en une fois une plage de 64 ko maximum sans avoir à changer de segment.

    Par défaut, implicitement, le segment de code est dans CS et le segment de données est dans DS. Ça veut dire qu'un

    est équivalent à :

    Mais tu peux préciser - dans une certaine mesure - celui avec lequel tu travailles.



    Puis le mode protégé est arrivé sur Intel 80x86 pratiquement en même temps que le 32 bits. Les registres étant élargis, les segments en tant que tels n'avaient plus de raison d'être mais on a conservé la notion - et les registres - pour les utiliser à une fin légèrement différente : on définit arbitrairement des plages en mémoire, on les numérote et on leur donne en quelque sorte des droits d'accès. Le registre de segment contient alors le numéro du segment sur lequel on travaille.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Syntaxe C# Type?
    Par clemmat dans le forum C#
    Réponses: 6
    Dernier message: 22/11/2010, 18h34
  2. Variable pour un syntaxe du type "me.txt_champ"
    Par sakia dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/08/2007, 11h01
  3. Syntaxe C# type retourné avec "?"
    Par Ishida dans le forum C#
    Réponses: 4
    Dernier message: 19/05/2007, 19h03
  4. Syntaxe content-type pour un SWF
    Par klerdesign dans le forum Flash
    Réponses: 2
    Dernier message: 18/05/2006, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo