Accueil > > > MOT PALINDROME
MOT PALINDROME
Information sur la source
Description
Entrer au clavier une chaine de caractère et programme cherche les mot palindromes et les affiche a l'écran.
Source
- .MODEL SMALL
- .STACK
- .DATA
-
- Titre db "TP Architecture: mots palindromes dans un texte",10,13,"$"
- Université db "UNIVERSITE A MIRA DE BEJAIA",10,13,"$"
- Faculté db "FACULTE DE SCIENCES EXACTES",10,13,"$"
- Département db "DEPARTEMENT D'INFORMATIQUE",10,13,"$"
- Ligne DB "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$"
- msg1 Db "Entrer une chaine de caracteres : $"
- msg2 DB 0ah, 0dh, "Les mots palindromes dans le texte sont: $"
- msg3 DB 0ah, 0dh, "Le texte n'a pas de mots palindromes! ",10,13,"$"
- msg4 DB 0ah, 0dh, "Le nombre des mots plindromes est: $"
- mgs1a db "ANNEE UNIVERSITAIRE 2007_2008",10,13,"$"
- mgs2a db "TINSALHI FAOUZI",10,13,"$"
- realiser db "TARVAIL REALISER PAR :",10,13,"$"
- recommencer DB 'VEUILLEZ FAIRE VOTRE CHOIX: ENTER POUR RECOMMENCER/ ESC POUR SORTIR.$'
- tab DB 250, ?, 251 dup ('$')
- A DW ?
- B DW ?
- C DW ?
- L DB 11
- K DB 5
-
- .CODE
-
- MAIN PROC
-
- DEBUT:
-
- MOV AX, @DATA
- MOV DS, AX
-
- MOV AH, 0Fh
- INT 10h
-
- MOV AH, 0h
- INT 10h
-
- MOV DH,5
- MOV DL,15
- MOV AH, 02h
- INT 10H
- mov ax,0900h
- lea dx,Titre
- int 21h
-
- MOV DH,1
- MOV DL,50
- MOV AH, 02h
- INT 10H
- mov ax,0900h
- lea dx,Université
- int 21h
-
- MOV DH,2
- MOV DL,50
- MOV AH, 02h
- INT 10H
- mov ax,0900h
- lea dx,Faculté
- int 21h
-
- MOV DH,3
- MOV DL,50
- MOV AH, 02h
- INT 10H
- mov ax,0900h
- lea dx,Département
- int 21h
-
- MOV DH, 6
- MOV DL, 20
- MOV AH, 02h
- INT 10h
- MOV AX, 0900h
- LEA DX, Ligne
- INT 21h
-
- MOV DH, 8
- MOV DL, 0
- MOV AH, 02h
- INT 10h
- MOV AX, 0900h
- LEA DX, msg1
- INT 21h
-
- MOV AH, 0Ah
- LEA DX, tab
- int 21h
-
-
- PLACE:
-
- MOV SI, 2
- MOV BX, OFFSET tab
- MOV AL, [BX + 1]
- MOV AH, 0
- INC AX
- MOV A,AX
- MOV C,0
-
- ;**************************************tester la fin de texte********************************************************
- TESTER:
-
- CMP SI, A
- JBE RANGER
- JMP FIN1
-
- RANGER:
-
- MOV BX,SI
- MOV CX,0
-
- ;***************************************** SAUTER LES PONCTUATION DE TEXTE ****************************************
-
- SAUTER_VIDE:
-
- CMP tab[SI], 3Fh ;Comparaison pour les caractères ! " # $ % & ' ( ) * + , - . /O 1 .... 9: ; < = > ?
- JB VID_SI
-
- CMP tab[SI], 5Bh ;Comparaison pour les caractères A B C ... Z
- JB TRANSFORMER
-
- CMP tab[SI], 60h ;Comparaison pour les caractères [ \ ] ^ _
- JB VID_SI
-
- CMP tab[SI], 7Bh ;Comparaison pour les caractères a b c ... z
- JB TRANSFORMER
-
- CMP tab[SI], 7Fh ;Comparaison pour les caractères | ~
- JB VID_SI
-
- MOV BX,SI ;Sauvgarder dans BX le debut du prochain mot a verifier
- JMP TRANSFORMER
-
- VID_SI:
-
- INC SI
- mov bx,si
- JMP TESTER
-
- ;*************************************quelques transformations d'un etat à un autre *******************************
-
- TRANSFORMER:
-
- CMP tab[SI], 40h ;Comparaison pour les caractères ! " # $ % & ' ( ) * + , - . /0 1 ... 9: ; < = > ?
- JB FIN_MOT
-
- CMP tab[SI], 5Ah ;Comparaison pour les caractères A B C ... Z
- JBE VALIDER
-
- CMP tab[SI], 61h ;Comparaison pour les caractères [ \ ] ^ _
- JB FIN_MOT
-
- CMP tab[SI], 7Ah ;Comparaison pour les caractères a b c ... z
- JBE MAJUSCULE
-
- CMP tab[SI], 82h ;Comparaison pour les caractères é
- JE EGALE_é_e
-
- CMP tab[SI], 85h ;Comparaison pour les caractères à
- JE EGALE_à_a
-
- CMP tab[SI], 88h ;Comparaison pour les caractères ê
- JE EGALE_ê_e
-
- CMP tab[SI], 8Ah ;Comparaison pour les caractères è
- JE EGALE_è_e
-
- CMP tab[SI], 97h ;Comparaison pour les caractères ù
- JE EGALE_ù_u
-
-
-
- MAJUSCULE:
-
- SUB tab[SI], 20h
- JMP VALIDER
-
- EGALE_é_e:
-
- SUB tab[SI], 3Dh
- JMP VALIDER
-
- EGALE_à_a:
-
- SUB tab[SI], 44h
- JMP VALIDER
-
- EGALE_ê_e:
-
- SUB tab[SI], 43h
- JMP VALIDER
-
- EGALE_è_e:
-
- SUB tab[SI], 45h
- JMP VALIDER
- EGALE_ù_u:
-
- SUB tab[SI], 42h
- JMP VALIDER
-
- ;***********************************valider les transformations*************************************************************
- VALIDER:
-
- MOV DL,tab[SI]
- MOV DH,0
- PUSH DX
- INC CX
- INC SI
- JMP TRANSFORMER
-
- ;*************************************reperer un mot du texte*************************************************************
- FIN_MOT:
-
- MOV B,SI
- DEC SI ;Sauvgerder les paralettres
- MOV DI,SI ;du nouveau mot a verifier
- MOV SI,BX
-
- CMP tab[SI+1], 27h
- JE SUITE
-
- JMP VERIFICATION
-
- ;*******************************verifier le mot**************************************************************************
- VERIFICATION:
-
- MOV DL,tab[SI]
- CMP tab[DI],DL
- JNE SUITE
- INC SI
- DEC DI
- CMP SI,DI
- JA AFFICHAGE
- JMP VERIFICATION
-
- SUITE:
-
- MOV SI,B
- INC SI
- JMP TESTER
-
-
- ;*******************************AFFICHAGE DU MOT**************************************************************************
-
- AFFICHAGE:
-
- CMP C,0
- JNE AFFICHAGE1
-
- MOV DH, 9
- MOV DL, 5
- MOV AH, 02h
- INT 10h
-
- MOV AX, 0900h
- LEA DX, msg2
- INT 21h
-
- AFFICHAGE1:
-
- INC C
- cmp c,8
- je AFFICHAGE2
- cmp c,15
- je AFFICHAGE2
- CMP C,22
- je AFFICHAGE2
- jmp AFFICHAGE3
-
- AFFICHAGE2:
-
- add k,15
- mov l,11
-
- AFFICHAGE3:
-
- INC L
- MOV DH, L
- MOV DL, k
- MOV AH, 02h
- INT 10h
-
- AFFICHAGE4:
-
- POP DX
- mov ah,02
- int 21h
-
- DEC CX
- CMP CX,0
- JNE AFFICHAGE4
-
- JMP SUITE
-
- FIN1:
-
- CMP c,0
- JE FIN2
-
- MOV DH, 19
- MOV DL, 0
- MOV AH, 02h
- INT 10h
-
- MOV AX, 0900h
- LEA DX, msg4
- INT 21h
-
-
- Mov Ax,C
- mov bx,10
- mov cx,0
-
- boucle1:
-
- mov dx,0
- div bx
- push dx
- inc cx
- cmp ax,0
- je boucle2
- jmp boucle1
-
- boucle2:
-
- pop dx
- add dx,48
- mov ah,2
- int 21h
- dec cx
- cmp cx,0
- jne boucle2
-
- fboucle2:
-
- JMP RECOMMENCE
-
- FIN2:
-
- MOV DH, 9
- MOV DL, 0
- MOV AH, 02h
- INT 10h
-
- MOV AX, 0900h
- LEA DX, msg3
- INT 21h
-
- JMP RECOMMENCE
-
- RECOMMENCE:
-
- MOV DH, 23
- MOV DL, 10
- MOV AH, 02h
- INT 10h
- MOV DX, OFFSET recommencer
- PUSH AX
- MOV AX, 0900h
- INT 21h
- POP AX
-
- MOV AH, 01h
- INT 21h
- CMP AL, 1Bh
- JE QUIT
- MOV L,11
- mov k,5
- JMP DEBUT
-
- QUIT:
-
- MOV AH, 0Fh
- INT 10h
-
- MOV AH, 0h
- INT 10h
-
- MOV DH,3
- MOV DL,10
- MOV AH, 02h
- INT 10H
- mov ax,0900h
- lea dx,realiser
- int 21h
-
- MOV DH,5
- MOV DL,30
- MOV AH, 02h
- INT 10H
- mov ax,0900h
- lea dx,mgs2a
- int 21h
-
- MOV DH,6
- MOV DL,30
- MOV AH, 02h
- INT 10H
- mov ax,0900h
- lea dx,mgs1a
- int 21h
-
- MOV AX, 4C00h
- INT 21h
- main endp
-
- END main
.MODEL SMALL
.STACK
.DATA
Titre db "TP Architecture: mots palindromes dans un texte",10,13,"$"
Université db "UNIVERSITE A MIRA DE BEJAIA",10,13,"$"
Faculté db "FACULTE DE SCIENCES EXACTES",10,13,"$"
Département db "DEPARTEMENT D'INFORMATIQUE",10,13,"$"
Ligne DB "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$"
msg1 Db "Entrer une chaine de caracteres : $"
msg2 DB 0ah, 0dh, "Les mots palindromes dans le texte sont: $"
msg3 DB 0ah, 0dh, "Le texte n'a pas de mots palindromes! ",10,13,"$"
msg4 DB 0ah, 0dh, "Le nombre des mots plindromes est: $"
mgs1a db "ANNEE UNIVERSITAIRE 2007_2008",10,13,"$"
mgs2a db "TINSALHI FAOUZI",10,13,"$"
realiser db "TARVAIL REALISER PAR :",10,13,"$"
recommencer DB 'VEUILLEZ FAIRE VOTRE CHOIX: ENTER POUR RECOMMENCER/ ESC POUR SORTIR.$'
tab DB 250, ?, 251 dup ('$')
A DW ?
B DW ?
C DW ?
L DB 11
K DB 5
.CODE
MAIN PROC
DEBUT:
MOV AX, @DATA
MOV DS, AX
MOV AH, 0Fh
INT 10h
MOV AH, 0h
INT 10h
MOV DH,5
MOV DL,15
MOV AH, 02h
INT 10H
mov ax,0900h
lea dx,Titre
int 21h
MOV DH,1
MOV DL,50
MOV AH, 02h
INT 10H
mov ax,0900h
lea dx,Université
int 21h
MOV DH,2
MOV DL,50
MOV AH, 02h
INT 10H
mov ax,0900h
lea dx,Faculté
int 21h
MOV DH,3
MOV DL,50
MOV AH, 02h
INT 10H
mov ax,0900h
lea dx,Département
int 21h
MOV DH, 6
MOV DL, 20
MOV AH, 02h
INT 10h
MOV AX, 0900h
LEA DX, Ligne
INT 21h
MOV DH, 8
MOV DL, 0
MOV AH, 02h
INT 10h
MOV AX, 0900h
LEA DX, msg1
INT 21h
MOV AH, 0Ah
LEA DX, tab
int 21h
PLACE:
MOV SI, 2
MOV BX, OFFSET tab
MOV AL, [BX + 1]
MOV AH, 0
INC AX
MOV A,AX
MOV C,0
;**************************************tester la fin de texte********************************************************
TESTER:
CMP SI, A
JBE RANGER
JMP FIN1
RANGER:
MOV BX,SI
MOV CX,0
;***************************************** SAUTER LES PONCTUATION DE TEXTE ****************************************
SAUTER_VIDE:
CMP tab[SI], 3Fh ;Comparaison pour les caractères ! " # $ % & ' ( ) * + , - . /O 1 .... 9: ; < = > ?
JB VID_SI
CMP tab[SI], 5Bh ;Comparaison pour les caractères A B C ... Z
JB TRANSFORMER
CMP tab[SI], 60h ;Comparaison pour les caractères [ \ ] ^ _
JB VID_SI
CMP tab[SI], 7Bh ;Comparaison pour les caractères a b c ... z
JB TRANSFORMER
CMP tab[SI], 7Fh ;Comparaison pour les caractères | ~
JB VID_SI
MOV BX,SI ;Sauvgarder dans BX le debut du prochain mot a verifier
JMP TRANSFORMER
VID_SI:
INC SI
mov bx,si
JMP TESTER
;*************************************quelques transformations d'un etat à un autre *******************************
TRANSFORMER:
CMP tab[SI], 40h ;Comparaison pour les caractères ! " # $ % & ' ( ) * + , - . /0 1 ... 9: ; < = > ?
JB FIN_MOT
CMP tab[SI], 5Ah ;Comparaison pour les caractères A B C ... Z
JBE VALIDER
CMP tab[SI], 61h ;Comparaison pour les caractères [ \ ] ^ _
JB FIN_MOT
CMP tab[SI], 7Ah ;Comparaison pour les caractères a b c ... z
JBE MAJUSCULE
CMP tab[SI], 82h ;Comparaison pour les caractères é
JE EGALE_é_e
CMP tab[SI], 85h ;Comparaison pour les caractères à
JE EGALE_à_a
CMP tab[SI], 88h ;Comparaison pour les caractères ê
JE EGALE_ê_e
CMP tab[SI], 8Ah ;Comparaison pour les caractères è
JE EGALE_è_e
CMP tab[SI], 97h ;Comparaison pour les caractères ù
JE EGALE_ù_u
MAJUSCULE:
SUB tab[SI], 20h
JMP VALIDER
EGALE_é_e:
SUB tab[SI], 3Dh
JMP VALIDER
EGALE_à_a:
SUB tab[SI], 44h
JMP VALIDER
EGALE_ê_e:
SUB tab[SI], 43h
JMP VALIDER
EGALE_è_e:
SUB tab[SI], 45h
JMP VALIDER
EGALE_ù_u:
SUB tab[SI], 42h
JMP VALIDER
;***********************************valider les transformations*************************************************************
VALIDER:
MOV DL,tab[SI]
MOV DH,0
PUSH DX
INC CX
INC SI
JMP TRANSFORMER
;*************************************reperer un mot du texte*************************************************************
FIN_MOT:
MOV B,SI
DEC SI ;Sauvgerder les paralettres
MOV DI,SI ;du nouveau mot a verifier
MOV SI,BX
CMP tab[SI+1], 27h
JE SUITE
JMP VERIFICATION
;*******************************verifier le mot**************************************************************************
VERIFICATION:
MOV DL,tab[SI]
CMP tab[DI],DL
JNE SUITE
INC SI
DEC DI
CMP SI,DI
JA AFFICHAGE
JMP VERIFICATION
SUITE:
MOV SI,B
INC SI
JMP TESTER
;*******************************AFFICHAGE DU MOT**************************************************************************
AFFICHAGE:
CMP C,0
JNE AFFICHAGE1
MOV DH, 9
MOV DL, 5
MOV AH, 02h
INT 10h
MOV AX, 0900h
LEA DX, msg2
INT 21h
AFFICHAGE1:
INC C
cmp c,8
je AFFICHAGE2
cmp c,15
je AFFICHAGE2
CMP C,22
je AFFICHAGE2
jmp AFFICHAGE3
AFFICHAGE2:
add k,15
mov l,11
AFFICHAGE3:
INC L
MOV DH, L
MOV DL, k
MOV AH, 02h
INT 10h
AFFICHAGE4:
POP DX
mov ah,02
int 21h
DEC CX
CMP CX,0
JNE AFFICHAGE4
JMP SUITE
FIN1:
CMP c,0
JE FIN2
MOV DH, 19
MOV DL, 0
MOV AH, 02h
INT 10h
MOV AX, 0900h
LEA DX, msg4
INT 21h
Mov Ax,C
mov bx,10
mov cx,0
boucle1:
mov dx,0
div bx
push dx
inc cx
cmp ax,0
je boucle2
jmp boucle1
boucle2:
pop dx
add dx,48
mov ah,2
int 21h
dec cx
cmp cx,0
jne boucle2
fboucle2:
JMP RECOMMENCE
FIN2:
MOV DH, 9
MOV DL, 0
MOV AH, 02h
INT 10h
MOV AX, 0900h
LEA DX, msg3
INT 21h
JMP RECOMMENCE
RECOMMENCE:
MOV DH, 23
MOV DL, 10
MOV AH, 02h
INT 10h
MOV DX, OFFSET recommencer
PUSH AX
MOV AX, 0900h
INT 21h
POP AX
MOV AH, 01h
INT 21h
CMP AL, 1Bh
JE QUIT
MOV L,11
mov k,5
JMP DEBUT
QUIT:
MOV AH, 0Fh
INT 10h
MOV AH, 0h
INT 10h
MOV DH,3
MOV DL,10
MOV AH, 02h
INT 10H
mov ax,0900h
lea dx,realiser
int 21h
MOV DH,5
MOV DL,30
MOV AH, 02h
INT 10H
mov ax,0900h
lea dx,mgs2a
int 21h
MOV DH,6
MOV DL,30
MOV AH, 02h
INT 10H
mov ax,0900h
lea dx,mgs1a
int 21h
MOV AX, 4C00h
INT 21h
main endp
END main
Conclusion
ce code source ne vérifie pas toutes les lettres et les caractère spéciaux, et vous pouvez le modifier.
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE
Forum
RE : ASSEMBLEURRE : ASSEMBLEUR par ghuysmans99
Cliquez pour lire la suite par ghuysmans99 ASSEMBLEURASSEMBLEUR par solleil
Cliquez pour lire la suite par solleil
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|