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 :

Problème avec un exercice assembleur : NASM et interruption DOS 21h


Sujet :

x86 16-bits Assembleur

  1. #1
    Membre du Club
    Profil pro
    developpeur
    Inscrit en
    Juin 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : developpeur

    Informations forums :
    Inscription : Juin 2009
    Messages : 57
    Points : 67
    Points
    67
    Par défaut Problème avec un exercice assembleur : NASM et interruption DOS 21h
    Bonsoir,

    Dans un exercice d'un TP d'assembleur avec Nasm et l'interruption DOS 21h sous Windows, Il est demandé d’écrire un programme qui affiche la question « somme-nous en fin d'après-midi (o/n) ? ».

    Le programme lit ensuite une touche au clavier et, selon la réponse de l'utilisateur, affiche le message « allez, in faut rentrer chez soi ». Si la réponse est « o » ou « courage, on a encore beaucoup de chose a faire ! ». Si c'est « n », donc ma réponse est la suite :

    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
    Programme Exercice 1 - 2
     
    segment .data
    	msg     DB 'Sommes-nous en fin d apres midi (O/N) ?' ,13,10,'$'
    	msg1    DB 'Allez il faut rentrer chez soi !' ,13,10,'$'
    	msg2    DB 'Courage, on a encore beaucoup de choses a faire' ,13,10,'$'
    	msg3    DB 'Vous avez tapez un choix errone' ,13,10,'$'
     
     
    segment .text
     
     
    ; nasm -f bin ex.asm -o ex.com
    ; .\ex
     
     
      enter 0,0
      pusha
     
     
    MAIN:  
        mov AH,09h
        mov DX, msg
        int 21h
     
     
     
    LECTURE:
     
        mov AH,01h
    	int 21h
     
    	CMP AL,'o'
    	JE  MSG_1
     
    	CMP AL,'n'
    	JE  MSG_2
     
    	JMP MSG_3
     
     
    MSG_1:
        mov AH,09h
        mov DX, msg1
        int 21h           
     
     
    MSG_2:
        mov AH,09h
        mov DX, msg2
        int 21h
     
     
    MSG_3:
        mov AH,09h
        mov DX, msg3
        int 21h
        JMP LECTURE
     
    FIN:
     
    popa
    mov eax,0
    leave
    ret
    Le problème est que, à chaque fois que je tape « o » ou « n » seul, donc pas d'entrée, il revient à « sommes-nous en fin d après-midi (o/n) ? ».

    Merci de m'indiquer ma faute ou me donner une solution avec l'interruption 21h, fonction 01h.

    Merci beaucoup.

  2. #2
    Membre chevronné
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Points : 1 905
    Points
    1 905
    Par défaut
    Bonjour,

    à la fin de tes sous programmes MSG_1 et MSG_2 Il te faut un JMP FIN
    (ou un saut vers un sous programme qui attend à nouveau une touche pour avoir
    le temps de lire le message car la fenêtre sous win$ va se fermer de suite)

    a+ François

Discussions similaires

  1. problème avec un exercice en LDA
    Par djoufouf dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 07/01/2013, 01h31
  2. problème avec un exercice en C
    Par prikama dans le forum Débuter
    Réponses: 8
    Dernier message: 20/12/2011, 15h58
  3. Réponses: 1
    Dernier message: 24/10/2011, 10h49
  4. [static_cast] Problème avec un exercice.
    Par sekiryou dans le forum C++
    Réponses: 25
    Dernier message: 09/04/2008, 13h21
  5. [NASM] Problème avec l'appel des interruptions
    Par homeostasie dans le forum Assembleur
    Réponses: 3
    Dernier message: 23/01/2007, 16h50

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