Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1029 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  Palindrome

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Palindrome

n°1289142
MAD_DIM
Posté le 21-01-2006 à 20:31:38  profilanswer
 

Bonjour,
 
Voila, j'ai écrit un palindrome en ASM. Je demande à l'utilisateur d'entrer un mot et je lui dit si c'est un palindrome ou pas meme si il tape des virgule ou autre. (,:,;,::,:k:;,:;,,y   ak => palindrome).
Pour saisir la chaine de caractere j'utilise la fonction 09h. Et je voudrais savoir comment je pourrait récuperer seulement le mot 'kayak'(voir exemple) pour l'afficher et afficher sa symetrie également (j'entend par là 'KAY') ?
Si vous pouviez m'aider ? MERCI
 
Programme:
 

Code :
  1. ;Duszynski                                                     19/12/2005
  2. ;Dimitri
  3. ;2121
  4. .MODEL SMALL 
  5. .STACK 
  6. .DATA
  7.  
  8.    titre DB "PALINDROME$"
  9.    slign DB "----------$"
  10.    carintro Db "Entrer une chaine de caracteres : $" 
  11.    carjuste DB 0ah, 0dh, "La chaine que vous avez entree est un palindrome !$" 
  12.    carfaux DB 0ah, 0dh, "La chaine que vous avez entree n'est pas un palindrome !$" 
  13.    recommencer DB 'Appuyer sur ENTER pour recommencer ou sur ESC pour arreter$'
  14.    vecteur DB 250, ?, 251 dup ('$')
  15.    vecteur2 DB 250, ?, 251 dup ('$')
  16. .CODE 
  17. MAINPROG :
  18.  
  19.    MOV AX, @DATA 
  20.    MOV DS, AX
  21.    MOV AH, 0Fh
  22.    INT 10h
  23.    MOV AH, 0h
  24.    INT 10h
  25.    MOV DH, 3
  26.    MOV DL, 30
  27.    MOV AH, 02h
  28.    INT 10h
  29.    MOV AX, 0900h
  30.    LEA DX, titre
  31.    INT 21h
  32.    MOV DH, 4
  33.    MOV DL, 30
  34.    MOV AH, 02h
  35.    INT 10h
  36.    MOV AX, 0900h
  37.    LEA DX, slign
  38.    INT 21h
  39.  
  40.    MOV DH, 6
  41.    MOV DL, 0
  42.    MOV AH, 02h
  43.    INT 10h
  44.    MOV AX, 0900h 
  45.    LEA DX, carintro 
  46.    INT 21h                     
  47.    MOV AH, 0Ah 
  48.    LEA DX, vecteur 
  49.    int 21h
  50. PLACE:
  51.    MOV SI, 2 
  52.    MOV BX, OFFSET vecteur
  53.    MOV AL, [BX + 1]
  54.    MOV AH, 0
  55.    MOV DI, AX
  56.    INC DI
  57.    PUSH DI 
  58. PALINDROME: 
  59.  
  60.    CMP SI, DI 
  61.    JB COMPARAISON_SI
  62. SAUTFIN1:
  63.    JMP FIN1
  64. COMPARAISON_SI:
  65.    CMP vecteur[SI], 30h 
  66.    JB SI_PONCTUATION
  67.    CMP vecteur[SI], 39h 
  68.    JBE OK_SI
  69.  
  70.    CMP vecteur[SI], 41h 
  71.    JB SI_PONCTUATION
  72.    CMP vecteur[SI], 5Ah 
  73.    JBE OK_SI
  74.  
  75.    CMP vecteur[SI], 61h 
  76.    JB SI_PONCTUATION
  77.    CMP vecteur[SI], 7Ah 
  78.    JBE MAJ_SI
  79.  
  80.    CMP vecteur[SI], 82h
  81.    JE MAJ_é_SI
  82.  
  83.    CMP vecteur[SI], 85h
  84.    JE MAJ_à_SI
  85.  
  86.    CMP vecteur[SI], 88h
  87.    JE MAJ_ê_SI
  88.  
  89.    CMP vecteur[SI], 8Ah
  90.    JE MAJ_è_SI
  91. SI_PONCTUATION:
  92.  
  93.    INC SI 
  94.    JMP PALINDROME
  95.  
  96. MAJ_SI:
  97.    SUB vecteur[SI], 20h
  98.    JMP OK_SI
  99. MAJ_é_SI:
  100.    SUB vecteur[SI], 37h
  101.    JMP OK_SI
  102. MAJ_à_SI:
  103.    SUB vecteur[SI], 44h
  104.    JMP OK_SI
  105. MAJ_ê_SI:
  106.    SUB vecteur[SI], 43h
  107.    JMP OK_SI
  108. MAJ_è_SI:
  109.    SUB vecteur[SI], 69h
  110.  
  111. OK_SI:
  112.    MOV DL, vecteur[SI] 
  113. COMPARAISON_DI:
  114.    CMP vecteur[DI], 30h 
  115.    JB DI_PONCTUATION
  116.    CMP vecteur[DI], 39h 
  117.    JBE VERIFICATION
  118.  
  119.    CMP vecteur[DI], 41h 
  120.    JB DI_PONCTUATION
  121.    CMP vecteur[DI], 5Ah 
  122.    JBE VERIFICATION
  123.  
  124.    CMP vecteur[DI], 61h 
  125.    JB DI_PONCTUATION
  126.    CMP vecteur[DI], 7Ah 
  127.    JBE MAJ_DI
  128.  
  129.    CMP vecteur[DI], 82h
  130.    JE MAJ_é_DI
  131.  
  132.    CMP vecteur[DI], 85h
  133.    JE MAJ_à_DI
  134.  
  135.    CMP vecteur[DI], 88h
  136.    JE MAJ_ê_DI
  137.  
  138.    CMP vecteur[DI], 8Ah
  139.    JE MAJ_è_DI
  140. DI_PONCTUATION:
  141.    DEC DI 
  142.    JMP PALINDROME
  143.  
  144. MAJ_DI:
  145.    SUB vecteur[DI], 20h
  146.    JMP VERIFICATION
  147. MAJ_é_DI:
  148.    SUB vecteur[DI], 37h
  149.    JMP VERIFICATION
  150. MAJ_à_DI:
  151.    SUB vecteur[DI], 44h
  152.    JMP VERIFICATION
  153. MAJ_ê_DI:
  154.    SUB vecteur[DI], 43h
  155.    JMP VERIFICATION
  156. MAJ_è_DI:
  157.    SUB vecteur[DI], 69h
  158.        
  159. VERIFICATION:
  160.  
  161.    CMP vecteur[DI], DL 
  162.    JNE FIN2 
  163.    DEC DI 
  164.    INC SI 
  165.    JMP PALINDROME   
  166. FIN1:
  167.  
  168.    MOV DH, 10
  169.    MOV DL, 0                 
  170.    MOV AH, 02h
  171.    INT 10h
  172.    MOV AX, 0900h             
  173.    LEA DX, carjuste 
  174.    INT 21h 
  175.    MOV AX, 0900h             
  176.    LEA DX, vecteur2 
  177.    INT 21h 
  178.    JMP RECOMMENCE 
  179. FIN2:
  180.  
  181.    MOV DH, 10
  182.    MOV DL, 0                 
  183.    MOV AH, 02h
  184.    INT 10h
  185.    MOV AX, 0900h               
  186.    LEA DX, carfaux 
  187.    INT 21h
  188. RECOMMENCE:
  189.    MOV DH, 15
  190.    MOV DL, 10          ;
  191.    MOV AH, 02h
  192.    INT 10h
  193.    MOV DX, OFFSET recommencer
  194.    PUSH AX
  195.    MOV AX, 0900h
  196.    INT 21h
  197.    POP AX
  198.    MOV AH, 01h
  199.    INT 21h
  200.    CMP AL, 1Bh
  201.    JE QUIT
  202.    JMP MAINPROG
  203. QUIT:
  204.    MOV AX, 4C00h 
  205.    INT 21h 
  206. END

mood
Publicité
Posté le 21-01-2006 à 20:31:38  profilanswer
 

n°1289146
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-01-2006 à 20:42:51  profilanswer
 

mais bon dieu, c'est quoi cette manie d'écrire dans un assembleur obsolète et de 20 ans d'age ? [:mlc]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1289149
trevor
laissez la vie vous étonner...
Posté le 21-01-2006 à 21:02:38  profilanswer
 

c'est pour apprendre à cracker les jeux :D


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1289346
MAD_DIM
Posté le 22-01-2006 à 11:09:44  profilanswer
 

Bonjour,
 
Non c'est pas pour cracker les jeux c'est juste le plaisir d'apprendre de nouveaux trucs.
Au sinon pas d'idée pour mon problème ??
 
Merci

n°1289407
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-01-2006 à 13:37:56  profilanswer
 

MAD_DIM a écrit :


Non c'est pas pour cracker les jeux c'est juste le plaisir d'apprendre de nouveaux trucs.


quitte à apprendre, autant le faire sur de l'assembleur 32 bits, tu te feras certainement moins chier [:pingouino]
http://masm32.online.fr/masm32.htm
 

MAD_DIM a écrit :


Au sinon pas d'idée pour mon problème ??


en fait j'ai pas trop compris ce que tu cherches à faire


---------------
J'ai un string dans l'array (Paris Hilton)
n°1289425
Matox
Posté le 22-01-2006 à 14:08:18  profilanswer
 

Harkonnen a écrit :

quitte à apprendre, autant le faire sur de l'assembleur 32 bits, tu te feras certainement moins chier [:pingouino]
http://masm32.online.fr/masm32.htm
 
 
en fait j'ai pas trop compris ce que tu cherches à faire


 
Ne l'écoute pas, si tu veux apprendre à te familiariser avec l'assembleur, commencer par le 8088 est un bon choix :
En programmation ce qui compte, c'est l'esprit, la philosophie , etc... pas les lignes de codes d'un langage sur une machine: les gros bourrins qui pondent des lignes de codes sans réfléchir et s'exclament :"Mais Ca marche !" ne comprendrons jamais rien à l'informatique .
A l'X, pour apprendre des choses simples, on passe par des choses simples :
http://www.enseignement.polytechni [...] pil/TD/un/
 
J'ai commencé par les 6800,SATURN( processeur des HP48, 1Mhz 4bits :p), etc...
Ensuite tu pourras attaquer les notions de parallélismes,Pipeline, Delay branch, cache etc...
Tu t'intéresseras aux archis RISC et CISC, aux SISD, SIMD, MISD,MIMDetc...
Bref, tu feras les choses dans l'ordre et tu n'auras alors jamais à écrire "en fait j'ai pas trop compris ce que tu cherches à faire[", car tu aurras appris à apprendre, à comprendre, et à faire...

n°1289674
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-01-2006 à 20:45:27  profilanswer
 

mais oscours quoi [:pingouino]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1289909
bjone
Insert booze to continue
Posté le 23-01-2006 à 11:25:43  profilanswer
 

bah en BTS/IUT, ils font généralement de l'asm sous DOS avec tasm & co...
 
pour apprendre c'est pas si mal.

n°1289962
db__
spécialiste de l'à peu près
Posté le 23-01-2006 à 12:43:48  profilanswer
 

Citation :

A l'X, pour apprendre des choses simples, on passe par des choses simples :


ouarf ! je me gausse un X qui ferait des choses simples ! si ça existait ça se saurait
pour quelqu'un de normal le pourquoi faire simple quand on peut faire compliqué
devient pour un X pourquoi faire compliqué quand on peut faire inextricable.
J'en déduis qu'à l'X on apprend donc jamais de choses simples.
C'est facile mais ça défoule quand on a un QI de 10 comme moi


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  Palindrome

 

Sujets relatifs
palindrome par morceau 
Plus de sujets relatifs à : Palindrome


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR