Voila alors je dois faire un programme qui vérifie une réponse, en l'occurrence des bêtes calculs de tables de multiplications dans un temps donné (10sec) voila mon code mais le résultat n'est pas satisfaisant dans le sens ou il n'affichera jamais que le temps est écoulé et acceptera une réponse trop tardive
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
 
; Affiche enonce
		lea dx, enonce1
		mov AH, 09h
		int 21h
				; récupère l'heure
		mov AH,2Ch
		int 21h
		mov mindep,CL
		mov secdep,DH
 
		mov AH,07h
		int 21h
		mov rep1a,AL ;récupère le premier car de la réponse
		mov AH,07h
		int 21h
		mov rep1b,AL ; récupère le second car de la réponse
 
 
		mov AH,2Ch
		int 21h
		mov minar, CL
		mov secar, DH
		mov ah,mindep
		mov al,secdep
		cmp cl,ah
		jne mindif
		sub dh,al
		cmp dh,10
		ja timeout1
compar :
		cmp rep1a,51
		jne bip
		cmp rep1b,53
		jne bip
		lea dx,good ;signale que la réponse est bonne
		mov ah, 09h
		int 21h
	    mov score,1 ;incrémente le score 
	    jmp eno2
 
bip :   ;signale que la réponse est mauvaise
		lea dx, bad
		mov AH, 09h
		int 21h
		mov score,0 ; le score reste a zéro
		jmp eno2
 
mindif : ;comparaison du délai en cas de changement de minute
		 mov ah, secdep
		 mov al, secar
		 sub ah,al
		 cmp ah,50
		 jb timeout1
		 jmp compar 
 
timeout1 : ;signale que le temps est écoulé
		lea dx, tec
		mov AH, 09h
		int 21h
		jmp eno2

lorsque l'on entre la réponse (le calcul 1 est 7*5 donc je vérifie que le premier caractère est un 3 et le suivant un 5) ensuite je refais une interruption pour récupérer l'heure système, j'effectue d'abord une comparaison sur les minutes et ensuite je soustrais les sec(lors de l'affich et lors de la rentrée au clavier) ensuite il y a un ja timeout1...il n'est pas logique car en gros si 10 est plus grand que la diff de sec on signale que le temps est dépassé...je l'ai fait parce que lorsque je mettais jb timeout1 qui est pourtant un raisonnement logique, le prog m'affichait directement que le temps est écoulé....