![]() |
Problem mit "inline", "assembler"
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]} |
Re: Problem mit "inline", "assembler"
Delphi-Quellcode:
Du kannst ASM ganz normal schreiben. Aber bedenke bitte, dass wir schon lange keinen 16bit-Prozessor mehr haben und zu dem einen linearen Addressraum. Dein code würde so nicht funktionieren.
Procedure SetJump (Var JumpDest: JumpRecord);
asm pop di pop es mov es:[di],sp mov es:[di+2],bp call @null @null: pop ax add ax,12 ... end; ![]() |
Re: Problem mit "inline", "assembler"
Hallo,
wenn ich mich richtig erinnere, wurden SetJump und LongJump zu Zeiten von Turbo Pascal eingesetzt, um in der Fehlerbehandlung prozedurübergreifende Sprünge durchführen zu können. In modernen Sprachen würde man zu diesem Zweck Exceptions verwenden. Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz