Bonjour,

J'ai encore besoin d'aide pour une autre fonction.
J'ai écrit un code pour une fonction qui calcule le nombre de mots et les affiche dans un cadre bleu. Après assemblage, l'exécution ne donne que le cadre bleu. Si vous pouvez bien me corriger :
voici le code
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
.MODEL  SMALL                   
.STACK  200h                       
.DATA
msg1       DB 'The Total No. Of Words are: ','$'
msg2       DB 0AH,0DH,'          The Words are:',0DH,0AH,'          $'
chaine     DB 'je veux tester','$'
ACT  DB ? 
NXLN DB 0AH,0DH,'          $'
DOT DB '- $' 
DIVS DB 0AH 
TEMP DB 02 DUP (?)
.code
start:
MOV AX,@DATA
MOV DS,AX  
MOV ES,AX
MOV AH,06H
MOV AL,00
MOV BH,17H  ;White on Blue
MOV CX,050AH
MOV DH,20
MOV DL,70
INT 10H 
MOV AH,02  
MOV BH,00H
MOV DX,050AH
INT 10H 
MOV BX,01
MOV CH,00
MOV CL,ACT
MOV DI,OFFSET chaine
ADD DI,CX
MOV [DI],'$'
Agn: CMP [DI],' '
JNE Skip
INC BL
MOV [DI],'$'
PUSH DI
Skip:  DEC DI
LOOP Agn
LEA DX,msg1
MOV AH,09H
INT 21H
MOV CL,BL
CALL DISPBX
MOV BX,01H
MOV AH,09H
 
MOV DX,OFFSET msg2
INT 21H
 
PUSH OFFSET ACT
 
Redisp: 
LEA DX,NXLN
INT 21H
MOV DX,OFFSET DOT
 
POP DX
INC DX 
INT 21H  
INC BX
LOOP Redisp
 
MOV AX,4C00H
INT 21H
 
DISPBX PROC
 
MOV AX,BX
MOV SI,00  
Rediv:  DIV DIVS
MOV TEMP[SI],AH
MOV AH,00
INC SI
TEST AL,0FFH
JNZ Rediv
 
MOV AH,02
Nextdgt:  DEC SI
MOV DL,TEMP[SI]
ADD DL,30H
INT 21H
TEST SI,0FFFH
JNE Nextdgt
 
RET
DISPBX ENDP
 
INT 21H