Hallo,
ich versuche gerade ein uraltes D2 Prog unter D2007 neu zu compilieren.
Allerdings klemmt es an folgenden
ASM Code und von
ASM habe ich Null Ahnung:
Delphi-Quellcode:
procedure SaveErrRet;
// sets RetAddr to address after next call.
begin
asm
POP EAX
MOV Sav_ESP, ESP
PUSH EAX
ADD EAX, 5
MOV RetAddr, EAX
MOV Sav_EDI, EDI
MOV Sav_ESI, ESI
MOV Sav_EBP, EBP
MOV Sav_EBX, EBX
end;
SavHeapPtr:= HeapPtr;
end;
procedure ShowError;
begin
HeapPtr:= SavHeapPtr;
SaveError;
Asm
MOV EBX, Sav_EBX
MOV EBP, Sav_EBP
MOV ESI, Sav_ESI
MOV EDI, Sav_EDI
MOV EAX, RetAddr
PUSH EAX
// sollte jetzt wieder ins Main springen nach RetAddr
end;
end;
procedure TestError;
begin
ShowError;
end;
// -------- Main --------
begin
// .......
SaveErrRet;
// 1.)
// tu was ganz tief
// ......
TestError;
// ......
end.
Das gibt heute eine
Access violation
Wie macht man das heute ?
Danke Totti