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

Assembleur Discussion :

Code machine


Sujet :

Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 135
    Par défaut Code machine
    J'ai regardé la doc présente sur le site http://www.chez.com/pageasm/docs/indep/ins.htm

    Et il spécifié à certains endroits :
    instruction POP :

    code machine :
    58+rw

    Instruction suivant le mode d'adressage
    POP r32

    cycles d'horloges :
    4

    explication :
    Pop top of stack into dword register

    Mais à quoi correspond le +rw du code machine, ou alors sur certains autre codes machines /0
    ???

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par défaut
    +rw veut dire qu'il y a un Registre de taille Word (2 octets donc) spécifiés dans l'opcode. cad que les registres sont numérotés :

    ax : 0
    cx : 1
    dx : 2
    cx : 3

    et puis di, si, bp, sp, dont je ne connait pas l'ordre.

    Et tu ajoutes la valeur correspondant au registre a l'opcode de l'instruction. Exemple explicite :

    pop ax ; opcode 58 + 0 = 58

    pop dx ; opcode 58 + 2 = 60



    Pour le /0 c'est plus difficile. Moi non plus au départ j'avais rien compris a sa traduction pour expliquer le /digit, mais t'inquiete pas dans l'original c'est pas mieux. En fait, (mais la je vais peut etre pas etre clair) souvent dans les instructions qui utilises r/m (style mov bx, 3, ou mov [esp], 4) cad les instructions qui peuvent utiliser un registre (r) ou la mémoire (m) il y a un octet qui suit pour dire quel registre ou quelle adresse en mémoire. C'est un peu compliqué, il faut trtouver une doc qui explique comme est codé cet octet. Mais il y a trois bits qui sont consacrés uniquement a decrire un registre. Et dans les instructions du type

    instruction r/m, immediate

    on a plus besoin de ses trtois bits alors on y stocke l'extension de l'opcode. Si ty as marqué /3 en face d'une instruction ca veut dire que ces trois bits formeront une valeur dee 3. donc pour /0 les trois bits seront a 0.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 135
    Par défaut
    Merci bien pour ta réponse Blustuff
    tu m'apprends des choses

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

Discussions similaires

  1. Comment le processeur comprend-il le code machine ?
    Par Invité1 dans le forum Assembleur
    Réponses: 18
    Dernier message: 09/07/2010, 00h36
  2. Code machine et JVM
    Par Vulcan dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 26/10/2009, 04h22
  3. Pb Debuggage Sources/Code Machine
    Par cjacquel dans le forum Visual C++
    Réponses: 1
    Dernier message: 05/09/2007, 15h50
  4. Réponses: 1
    Dernier message: 19/04/2007, 21h52

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