Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#1

In Asm-Prozedur eine Exception auslösen

  Alt 2. Nov 2023, 23:37
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?
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat