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

  FORUM HardWare.fr
  Programmation
  ASM

  [Asm]Cryper une chaine de caractere

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Asm]Cryper une chaine de caractere

n°1802147
kal747
Posté le 19-10-2008 à 19:42:24  profilanswer
 

Bonsoir a tous,
 
Voilà je galère sur un TP d'assembleur
 
Je dois réaliser un petit programme qui demande a l'utilisateur d'entrer une chaine de caractère (ca c'est bon), d'inverser cette chaine (ça va toujours)
 
Mais ensuite d'après l'énoncé du prof "PRENDRE LA VALEUR ASCII DE CHAQUE CARACTÈRE DE LA CHAINE ET LUI AJOUTER +4"
 
Et là je ne vois pas comment je peux procéder :/
 
Je sais comment je peux prendre les élément 1 par 1 mais pour leurs ajouter 4 je ne sais pas
 
Merci de m'éclairer  :)  
 
Bonne soirée

mood
Publicité
Posté le 19-10-2008 à 19:42:24  profilanswer
 

n°1802216
sligor
Posté le 20-10-2008 à 08:27:17  profilanswer
 

tu realises une addition de 4, il y a une instruction assembleur pour l'addition...


---------------
qwerty-fr
n°1804700
kal747
Posté le 26-10-2008 à 13:20:54  profilanswer
 

Merci pour ta réponse
 
Mais la seule opération que je connaisse pour additionner est "add", ca ne fonctionne pas avec un caractère
 
S'il y en a une autre, pourrais tu me la montrer dans un exemple ?

n°1804702
antsite
Je me souviens
Posté le 26-10-2008 à 13:33:19  profilanswer
 

Code :
  1. ta_chaine db 'toto',0
  2. ...
  3. add [ta_chaine+2], 4 ; ajoute 4 au code ascii du 3eme caractere


 
edit: peut-etre que ton assembleur va refuser le add sur la variable directement, dans ce cas commence par charger l'adresse dans un registre


Message édité par antsite le 26-10-2008 à 13:36:42
n°1804731
sligor
Posté le 26-10-2008 à 17:18:44  profilanswer
 

kal747 a écrit :

Merci pour ta réponse
 
Mais la seule opération que je connaisse pour additionner est "add", ca ne fonctionne pas avec un caractère
 
S'il y en a une autre, pourrais tu me la montrer dans un exemple ?


c'est quoi comme assembleur ? un caractère c'est généralement une valeur sur 8 bits, si ton processeur ne sait pas additionner une valeur de 8 bits alors i faut d'abord charger ton caractère dans un registre plus grand.

n°1804799
kal747
Posté le 26-10-2008 à 21:36:44  profilanswer
 

Hum je ne pense pas que j'utilise la meme version que ce que vous dites
Je débute en assembleur :s
 
Je sais qu'a mon IUT, on a une librairie qui s'appel IUTinfo.inc
 
Je vous montre comment j'inverse le mot deja :
 
INCLUDE IUTInfo.inc
 
.data
 
msg  BYTE  "mot a crypter",0
 
 
 
.code
 
main       PROC
           call   Clrscr
           mov ecx,sizeof msg
    sub ecx,1
           mov esi,0
bcl:
           mov al,msg[esi]
           push eax
           inc esi
           loop bcl
 
           mov ecx,sizeof msg
    sub ecx,1
bcl1:
           pop eax
           call writechar
           loop bcl1
           exit
main       ENDP
END        main
 
(Writechar est dans la librairie, cela sert a afficher à l'ecran ce qui est contenu dans eax)
 
Donc pour ajouter 4 a chaque caractère, avant d'affichier, je doit affaire add eax,4 ?  
 
(Je viens de tester, en effet ca fonctionne) je vous remercie pour votre aide
 
Bonne soirée


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

  [Asm]Cryper une chaine de caractere

 

Sujets relatifs
Rechercher la suite d'un début de chaine de caractères[Résolu]Petite question trés simple pour comparaison entre deux chaine
remplacement chaine incrémentéeregex validant chaine de caractères pouvant être nulle
Remplacer une chaine de charactèreslire un fichier texte caractere par caractere et effacer la lettre lu
SQL Server concatener champ + chaine IMPOSSIBLEComment comparer des chaines de caractère avec une tolérance...
supprimer caractère unicode invalide 
Plus de sujets relatifs à : [Asm]Cryper une chaine de caractere


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