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 :

Problème de saisie de caractères


Sujet :

Assembleur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable R&D
    Inscrit en
    Décembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable R&D
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 7
    Points : 11
    Points
    11
    Par défaut Problème de saisie de caractères
    Bonjour,

    Je viens solliciter votre aide en cette froide matinée d'automne ou le soleil brille et les oiseau cha..... Euh .. je m'égare

    Revenons au sujet :

    J'ai comme devoir : créer un programme qui définit si la phrase rentrée par l'utilisateur est un palindrome.

    J'ai saisi la logique, là n'est pas le problème.

    Le problème c'est que... lorsque je saisis un mot au clavier pour tester, il rajoute des lettres :o

    Exemple :

    Je (désire)rentre kayak$ ($ pour terminer la saisie)
    il saisit kvavyvavkv$v
    et si je ne vide pas le buffer d'entrée ... il m'affiche vvvvvvvvvvvvvvvvvvv sans pouvoir saisir quoi que se soit

    Je travaille avec TASM et TLINK pour la traduction et le link et voici la partie de code qui me pose problème (saisie / affichage)
    Je suis sous Windows XP Pro.

    Voici la partie du code pour la saisie ... je n'ai pas mis la logique de recherche du palindrome .... c'est un peu inutile dans l'exemple

    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
    .model small
    .stack
    .data
     
            phrase DW 50 DUP (0020h)    ;espace 50 'espace'
            palin DB 'Est un palindrome$'
            non DB 'N est pas un palindrome$'
    .code
    deb:
     
           mov bx,@data
           mov dx,bx
           lea bx,phrase
    saisie:
            mov al,1
            mov ah,0Ch
            int 21h  ;Purge Buffer
            mov al,0
            mov ah,2
            int 21h
            mov [bx],al  ;saisie des lettres
            inc bx
            cmp al,'$'      ;stop quand '$'
            jne saisie
            lea bx,phrase
            mov ah,9
            int 21h      ;affichage phrase
    (...)
    Merci d'avance
    XantaX

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 84
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Essaye de definir ton buffer phrase en utilisant un DB et non un DW, car tu occupes plus de memoire que necessaire et je pense que cela gene l'int 21h

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable R&D
    Inscrit en
    Décembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable R&D
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par KnightsOfTheRound
    Bonjour,

    Essaye de definir ton buffer phrase en utilisant un DB et non un DW, car tu occupes plus de memoire que necessaire et je pense que cela gene l'int 21h
    J'avais déjà essayer cela ... en fait mes premiers essais les avais fait avec un DB.

    je vien de réessayer et c'est toujours la meme chose

  4. #4
    Membre habitué
    Avatar de TangiX
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 139
    Points : 168
    Points
    168
    Par défaut
    Salut
    Moi ce qui me gene c que tu ne sauvegarde pas BX sur ta pile avant d'appele tes fonctions via l'int 21h. Je n'ai pas verifié l'etat de retour de BX apres ces fonctions particuliere mais generalemnt il vaut mieux le faire par defaut quand on ne connait pas le comportement d'une fonction.
    Sinon le DW ou DB ne change que la longueurn de ton buffer mais attention a l'init :
    020h avec DB
    02020h avec DW

    en esperant t'apporter une aide

    ++
    TangiX

Discussions similaires

  1. Problème de saisie d'un caractère
    Par Mister Ghazi dans le forum Débuter
    Réponses: 7
    Dernier message: 16/01/2009, 19h42
  2. Réponses: 7
    Dernier message: 24/03/2007, 18h10
  3. [2.0][C#]Problème de saisie du caractère "|"
    Par tgarcia dans le forum ASP.NET
    Réponses: 7
    Dernier message: 05/01/2007, 12h27
  4. Saisie du caractère '@' ?
    Par ravelo dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/06/2004, 16h58
  5. Problème de chaîne de caractères (BSTR)
    Par patvdb dans le forum MFC
    Réponses: 2
    Dernier message: 26/02/2004, 15h44

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