Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ASM: Zugriff auf Eigenschaften in Klassen (https://www.delphipraxis.net/49113-asm-zugriff-auf-eigenschaften-klassen.html)

JasonDX 5. Jul 2005 17:23


ASM: Zugriff auf Eigenschaften in Klassen
 
Ich habe mir endlich mal ein Tutorial für die Verwendung der FPU durchgelesen, und habe bereits ein Problem:

Folgende Klasse
Delphi-Quellcode:
TTestClass = class
public
  i: integer;
  f: real;
  procedure test;
end;
bzw. ihre implementation
Delphi-Quellcode:
procedure TTestClass.test;
var
  buff: real;
begin
  buff := 0;
  asm
    mov EAX, i
    FLD buff
    FLD f
  end;
end;
bereiten mir Sorgen:

mov EAX, i klappt einwandfrei
FLD buff zum pushen von buff in die FPU-register klappt auch
bei FLD f aber erhalte ich die Compilermeldung "Invalid combination of opcode and operands"

Warum? Weil ich f in der Klasse deklariert habe? Wie kann ich dann darauf zugreifen?

Dax 5. Jul 2005 17:33

Re: ASM: Zugriff auf Eigenschaften in Klassen
 
Du musst wissen, in welchen Register deine Instanz liegt ;)

Hier ginge das ganz einfach mit
Delphi-Quellcode:
fld [eax].TTestClass.f
, wenn ich mich jetzt nicht falsch erinnere :) Vielleicht geht statt EAX auch f, müsste man mal testen.

dizzy 5. Jul 2005 17:35

Re: ASM: Zugriff auf Eigenschaften in Klassen
 
Zitat:

Zitat von Dax
Du must wissen, in welchen Register deine Instanz liegt ;)

Hier ginge das ganz einfach mit
Delphi-Quellcode:
fld [eax].TTestClass.f
, wenn ich mich jetzt nicht falsch erinnere :) Vielleicht geht statt EAX auch f, müsste man mal testen.

Aber nicht mehr nach "MOV EAX, i" :!: ;)

Dax 5. Jul 2005 17:37

Re: ASM: Zugriff auf Eigenschaften in Klassen
 
Jab, genau :oops: Aber das dürfte für das Vorhaben eh tödlich sein ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 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