bonjour,
j'ai un gros probleme
j'ai écrit un code assembleur qui permet de trouver le mot le plus long et de l'afficher mais à l'execution il affiche des lettres et c'est tout..je demande de l'aide pour ce code et merci

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
.model small
.stack 100h
.data
chaine db 10,13,"je veux seulement tester$"
msg3 db 10,13,"la longueur du mot le plus long est:$"
msg6 db 10,13, "le mot le plus long dans votre chaine est:$"
indice_mot dw 0
t_max dw 0
i db 0
j dw 0
l dw 24 
taille dw 24
motpl db 80 dup('$')
Mot db ?
moc db 0
lmotpl dw 0
.code
start: 
xor dx,dx
xor bx,bx
xor cx,cx
xor si,si
mov si,offset chaine
mov di,offset mot
 
mov bx,1
debut_de_boucle: 
mov al,Chaine[si]
cmp taille,bx
jl fin_boucle
mov dx,bx
debut_de_boucle2:
cmp taille,dx
jg fin_boucle2 
cmp al,' '
je fin_boucle2
mov Mot[di], al
inc dx
inc moc
 
jmp debut_de_boucle2
fin_boucle2:
mov ch,moc 
mov cl,b.t_max
cmp ch,cl
jle finsi
call copy
finsi:
inc si
jmp debut_de_boucle
fin_boucle:
 
mov ah,9
mov dx,offset msg6
int 21h
mov ah,9
mov dl,motpl
int 21h 
copy proc
LEA SI,mot+2
LEA DI,motpl+2
 
MOV CL,mot+1 
MOV CH,00H
LAB1:   
MOV AL,DS:BYTE PTR[SI]
MOV DS:BYTE PTR[DI],AL
INC DI
INC SI   
LOOP LAB1 
endp
end start