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 :

Saisie et affichage d'une chaîne de caractères


Sujet :

Assembleur

  1. #1
    Membre régulier

    Inscrit en
    Février 2004
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 120
    Points : 80
    Points
    80
    Par défaut Saisie et affichage d'une chaîne de caractères
    L'objectif de ce petit programme est de saisir une chaine
    affecter son adresse dans une variable Adr
    ensuite l'afficher en utilisant cette variable
    et afficher le deuxieme caractere de cette chaine toujours a travers la variable Adr
    Le probleme c est que je n'arrive afficher le deuxieme caractere de la chaine

    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
    DATA Segment
     
        mot1 db 20 dup('$')
        return db 13,10,('$')
        Adr dw 
     
    DATA ends
    CODE SEGMENT
            assume cs:code,ds:data
    debut:
            mov ax,data
            mov ds,ax
    ;-------lecture de la chaine
            mov ah,0Ah
            mov dx,offset mot1
            int 21h
    ;-----Affectation de l'adresse de debut de chaine dans 
    ;-----la variable adr
            lea dx,[mot1+2]
            mov adr1,dx
    ;-----Affichage de retour chariot
     
            mov ah,09h
            mov dx,offset return
            int 21h
     
    ;-----Affichage de la chaine saisie
     
            mov ah,09h
            mov dx,adr1
            int 21h
    ;-----Affichage de retour chariot
     
            mov ah,09h
            mov dx,offset return
            int 21h
    ;-----Affichage du dexieme caratere de la chaine saisie
     
            mov ah,02h
            mov dx,[adr+1]
            int 21h
    Fin:
            mov ah,4ch
            int 21H
    code ends
    end debut
    Je programme sous DOS en utilisant la syntaxe du 8086
    merci pour vos aides

  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 : 40
    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

    Déja il y a un petit problème ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ;-----Affichage du dexieme caratere de la chaine saisie
     
            mov ah,02h
            mov dx,[adr+1]
            int 21h
    La fonction 02h de l'int 21h affiche le caractère DL, et la tu places 2 caractères dans DX ... enfin au pire ça t'affiche le 3ème caractère au lieu du 2ème. (si je me souviens bien avec l'ordre Intel, ça devrait bien etre le 2ème).

    Tu devrais aussi initialiser les 2 premiers octets de ton buffer pour la fonction 0Ah de l'int 21h je pense.

    Sinon ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ;-----Affectation de l'adresse de debut de chaine dans
    ;-----la variable adr
            lea dx,[mot1+2]
            mov adr1,dx
    Tu peux essayer de remplacer le lea par MOV dx,OFFSET mot1 + 2
    Avant de poster, merci de consulter les règles du forum

  3. #3
    Membre régulier

    Inscrit en
    Février 2004
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 120
    Points : 80
    Points
    80
    Par défaut
    c y est j'ai trouvé le probleme il fallait affecter le contenue de adr dans BX ou BP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ;-----Affichage du dexieme caratere de la chaine saisie 
           mov ah,02h 
           mov BX,adr
           mov dx,[bx+1] 
           int 21h
    Merci pour ton aide
    @+
    SALI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage d'une chaîne de caractères dans un textarea
    Par laurentSc dans le forum Langage
    Réponses: 10
    Dernier message: 15/12/2009, 23h27
  2. Saisie et affichage d'une chaîne de caractères
    Par thouraya24 dans le forum x86 16-bits
    Réponses: 8
    Dernier message: 13/04/2009, 19h01
  3. Problème d'affichage d'une chaîne de caractères
    Par bob32 dans le forum Assembleur
    Réponses: 13
    Dernier message: 23/06/2008, 22h06
  4. limiter l'espace d'affichage d'une chaîne de caractères
    Par loic.ledouble dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 26/04/2008, 22h49
  5. [MySQL] Affichage d’une chaîne de caractères contenant des parenthèses
    Par mathiotp dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/11/2007, 20h31

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