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
TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVéTECHDAYS PARIS 2012 : RETOUR D'EXPéRIENCE SUR LA MISE EN PLACE D'UN CLOUD PRIVé par ROMELARD Fabrice
Speaker : Guillaume Rochette Cette session est dédiée à fournir le retour sur la mise en place d'un cloud privé (IaaS) par Osiatis pour son compte ou celui de ses clients. Ce projet s'est déroulé sur 4 mois et a permis de faire évoluer...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|