problème avec exercice asm avec nasm et interruption dos 21h
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

problème avec exercice asm avec nasm et interruption dos 21h



  1. #1
    inviteb17448ba

    problème avec exercice asm avec nasm et interruption dos 21h


    ------

    bonsoir

    dans un exercice de tp de asm avec nasm et 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 li ensuite un 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:
    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 a chaque fois que je tape o ou n seul donc pas de entrée il reviens a 'Sommes-nous en fin d apres midi (O/N) ?

    merci de m'indiqué ma faute ou me donné une solution avec l'interruption 21h fonction 01h

    merci beaucoup

    -----

  2. #2
    Jack
    Modérateur

    Re : problème avec exercice asm avec nasm et interruption dos 21h

    il y a un truc bizarre dans ton code: une fois que tu vas afficher msg1 par exemple, ton programme va afficher msg2 puis msg3. Il ne manquerait pas de JMP FIN par hasard?

    A+

  3. #3
    inviteb17448ba

    Re : problème avec exercice asm avec nasm et interruption dos 21h

    même avec le jmp fin le même problème malheureusement

  4. #4
    polo974

    Re : problème avec exercice asm avec nasm et interruption dos 21h

    majuscule/minuscule ? ? ?
    dans le msg tu demandes O/N, dans le code, tu testes o/n, c'est pas pareil...

    sinon, le plus simple est d'afficher ce qu'il y a dans AL...
    Jusqu'ici tout va bien...

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : problème avec exercice asm avec nasm et interruption dos 21h

    Citation Envoyé par polo974 Voir le message
    majuscule/minuscule ? ? ?
    dans le msg tu demandes O/N, dans le code, tu testes o/n, c'est pas pareil...
    Tu as raison mais le problème est ailleurs. Le programme ne reboucle à aucun moment sur le label MAIN. Le message de départ ne doit donc plus s'afficher. La seule raison que je vois, c'est un problème de pile. Je ne sais pas trop à quoi servent les instructions d'entrée et de sortie du programme, mais une mauvaise gestion d ela pile pourrait entrainer une réexécution de ce sous-programme lors de l'exécution de l'instruction ret.

    Pour suivre l'évolution de l'exécution en pas à pas, il est possible d'utiliser ce sympatique programme:
    http://www.emu8086.com/

    A+

  7. #6
    polo974

    Re : problème avec exercice asm avec nasm et interruption dos 21h

    Comme dirait Dr House "Tout le monde ment..." (vahh, les références scientifique... ), même pas volontairement d'ailleurs, donc comme il ne se passe rien sur la pile dans le programme, soit int 21 est buggée (ça se saurait depuis le temps...), soit anouarattn voulait dire que ça rebouclait à la saisie...

    Au fait, anouarattn, tu es toujours là ? ? ?

    Si oui, dis nous où tu en es de ton coté (et si tu as résolu, comment), merci.
    Jusqu'ici tout va bien...

Discussions similaires

  1. [CCS] Petit problème avec interruption RDA
    Par invite20f901d9 dans le forum Électronique
    Réponses: 5
    Dernier message: 28/03/2012, 17h18
  2. problème de conversion .asm à .HEX avec MPLAB
    Par invitef57f0550 dans le forum Électronique
    Réponses: 5
    Dernier message: 21/11/2011, 00h30
  3. Probléme avec interruption INTCON.RBIE sur 16F88...
    Par invite7a49d0d5 dans le forum Électronique
    Réponses: 21
    Dernier message: 27/06/2010, 02h07
  4. Probléme de plein écran avec DOS BOX.
    Par invitec4d2e6d6 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 07/03/2009, 17h58
  5. Problème ligne DOS avec extension .bat
    Par invite4eb5d5b8 dans le forum Logiciel - Software - Open Source
    Réponses: 15
    Dernier message: 02/01/2009, 22h53