Salut les "King" de l'assembleur....
Une petite question du monde des Delphiistes
Voici le code delphi:
Voilà ce que le compilateur me donne en asm:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 procedure TForm1.Button2Click(Sender: TObject); var bidon:integer; LineNumber:dword; begin bidon:=1; Assert( bidon=1); asm @@bidon: mov al,@@bidon mov LineNumber,$0 end; end;
j'aimerais savoir si je peux aller chercher la valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 main.pas.59: bidon:=1; 0044BE0C C745F40100000 mov [ebp-$0c],$00000001 main.pas.60 Assert(bidon=1); 0044BE13 837DF401 cmp dword ptr [ebp-$0c],$01 0044BE17 7414 jz TForm1.Button2Click+$2D 0044BE19 B93C000000 mov ecx,$0000003c 0044BE1E BA48BE4400 mov edx,$0044be48 0044BE23 BA48BE4400 mov eax,$0044be80 0044BE28 E89B83FBFF call @Assert main.pas.63 mov al,@@bidon 0044BE2D A02dbe4400 mov al,$0044be2d main.pas.64: mov LineNumber,$0 0044BE32 C745FC0000000 mov [ebp-$04],$00000000
mise par le compilateur dans ecx ($3c) en relisant le code en assembleur?
autrement dit, j'aimerais aller relire à l'offset du label
@@Bidon - $014 (la ligne en gras)
et mettre $3c dans la variable LineNumber [ebp-$04]
est-ce possible en assembleur?
À noter que le résultat de cmp avant le jz sera toujours zéro et que donc,
la ligne en gras n'est jamais executé.
Partager