Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1

    Homme Profil pro
    Inscrit en
    février 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : février 2012
    Messages : 9
    Points : -1
    Points
    -1

    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 :
    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 :
    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é Sénior
    Inscrit en
    août 2006
    Messages
    3 561
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 561
    Points : 4 569
    Points
    4 569

    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).
    Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.

  3. #3
    Membre chevronné Avatar de edfed
    être humain
    Inscrit en
    décembre 2007
    Messages
    471
    Détails du profil
    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : décembre 2007
    Messages : 471
    Points : 628
    Points
    628

    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 :
    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
    Invité régulier
    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 : 5
    Points
    5

    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
    Invité régulier
    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 : 5
    Points
    5

    Par défaut

    Code :
    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é Sénior
    Inscrit en
    août 2006
    Messages
    3 561
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 561
    Points : 4 569
    Points
    4 569

    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).
    Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.

  7. #7
    Invité régulier
    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 : 5
    Points
    5

    Par défaut

    oui c'est vrai, je dois m'habituer à lire des documentations en anglais

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •