Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : conversion minuscule [ Processeurs / X86 ] (safwensafwen)

lundi 12 mars 2007 à 17:34:31 | conversion minuscule

safwensafwen

C'est unprogramme qui fair la conversion en minuscule en utilisant la pile

je n'arrive pas à comprendre pourquoi on fait : mov ebx,[ebp+12] au lieu de mov ebx,[ebp+16] (car il s'agit de Double word)

pourriez vous m'expliquer?

Merci


tab1    db    'AGFRDTEZTY'

long equ $-tab1

 

.code

debut:

             lea eax,tab1

             push eax

             mov ecx,long

             push ecx

             call conv

 

; retour à Windows

 

             push Large 0

             Call ExitProcess

 

conv proc near

             push ebp  ; pour sauvegarder puis après récupérer

             mov ebp,esp ;  ???????

             mov ecx,[ebp+8] ;ebp est le dernier

             mov ebx,[ebp+12]

et1:         mov al,[ebx]

             add al,20h

             mov [ebx],al

             inc bx         ; incrémentation du pointeur du tableau en byte

             loop et1

             pop ebp

ret 8        ;         ret4n pour la pile en 32 bits

conv endp                   ; ici n=2

             end debut



mardi 13 mars 2007 à 00:49:06 | Re : conversion minuscule

Guilou34

Après push ebp, la pile contient, dans l'ordre,  l'adresse de tab1,la taille de tab et le contenu de ebp donc 3 fois 4 octets.
Après pop ebp, on retrouve l'adresse de retour sur la pile après avoir soustrait  8 octets.
Il ne faut pas oublier que esp est décrémenté après le push, c'est peut-être là ton erreur
 
Par ailleurs, il faut mieux utiliser or al,20h , plutot que add al,20h parce que si la chaîne a traiter contient des minuscules  le résultat sera incorrect.
Amicalement



Cette discussion est classé dans : conversion, mov, push, ebp, ebx


Répondre à ce message

Sujets en rapport avec ce message

Quels sont les parametres (nombre, taille...) [ par Renfield ] Bonjour,on peut appeler RunDll32 pour executer des fonctions contenues dans des dll...j'aimerais m'affranchir de cette étape, mais j'ai pour cela beso Problème avec un code [ par showbiz_hurricanes ] Bonjour Pour un projet universitaire, je dois concevoir un programme de tri en assembleur mais celui ci ne fonctionne pas comme je le voudrai. Le inversion de l'ordre d'uns string [ par VBFRANCE ] Je suis un jeune debutant dans l'assembleur.J'ai un petit prog pour afficher les valeur sous format binaire, mais je suis bloquer par un petit soucis. Assembleur et tableau + linux + bof [ par flocic ] Bonjour, J'ai un petit pb de comprehension, j'ai un programme qui deborde au bout 44 octet  à cause d'un depassement d ela taille du tableau. Mais ce j'ai un prob avec mon buffer ; ya pas d'amuses gueules (masm32) [ par papiboff ] bj si je mets le buffer "somme " en dd avec charge eax et que j'ajoute deux 'dec ebx ' , ben , marche pas correctement ; (pêrqué ???? = en french) sv [linux] read and open [ par sheorogath ] Bonjour,je débute un peu en assembleur et j'essaie de faire un programme qui lit le début d'un fichier dont le nom est entré par l'utilisateur.Voici l probleme affichage cadre [ par jo_benni ] Salut à tous, voilà je débute en assembleur et j'ai fait un petit programme exe qui affiche une succession de cadre de plus en plus grand. Le probleme inverser une chaine [ par MrdJack ] salut, je suis sur un projet de calculatrice me permettant de faire des calculs avec des nombres tres grands. chaque nombre est stocké dans la memoire Inversion de chaîne [ par Bidou ] Bonjour à tous,A vrai dire je suis plutôt nouveau en asm et pas très bon lol. Mais bon, faut bien commencer un jour hein. Pour me faire la main, j'ai boot secteur [ par henri12 ] salutje viens de decompiler le boot secteur d une disquette de demarrageje voudrais savoir ou puis je mettre 15 octet de code que je veux faire execut


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.