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 :

Affichage du mot le plus long


Sujet :

x86 16-bits Assembleur

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Affichage du mot le plus long
    Bonjour,
    ça fait une journée que je suis bloquée dans cette étape de mon exercice.
    Chaque fois que j'applique une idée, la console m'affiche des trucs bizarres.
    Bref l'étape consiste à afficher le mot le plus long dans une chaîne de caractères. Je suis parvenue à afficher la taille du mot le plus long avec prise en compte du dernier mot.
    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
     
    mov ah,9
    mov dx,offset msg5
    int 21h                ;affichage du chaine de caractère (msg6):"la longueur du  mot le plus long est:"
     
    mov cx,n
    mov si,0
     
     
    calcul_longueur_mot:
     
    test_si_separateur:
    cmp tab[si],' '		;on verifie si le caractère saisi est separateur
    je oui_separateur
     
    cmp tab[si],';'
    je oui_separateur
     
    cmp tab[si],','
    je oui_separateur
     
    cmp tab[si],'.'
    je oui_separateur
    cmp tab[si],':'
    je oui_separateur
     
    cmp tab[si],'-'
    je oui_separateur
     
    jne non_separateur
     
     
     
    oui_separateur:			;si le caractère est séparateur , on verifie si le nbre de caracteres
    mov ax,p		;saisi est superieur a t_max deja initialisé a 0 (t_max = taille maximale)
     
    cmp ax,t_max
    ja stockage			;branchement si nb caracteres > t_max
    jbe re_initialisation		;branchement si nb caracteres < t_max
     
    stockage:
    mov ax,p
    mov t_max,ax		;ds ce cas max<--- nb caracteres
    mov indice_mot,si
    mov p,0			;reinitialiser nbre de caracteres à 0
     
    ;mov ah,9
    ;mov dx,offset msg6
    ;int 21h                   ;affichage de la chaine de caractère (msg6):"le mot le plus long dans votre chaine est"
     
    ;sub indice_mot,t_max
    ;mov cx,t_max
    ;mov ah,2
    ;mov si,indice_mot
     
    ;le_mot_plus_long:
    ;mov dl,tab[si]
    ;int 21h
    ;inc si
    ;loop le_mot_plus_long
     
    jmp incrementation
     
    re_initialisation:
    mov p,0			;reinitialiser  nbre de carateres à 0
     
     
    incrementation:
    inc si			;incrementer nb caracteres contenant meme les separateurs
     
     
     
     
    loop calcul_longueur_mot
    Bon la partie code mise en commentaire c'est celle que j'ai essayé d'appliquer et cette partie toute entière c'est celle qui traite tout les mots sauf le dernier. J'aimerais bien corriger ceci pour pouvoir ensuite appliquer le principe sur le dernier mot.

  2. #2
    Membre régulier Avatar de Midou45
    Homme Profil pro
    Ingénieur
    Inscrit en
    Novembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 156
    Points : 110
    Points
    110
    Par défaut
    bonjour,
    Sa serai plus facile de detecter votre erreur avec le turbo debug ou bien avec le Emu8086 l'emulateur de 8086, si vous voulez je peux vous les fournir.
    " La nature nous a donné deux oreilles et seulement une langue afin de pouvoir écouter d'avantage et parler moins." Zénon d'Elée

Discussions similaires

  1. [TASM] Le mot le plus long d'une chaîne de caractères
    Par barbaross15 dans le forum x86 16-bits
    Réponses: 0
    Dernier message: 10/11/2010, 21h45
  2. Le mot le plus long
    Par bernedef dans le forum Langage
    Réponses: 12
    Dernier message: 25/05/2010, 13h27
  3. Rechercher mot le plus long d'une chaine de caractère
    Par fafabzh6 dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/10/2009, 17h15
  4. [RegEx] Conserver le mot le plus long
    Par Zoldik dans le forum Langage
    Réponses: 4
    Dernier message: 18/03/2009, 12h14
  5. Trouver le mot le plus long dans une chaîne
    Par bassoum dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 02/11/2008, 10h45

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