Les valeurs de la pile à gauche sont celles qu'elle aura lors du dernier push (push ecx).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 \` / /- \ | | <- There is smoke ! | | '|- Too many byte is the little house's chimney ! | '| |- :( | `|''- - `-' |'' [esp+52] push 0 [esp+48] push '.' [esp+44] push 'irie' [esp+40] push ' pra' [esp+36] push 's la' [esp+32] push ' dan' [esp+28] push 'ison' [esp+24] push 'e Ma' [esp+20] push 'etit' [esp+16] push 'La p' ;<- addr début chaîne = sommet pile au moment du push = esp mov eax,esp ;<- sauvegarde addr dans eax [esp+12] push 10 [esp+8] push '%s' ;<- addr début form = sommet pile au moment du push = esp mov ecx,esp ;<- sauvegarde addr dans ecx [esp+4] push eax ;<- push addr chaîne = 2ème arg [esp] push ecx ;<- push addr formatage = 1er arg call [printf] ;<- appel de printf qui cherchera le 1er argument ; puis vérifiera combien cet argument contient ; de formatage ex (%s %s %x) = 3 arguments après ; celui du formatage. ; Dans notre cas, printf verra qu'il n'y a qu'un ; seul formatage et donc qu'un argument venant ; après lui.
Voilà.. Je peux pas être plus clair.
Après si tu ne comprends pas met ça de côté et reviens-y plus tard.
a+
Partager