Voici quelques routines ASM
Description en commentaire sur chacunes des routines
Rien de bien méchant comme code
Elles effectuent des opérations relativement courante, mais souvent
très pratiques :)
test ecx,ecx
je short @fin
@deb:
mov BYTE PTR [edx], 0
inc edx
dec ecx
jnz short @deb
@fin:
ret
FillWith0 ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
szlen PROC
;
; Auteur: Bigbang
;
; Calcule la longeur de la chaine sans le \0
;
; Paramètres: - EDX: Pointe sur la chaine
; Retour: - EAX: strlen
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xor eax, eax
xor ecx, ecx
@deb:
mov cl, BYTE PTR [edx]
test cl, cl
je short @fin
inc eax
inc edx
jmp short @deb
@fin:
ret
szlen ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ConvertToASCII proc near
;
; Source: Rip from jB Keygenme #01
; Convertit en chaine affichable.
;
; Paramètres: - ECX; nombre de caractères
; - ESI: chaine d'entrée
; - EDI: chaine de sortie
; Retour: (rien)
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
maj2min PROC
;
; Convertit une chaine de caractère en minuscules
;
; Paramètre: EDX pointe sur la chaine
; Retour: (rien)
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
debut:
mov al, BYTE PTR [edx]
cmp al,0
je short fin
cmp al, 41h
jb short inter
cmp al, 5Ah
ja short inter
or al, 20h
mov BYTE PTR [edx], al
inter:
inc edx
jmp short debut
fin:
RET
maj2min ENDP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ExtractLetters proc near
;
; Récupère uniquement les lettres d'une chaine
; Paramètres: - ESI: chaine d'entrée
; - EDI: chaine de sortie
;
; Retour: EAX: nombre de lettres copiées
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;