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 :

Comparaison de trois variables pour trouver min et max


Sujet :

Assembleur

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Comparaison de trois variables pour trouver min et max
    Bonjour,

    j'ai commencé l'asm il y a quelque temps et je ne comprends pas encore toutes mes erreurs et ou ne les vois pas souvent( même trop souvent)

    En fait je dois réaliser un petit programme qui compare trois variables en mettant la plus grande dans max et la plus petite dans min...Celui doit tourner sur un x86 et avec le compilateur TASM ( que je n'arrive pas a faire fonctionner chez moi ( je sais je suis pas douer))

    J'ai tenté de le faire mais n'y arrive point, pourriez-vous m'aider ? (précision je ne souhaite pas que l'on corrige ceci pour moi, juste que l'on me "guide" pour trouver et comprendre mes erreurs...(pas sur d'avoir réussi a me faire comprendre))

    Voici mon code :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    .model small
    .stack 100h
    .data
    ;
    v1 dw ?
    v2 dw ?
    v3 dw ?
    estNul dw ?
    estPos dw ?
    min dw ?
    max dw ?
    estNeg dw ?
    Quotient dw ?
    Reste dw ?
    ;
    .code
    main proc
    mov ax,@data
    mov ds,ax
    ;
    call comparaison
     
    mov ax,4c00h
    int 21h
    main endp
    ;
    comparaison proc:
     ;
      XOR ax,ax
     mov ax,v1
     cmp ax,v2
     ;
     jg v1_sup_v2
     ;
     XOR ax,ax
     mov ax,v3
     cmp ax,v2
     jg  v2_sup_v3
     ;
     XOR ax,ax
     mov ax,v2
     mov max,ax
     XOR ax,ax
     mov ax,v1
     cmp ax,v3
     jg v3_est_min
     mov min,ax
     ret
     v3_est_min:
      XOR ax,ax
      mov ax,v3
      mov min,ax
      ret
     v1_sup_v2:
      cmp ax,v3
      jg v1_sup_v3
      XOR ax,ax
      mov ax,v3
      mov max,ax
      XOR ax,ax
      mov ax,v2
      mov min,ax
      ret
     v1_sup_v3:
      mov max,ax
      XOR AX,AX
      mov ax,v2
      cmp ax,v3
      jg v2_sup_v3
      mov min,ax
      ret
     v2_sup_v3:
      XOR ax,ax
      mov ax,v3
      mov min,ax
      ret
    comparaison endp
    End main
    Merci bien si vous savez m'éclairer

  2. #2
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    XOR ax,ax
    mov ax,v3
    cmp ax,v2
    jg  v2_sup_v3
    Deux petites remarques générales :
    • le xor ax,ax (remise à 0 du registre ax) n'est pas nécessaire quand il est suivi d'un mov ax,xxx (sauf si l'on veut modifier les flags, mais ce n'est pas votre cas).
    • attention à l'ordre dans vos comparaisons, dans la portion de code ci-dessus par exemple : cmp ax,v2 compare v3 à v2, donc le saut jg v2_sup_v3 sera effectué si v3 est supérieur à v2


    Bon courage
    Avant de poster, merci de consulter les règles du forum

Discussions similaires

  1. une fonction pour trouver min(|A-B|) ?
    Par Djeu Kuru dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/04/2013, 11h43
  2. [AC-2003] Code VBA pour trouver la valeur max
    Par jokair dans le forum VBA Access
    Réponses: 5
    Dernier message: 25/08/2010, 10h47
  3. Réponses: 13
    Dernier message: 11/04/2009, 20h03
  4. Comparaison d'une valeur pour trouver la plus proche
    Par Falcdyr dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/04/2008, 18h10
  5. trouver Min et Max d'une sélection
    Par yahi.jye dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/03/2008, 19h48

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