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 :
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) ? ».
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
Merci de m'indiquer ma faute ou me donner une solution avec l'interruption 21h, fonction 01h.
Merci beaucoup.
Partager