marooh
Messages postés122Date d'inscriptionvendredi 8 octobre 2010StatutMembreDernière intervention16 novembre 2011
-
21 nov. 2010 à 17:09
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 2014
-
22 nov. 2010 à 21:12
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
voici le code
.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:$"
t_max dw 0
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