1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| .386
.model flat,stdcall
option casemap:none
;include \masm32\include\windows.inc
;include \masm32\include\user32.inc
;include \masm32\include\kernel32.inc
;includelib \masm32\lib\user32.lib
;includelib \masm32\lib\kernel32.lib
.data
szString db "toto",0
.code
start:
push ebp ; Declaration ebp
mov ebp, esp ; Copie esp dans ebp
mov esi, szString ; Recupere l'argv0 et le Copie ebp+8 dans esi
mov ecx, 0 ; Copie 0 dans ecx
boucle:
mov al, [esi] ; Copie valeur de esi dans al
cmp al, 0 ; Compare 0 a al
je fin ; Jump if Equal a fin
add ecx, 1 ; ecx = ecx + 1
add esi, 1 ; esi = esi + 1
jmp boucle ; Saut inconditionnel au label
fin:
mov eax, ecx ; Copie ecx dans eax
mov esp, ebp ; restor esp
pop ebp ; Supprime ebp
ret
end start |
Partager