Si on dsassemble n'importe quel programme, on retrouve un listing
en ASM, d'o l'utilit de connatre l'assembleur.
Passons  l'tude des instructions (Trs basique) afin d'claircirles problmes.
* CALL: l'instruction CALL permet d'appeler une sous-routine.
       ex: Call 00405741   <-- ceci appelle la routine qui se trouve en 
                               00405741.
* CMP: compare. Cette instruction soustrait l'oprande source  l'oprande
       de destination.
       ex: CMP EAX, EDX  <--- soustrait EAX  EDX = EDX - EAX
       Les CMP sont gnralement accompagns de sauts conditionnels, nous les 
       verrons trs bientt...
* JMP: (JUMP) elle effectue un saut inconditionnel  une autre partie
       du programme       ex: JMP 0040458   <--- saute  0040458
* NOP: (no operation): cette instruction n'est pas comme les autres.
       Elle ne fait tout simplement RIEN!!
       Vous verrez par la suite son intrt !       
* RET: (return): instruction qui permet de revenir au programme appelant
       quand une sous-routine est termine! (trs utile certaines fois)
* ADD: elle ralise une addition entre les 2 oprandes et place le 
       rsultat dans l'oprande destination.
       ex: ADD EAX, FFh    -->  EAX = EAX + FFh
* SUB: c'est pour effectuer une soustraction entre 2 oprandes...
       ex: SUB EAX, EDX    -->  EAX = EAX - EDX
       Il y a aussi les DIV, MUL (je vous fait pas de dessin, je pense que
       devinez ce que a fait !!* Les saut conditionnels:
       Vous rencontrez beaucoup de tests, comparaison, pendant le cracking.
       Ainsi pour traiter les rsultats de ceux-ci, il existe une multitude
       de sauts conditionnels, je vais vous en citer quelques-uns:
       JNE (jump if not equal) = jump if not equal to zero (JNZ sous Soft-ice)
       JE  (jump if equal)     = jump if equal to zero (JZ sous Soft-ice)
       JG  (jump if greater)   = jump si c'est suprieur
       JGE (jump if greater or equal) = jump si c'est suprieur ou gal
       JL  (jump if less)      = jump si c'est infrieur
       JLE (jump if less or equal) = jump si c'est infrieur ou gal 
       JA  (jump if Above)       JNA (jump if not above)       ......
       je vous conseille de lire une documentation sur l'asm si vous voulez
       plus d'infos sur les types de saut ! Il en existe encore...
* MOV: l'instruction mov sert  placer une valeur dans un registre.
       ex: MOV EAX, 56h  --->  met 56h (86 en dcimal) dans le 
                               registre EAX.
* XOR: c'est un ou exclusif! Trs utilis dans les routines de cryptage
       ou de gnration de serials!
       Voici la table de fonctionnement du XOR:       0	XOR	0	=	0
       0	XOR	1	=	1       1	XOR	0	=	1       1	XOR	1	=	0	         
       Le xor est utilis pour remettre un registre  0.
       En effet quand on xor 2 mmes valeurs, le rsultat est toujours 0.
       ex: XOR EAX, EAX   ---> EAX = 0
* PUSH: l'instruction push permet de placer une donne sur la pile.
        Elle peut venir d'un registre ou d'un emplacement mmoire!
        ex: PUSH EAX    ---> pousse la valeur de EAX sur la pile
* POP:  l'instruction pop permet de rcuprer une donne pose sur la
        la pile.
        Elle peut tre place dans un registre ou dans un emplacement
        mmoire!
        ex: POP EAX    ---> rcupre la valeur de EAX sur la pile
	Voil, a sera tout pour les bases en ASM!! 
	Ces quelques descriptions ont, je l'espre, mis au clair
	les qq problmes pouvant tre rencontrs du  l'incomprhension
	de certaines instructions!!
	Mais il serait prfrable pour vous d'avoir un livre d'asm
	prs de vous, cela vous permettrais de chercher la description
	des instructions qui vous posent problme !
	(exemple de livre: ASSEMBLEUR PRATIQUE, ditions Marabout)