begin process at 2010 03 15 15:42:43
  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

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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,624 sec (4)

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