begin process at 2010 02 09 17:18:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Processeurs

 > 

X86

 > 

conversion minuscule


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

conversion minuscule

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ée 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...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,172 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales