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 :

on ne peut pas faire mov SI, Al ?


Sujet :

x86 16-bits Assembleur

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2012
    Messages : 11
    Points : 9
    Points
    9
    Par défaut on ne peut pas faire mov SI, Al ?
    bonjour tout le monde,
    je travail en assembleur x86 , j'ai fais les instructions suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mov al, 5
    mov SI, chaine ; j'ai mis l'adresse d'une chaine de caractère dans SI
    add SI, 2
    mov SI, al
    et le problème est dans cette ligne

    quand au code d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    invalid combination of opcode and operands
    Pourquoi il a accepté d'ajouter 2 a SI, mais il ne l'a pas accepté pour AL, pourtant al contient 5, sa reviens a dire : "mov SI, 5" n'est ce pas ?

    merci

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 941
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 941
    Points : 5 652
    Points
    5 652
    Par défaut
    Hoe,

    Non, ce n'est pas la même chose, car il a interprété ton 5 comme une valeur sur 2 octets (les valeurs dites "immédiates", comme le 5 dans ton cas, sont toujours interprétées dans le type correspondant à la destination).
    Si les cons volaient, il ferait nuit à midi.

  3. #3
    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
    soit tu veux copier la valeur de al dans la chaine POINTEE par si, alors il faut "faire":
    ou alors tu veux copier la valeur du registre al dans le registre si (ce qui est presque un non sens), là, il faut utiliser une instruction de copie avec conversion de "type":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    movzx si,al ;pour une valeur non signée
    ;ou
    movsx si,al;opur une valeur signée
    voilà.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par droggo Voir le message
    Hoe,

    Non, ce n'est pas la même chose, car il a interprété ton 5 comme une valeur sur 2 octets (les valeurs dites "immédiates", comme le 5 dans ton cas, sont toujours interprétées dans le type correspondant à la destination).
    ah oui, car SI est sur 2 bytes, et Al est sur 1 byte. merci

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    movzx si,al ;pour une valeur non signée
    ;ou
    movsx si,al;opur une valeur signée
    [/QUOTE]

    intéressante cette instruction, merci

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 941
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 941
    Points : 5 652
    Points
    5 652
    Par défaut
    Voa,
    Citation Envoyé par touirik Voir le message
    intéressante cette instruction, merci
    Si tu tiens à faire de l'assembleur, il faut te procurer la liste d'instructions disponibles (facile à trouver sur le site Intel).

    Et une fois que tu l'as, au moins jeter un coup d'œil sur les instructions disponibles, même si ce n'est pas en détail, mais avoir une idée de ce qu'elles font (ça évite de parfois se casser la tête pour obtenir un résultat qu'une instruction sait faire).
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2011
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    oui c'est vrai, je dois m'habituer à lire des documentations en anglais

Discussions similaires

  1. [Toutes versions] Que ne peut on pas faire avec Excel ?
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 23/04/2019, 00h29
  2. [HF17] Requête croisée que windev ne peut pas faire ou quoi?
    Par Rafikaccess dans le forum HyperFileSQL
    Réponses: 6
    Dernier message: 30/03/2015, 10h51
  3. peut t on ou pas faire avec SQLExpress
    Par furax51 dans le forum MS SQL Server
    Réponses: 24
    Dernier message: 01/11/2007, 23h24
  4. Peut-on faire du son juste avec du code assembleur ?
    Par Rick1602 dans le forum Assembleur
    Réponses: 7
    Dernier message: 26/03/2004, 18h39
  5. Réponses: 6
    Dernier message: 03/09/2003, 11h29

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