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 :

Afficher le contenu d'un registre


Sujet :

Assembleur

  1. #1
    Membre habitué Avatar de duplo
    Inscrit en
    Octobre 2004
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Octobre 2004
    Messages : 294
    Points : 172
    Points
    172
    Par défaut Afficher le contenu d'un registre
    lu all
    je debute en assembleur avec tasm
    et je voulait savoir comment on fait pour mettre dans une offset le contenu d'un segment memoire comme ax ou otre
    merci de me donner un exemple de code
    merci
    +


    Modération par Wormful_sickfoot :
    - Titre modifié
    Merci de lire les règles du forum.
    pensez au

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    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 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    J'ai beaucoup de mal à comprendre ta question : veux-tu savoir comment mettre à une adresse particulière le contenu d'un registre comme ax ?

    Je pense que tu as un peu de mal avec les notions de segment et d'offset. Pour t'éclaircir les idées, jette un coup d'oeil sur la FAQ (http://www.developpez.net/forums/viewtopic.php?t=209312) ou sur un tutoriel (http://benoit-m.developpez.com/assembleur/tutoriel/)
    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 habitué Avatar de duplo
    Inscrit en
    Octobre 2004
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Octobre 2004
    Messages : 294
    Points : 172
    Points
    172
    Par défaut
    nan excuser moi mais je me sui tres mal exprimé!!!!!!!!!
    je voulais savoir comment il fallai faire pour mettre le contenu de ax ( par exemple ) dans un buffer pour pouvoir l'afficher
    voila vous savez tout!!
    pensez au

  4. #4
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    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 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    A supposer que ton registre AX contient quelque chose d'affichable, tu peux transférer son contenu dans une zone mémoire spécialement préparée à cet effet, c'est-à-dire terminée par le caractère '$'.

    Ensuite, tu peux utiliser la fonction 09h de l'interruption 21h pour afficher cette chaîne. Ca donne quelque chose comme ceci (syntaxe MASM) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
           .data
     
    Chaine db 2 dup(?),'$'
     
           .code
     
           ...
     
           ; Copie de AX dans la chaîne
           mov Chaine,ax
     
           ; Affichage
           lea dx,Chaine
           mov ah,09h
           int 21h
     
           ...
    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]

  5. #5
    Membre habitué Avatar de duplo
    Inscrit en
    Octobre 2004
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Octobre 2004
    Messages : 294
    Points : 172
    Points
    172
    Par défaut
    merci je n'avait pas dutout pencé à sa
    +
    pensez au

  6. #6
    Membre habitué Avatar de duplo
    Inscrit en
    Octobre 2004
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Octobre 2004
    Messages : 294
    Points : 172
    Points
    172
    Par défaut
    desolé de te dire sa mais sa ne marche po
    quen je compile j'ai un message d'erreur :
    opperande type do not match
    j'ai essailler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mov byte ptr [buffer], ax
    mai sa ne marche po non plus
    aider moi please
    merci
    +
    pensez au

  7. #7
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    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 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Oui, je suis allé un peu trop vite (et je n'ai pas testé) . Toutes mes excuses.

    En réservant Buffer à l'aide de la directive db, Buffer est déclaré de type byte dans la table des symboles et, forcément, faire un mov d'un registre 16 bits vers Buffer déclenche au minimum un warning de la part de l'assembleur.

    Pour faire cela proprement, sans aucun risque d'erreur :

    - soit on garde la même déclaration de Buffer mais on copie le contenu de AX en deux fois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
           .data 
     
    Buffer db 2 dup(?),'$' 
     
           .code 
     
           ... 
     
           ; Copie de AX dans la chaîne 
           mov Buffer,al
           mov Buffer+1,ah 
     
           ...
    - soit on déclare Buffer avec la directive dw :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
           .data 
     
    Buffer dw ?
           db '$' 
     
           .code 
     
           ... 
     
           ; Copie de AX dans la chaîne 
           mov Buffer,ax
     
           ...
    Attention toutefois que, lors d'un mov d'un registre 16 bits vers la mémoire, les deux octets sont inversés. Lorsqu'on manipule de l'ASCII, il est généralement peu pratique de travailler en 16 bits.
    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]

  8. #8
    Membre habitué Avatar de duplo
    Inscrit en
    Octobre 2004
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Octobre 2004
    Messages : 294
    Points : 172
    Points
    172
    Par défaut
    merci beaucoup
    pensez au

  9. #9
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    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 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Pas de quoi ! Si ton problème est résolu, tu peux utiliser le bouton en bas à gauche de la page.
    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]

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

Discussions similaires

  1. [64 bits]Afficher le contenu du registre RAX en hexa
    Par Thorna dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 09/06/2013, 03h29
  2. Afficher contenu binaire du registre eax
    Par stoner dans le forum x86 32-bits / 64-bits
    Réponses: 11
    Dernier message: 11/03/2013, 16h25
  3. Comment afficher le contenu d'un registre ?
    Par Midou45 dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 16/05/2008, 05h50
  4. afficher le contenu des registres
    Par meftahie dans le forum C
    Réponses: 5
    Dernier message: 09/12/2007, 16h29
  5. Afficher le contenu d'un registre
    Par mikevador02 dans le forum Assembleur
    Réponses: 10
    Dernier message: 23/06/2003, 18h18

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