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 :

Stocker un couple de registres dans une variable


Sujet :

Assembleur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Stocker un couple de registres dans une variable
    Hello, j'ai peu de temps donc j'explique rapidement :

    J'ai multiplié 2 entier codés chacun sur 1 mot et le résultat se met dans le couple de registre DX:AX mais je ne sais pas comment faire pour mettre ce résultat dans une variable.

    si quelqu'un pouvait me donner la ligne de commande.

    Et s'il vous plait, pas de truc de 50 lignes, normalement à mon niveau ne ne dois utiliser que des mov, cwd et autre truc de base.

    Merci

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    En supposant que la variable est déclarée comme double mot, ça pourrait donner quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    variable dd ?
     
    mov word ptr variable,ax
    mov word ptr variable+2,dx
    (en tenant compte de l'inversion des octets en mémoire).
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Pour le faire en utilisant les registres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ; mettre ax:dx dans eax
    shl eax,16
    mov ax,dx

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 23
    Points : 28
    Points
    28
    Par défaut
    Jeremya préconise de placer ax:dx dans eax ce n'est pas ax:dx mais dx:ax et cela change tout ! dx doit se trouver dans le mot de poids fort et ax reste à sa place. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    shl eax,16
    mov ax, dx
    rol eax,16 ;eax = dx:ax
    Enregistrer eax dans une variable 32 bits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    MaValeur DD ?
    mov MaValeur, eax ;Mavaleur contient : dx:ax (inversion mémoire)

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    Quand j'écrit ax:dx,
    ax est le mot de poids faible,
    dx est le mot de poids fort

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mov bx,dx
    shl ebx,16
    mov bx,ax
    ebx contient ax:dx

    ou encore

Discussions similaires

  1. Stocker des chaines de caractères dans une variables
    Par IBRAHIM MR dans le forum Langage
    Réponses: 3
    Dernier message: 12/04/2014, 18h14
  2. Stocker le nom du form dans une variable
    Par wa7ch3000 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 31/05/2010, 17h54
  3. [VBS]Stocker résultat d'un SELECT dans une variable
    Par harry le ravi dans le forum VBScript
    Réponses: 2
    Dernier message: 13/08/2009, 12h52
  4. [XSL] Stocker un jeu de noeud dans une variable
    Par Blustuff dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 22/06/2007, 13h01

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