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 :

Convertir un byte representant un 'char' en un dword reprensentant un 'int'


Sujet :

Assembleur

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 100
    Points : 77
    Points
    77
    Par défaut Convertir un byte representant un 'char' en un dword reprensentant un 'int'
    Bonjour,

    Je code une fonction qui sera reprise en c. Je code en asm x86 sous nasm.

    Le prototype de la fonction c est : int ma_fonction(char*, char*)


    Mon probleme est le suivant:

    a la fin de ma fonction asm, j'ai une valeur stocke dans le registre cl que je copie dans le registre eax. La valeur de cl (registre 4 bits) est negatif donc lorsque je la copie dans eax (registre 32 bits), je recupere une valeur positif. Comment copier correctement ma valeur dans le registre eax ? Existe t'il une instruction capable de m'aider a faire ce traitement ? Une astuce ...


    Merci d'avance
    Menontona

  2. #2
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    les deux instructions pour faire ce type de conversion sont:
    ;cl = char = 8 bits
    ;eax = dword = 32 bits
    movzx eax,cl ;copier 8 bits dans 32 avec extension de 0, valeur non signée
    movsx eax,cl ;copier avec extension de signe

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 100
    Points : 77
    Points
    77
    Par défaut
    Merci

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

Discussions similaires

  1. Convertir un array<Byte>^ en unsigned char*
    Par xxiemeciel dans le forum C++/CLI
    Réponses: 5
    Dernier message: 12/06/2007, 20h23
  2. Convertir des bytes en binaire ...
    Par Battosaiii dans le forum C
    Réponses: 2
    Dernier message: 18/03/2006, 15h47
  3. [PL / SQL] Convertir chaine en tableau de char
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 3
    Dernier message: 06/02/2006, 10h29
  4. convertir tableau d'entier en char[]
    Par nin47 dans le forum C
    Réponses: 20
    Dernier message: 12/10/2005, 20h03
  5. [C#] Convertir des bytes en string
    Par sorcer1 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 03/02/2005, 15h52

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