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 91 92 93 94 95 96
|
mov si, offset Chaine ; si pointe su le debut du tableau
mov di , offset MotLong
mov bx , offset MotLongFinal
mov NbC , 0
mov NbCMax , 0
repeterS2:
mov al,Chaine[si]
cmp al,' '
je stopAjout
cmp al,' '
je stopAjout
cmp al,','
je stopAjout
cmp al,'.'
je stopAjout
cmp al,0dh
je stopAjout
cmp al,0ah
je stopAjout
cmp al,':'
je stopAjout
cmp al,ar
je stopAjout
; ajout du caractere dans MotLong
mov MotLong[di], al
inc di
add NbC , 1
inc si
jmp repeterS2
stopAjout : ; on compare la taille avec le precedant taille max
;mov MotLong[di] , "$"
mov di , offset MotLong
mov cl,NbCMAx
mov ch,NbC
cmp ch, cl ; si nbc < = nbcmax pas changmentdumot
jle pasChangementDuMot
; nbc > nbcmax -> changement du mot
; copie de MotLong dans MotLongFinal
mov di , offset MotLong
mov bx, offset MotLongFinal
mov ah , 0
repeterM :
mov cl , MotLong[di]
mov MotLongFinal[bx] , cl
inc ah
cmp ah , NbC
jge sortirM
inc di
inc bx
jmp repeterM
sortirM :
mov cl , NbC
mov NbCMax , cl
mov NbC , 0
pasChangementDuMot :
cmp al , ar
je finRepeterS2
inc si
jmp repeterS2
finRepeterS2:
....
;affiche message 'mot plus long' ( non Fait)
mov dx, offset MMotLong
mov ah,9
int 21h
mov dx , offset MotLongFinal
int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Partager