Travail sur une chaine de caractères
Bonsoir à tous.
Je continue, doucement mais surement, l'apprentissage de l'assembleur. J'ai maintenant bien compris les bases je pense, mais je me heurte ici a un problème de compréhension.
Code:
1 2 3 4 5
| mov eax, [ebp+8]
movzx eax, byte ptr[eax]
mov [ebp-0eh], al
sar dword ptr [ebp-0ch], 3
nop |
ebp+8 contient une chaîne de caracteres.
Ce que je comprends :
1. On recupere la chaine dans eax
2. On ne conserve que le dernier otet (mais qu'est ce que cela represente ? ma chaine fait 4 octets, normal puisque c'est un pointeur. Mais garder le dernier bit, ça m'etonne :/)
3. On copie cet octet dans la pile [ebp-0eh]
4. on divise ebp-0ch par 8
Bref, quelqu'un comprendrait il l'instruction movzx et son interet?
Merci d'avance.
Guillaume.