Einzelnen Beitrag anzeigen

Baeuerle

Registriert seit: 17. Mär 2005
Ort: Ettenheim
283 Beiträge
 
Delphi 2005 Professional
 
#1

Problem mit "inline", "assembler"

  Alt 11. Mär 2009, 07:48
Hallo zusammen,

ich habe folgenden Code versucht unter Delphi2005 zu compilieren jedoch hängt der Compiler immer an der kommentierten Stelle mit der Fehlermeldung "E2029 Deklaration erwartet, aber ( gefunden". Ich habe leider keine Ahnung von Assembler in Delphi.

Vielleicht kann mir jemand sagen was ich umstellen muss damit die Befehlsfolgen funktionieren.

Thx
Baeuerle

Delphi-Quellcode:
unit UBlaBlub;

INTERFACE
uses Variants;

Const cArcTan=1;
      cCos =2;
      cSin =3;
      cLn =4;
      cExp =5;
      cSqr =6;
      cSqrt =7;

var WriteErrorFlag:Boolean=true;
    
Type
 JumpRecord = record
               SpReg,
               BpReg : Word;
               JmpPt : Pointer;
              end;

Var
 PCalcErrCode:Word;

Procedure SetJump (Var JumpDest: JumpRecord);
// Hier bleibt der Compiler mit der oben genannten Fehlermeldung hängen
inline($5F/ {pop di           }
      $07/ {pop es           }
      $26/$89/$25/ {mov es:[di],sp   }
      $26/$89/$6D/$02/ {mov es:[di+2],bp }
      $E8/$00/$00/ {call null        }
                             {null:            }
      $58/ {pop ax           }
      $05/$0C/$00/ {add ax,12        }
      $26/$89/$45/$04/ {mov es:[di+4],ax }
      $26/$8C/$4D/$06); {mov es:[di+6],cs }
                             {next:            }

Procedure LongJump (Var JumpDest: JumpRecord);
inline(
      $5F/ {pop di           }
      $07/ {pop es           }
      $26/$8B/$25/ {mov sp,es:[di]   }
      $26/$8B/$6D/$02/ {mov bp,es:[di+2] }
      $26/$FF/$6D/$04); {jmp far es:[di+4]}
  Mit Zitat antworten Zitat