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 :

Compter le nombre de séparateurs dans une chaîne saisie


Sujet :

x86 16-bits Assembleur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut Compter le nombre de séparateurs dans une chaîne saisie
    Bonjour,

    j'ai ecrit un code Assembleur qui compte le nombre de séparateurs dans une chaîne saisie. En assemblant tout va bien mais l'exécution ne donne pas le résultat attendu, elle donne rien même
    Je ne sais pas où réside l'erreur. J'ai même utilisé un debugger mais je n'ai pas trouvé la faille
    Si vous voulez bien m'aider ce serait gentil

    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
    .model small
    .stack 200h
    .data
    chaine db 10,13,"je veux tester seulement$"
    msg5 db 10,13, "le nombre de separateur est:$"
    .code
    start:
    mov ax,@data
    mov ds, ax  
    xor CX, CX \\initialisation du compteur de sep
    lea si,chaine \\on pointe si
    boucle: 
    mov [si],al
    cmp al," "   \\comparaison avec un espace (comme essaie)
    jz separateur
    cmp al,'$' \\verifier si c'est la fin de la chaine
    jz fin
    jmp incrementation
     
    fin: 
    mov ah,9
    lea dx,msg5  
    int 21h 
    mov ah,2  \\affichage du nbre de separateurs
    mov dx,cx
    int 21h 
    incrementation:
    inc si
    jmp boucle
    separateur: 
    inc cx   
    jmp incrementation
    end start

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut
    OUUUUPS une petite erreur à corriger:
    on remplace mov [si],al
    par mov al, BYTE PTR [bx]
    mais maintenant le resultat est le suivant:
    au lieu d'afficher le nombre de separateurs,il affiche le msg5 à chaque fois il rencontre un separateurs et il bloque dans une boucle infinie (constaté en utilisant un debugger)

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut
    c'est bon j'ai trouvé,merci en tou cas

Discussions similaires

  1. [Débutant] compter le nombre de caractères dans une phrase saisie
    Par gnamienbenedicte dans le forum C#
    Réponses: 3
    Dernier message: 25/04/2014, 13h53
  2. Compter nombre de 0 dans une chaîne
    Par tibss dans le forum SAS Base
    Réponses: 3
    Dernier message: 14/10/2009, 10h45
  3. Réponses: 28
    Dernier message: 11/10/2006, 22h36
  4. Nombre d'occurences dans une chaîne de caractères
    Par Olivier14 dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 19h11
  5. Compter nombre de mots dans une chaîne.
    Par xVINCEx dans le forum C++
    Réponses: 22
    Dernier message: 24/11/2004, 13h33

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