<pre><b>label</b>
TestStart, TestEnde;
<p>
<b>procedure</b> Test;
<b>asm</b>
TestStart:
PUSH EAX
POP EAX
TestEnde:
<b>end</b>;
<p>
<b>procedure</b> TForm1.Button1Click(Sender: TObject);
<b>var</b>
Start: DWORD;
Ende: DWORD;
Diff: DWORD;
<b>begin</b>
<b>with</b> Memo1.Lines <b>do</b>
<b>begin</b>
Clear;
<b>asm</b>
MOV Start, OFFSET TestStart
MOV Ende, OFFSET TestEnde
MOV Diff, OFFSET TestEnde
SUB Diff, OFFSET TestStart
<b>end</b>;
Add('@Test : ' + IntToHex(DWORD(@Test), 8));
Add('TestStart: ' + IntToHex(Start, 8));
Add('TestEnde : ' + IntToHex(Ende, 8));
Add('<Diff> : ' + IntToHex(Diff, 8));
<b>end</b>;
<b>end</b>;<p></pre>
Kann mir bitte jemand die folgende Ausgabe im Memo erklären!
<pre><p><i>@Test : 0044FC6C
TestStart: 0044FBD0
TestEnde : 0044FB06
<Diff> : FFFFFF36</i><p></pre>
irgendwie stimmt da gar nichts...<br>
Mal davon abgesehen, das der Compiler extreme Schwierigkeiten mit globalen Labels hat, andauernd Exceptions beim Compilieren (in DCCx0.DLL)...
Gruß Nico
getestet mit Delphi 5 und Delphi 6, beide mit dem gleichen Problem<br>
vielleicht weiß ja jemand, warum das so ist -- oder ich bin blind
TestStart, TestEnde;
<p>
<b>procedure</b> Test;
<b>asm</b>
TestStart:
PUSH EAX
POP EAX
TestEnde:
<b>end</b>;
<p>
<b>procedure</b> TForm1.Button1Click(Sender: TObject);
<b>var</b>
Start: DWORD;
Ende: DWORD;
Diff: DWORD;
<b>begin</b>
<b>with</b> Memo1.Lines <b>do</b>
<b>begin</b>
Clear;
<b>asm</b>
MOV Start, OFFSET TestStart
MOV Ende, OFFSET TestEnde
MOV Diff, OFFSET TestEnde
SUB Diff, OFFSET TestStart
<b>end</b>;
Add('@Test : ' + IntToHex(DWORD(@Test), 8));
Add('TestStart: ' + IntToHex(Start, 8));
Add('TestEnde : ' + IntToHex(Ende, 8));
Add('<Diff> : ' + IntToHex(Diff, 8));
<b>end</b>;
<b>end</b>;<p></pre>
Kann mir bitte jemand die folgende Ausgabe im Memo erklären!
<pre><p><i>@Test : 0044FC6C
TestStart: 0044FBD0
TestEnde : 0044FB06
<Diff> : FFFFFF36</i><p></pre>
irgendwie stimmt da gar nichts...<br>
Mal davon abgesehen, das der Compiler extreme Schwierigkeiten mit globalen Labels hat, andauernd Exceptions beim Compilieren (in DCCx0.DLL)...
Gruß Nico
getestet mit Delphi 5 und Delphi 6, beide mit dem gleichen Problem<br>
vielleicht weiß ja jemand, warum das so ist -- oder ich bin blind
Comment