Ich möchte in einer Assembler-Prozedur eine
Exception auslösen.
Hierbei sollen keine außerhalb der Prozedur liegenden Prozeduren aufgerufen werden, ausgenommen natürlich System-Routinen.
Konstruktionen, wie zum Beispiel
Delphi-Quellcode:
PROCEDURE RaiseException(
const S:
String);
begin
raise Exception.Create(S);
end;
Delphi-Quellcode:
PROCEDURE Test;
const sErr:String='
Meine Fehlermeldung';
asm
mov eax,sErr
call RaiseException;
end;
Möchte ich nicht.
Ich hab mir mal ein "raise
Exception" angeschaut und fand:
Delphi-Quellcode:
mov ecx,[ebp-$04]
// Fehlermeldung
mov
dl,$01
mov eax,[$00419bc8]
// ???
call
Exception.Create
call @RaiseExcept
Fragen:
Was wird da in EAX geladen, und wie kann ich das in eigenen Assembler-Routinen realisieren?