Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#21

AW: Portierungsproblem mit Assembler, Register

  Alt 18. Jun 2011, 10:24
nicht so schnell aufgeben, versuche

Delphi-Quellcode:
asm
  MOV [EAX + OFFSET TCRCDef.Polynomial], EDX
end;
Ich finde die andere Schrebweise aber "OOP ähnlicher" und deshalb nutzte ich sie, besonders auch beim ASM Zugriff auf Delphi Objekte und Klassen.
Normalerweise sollte das FPC aber im Delphi Mode unterstützen, dh. der Inline Assembler scheint nicht 100% kompatibel zu sein,

Gruß Hagwe
Deswegen habe ich ja auch gemeint, dass Schorschi einen Bug melden soll. Wahrscheinlich hat noch niemand den Inline Assemler derartig getestet.

In Anbetracht der Änderungen im 64Bit-Compiler und geplanter weiterer Prozessorplattformen, sollte man vielleicht auf inline Assembler oder sogar Assembler komplett verzichten
Solange eine entsprechende Pascal Alternative des Assemblercodes zur Verfügung steht, sehe ich kein Problem mit (Inline) Assembler. Mit dem passenden ifdefs sehe ich da kein Problem.

Hmm, für Win32 läuft's schonmal mit Lazarus. Dabei kommt offenbar die PIC-Problematik nicht zum Tragen.

Trotzdem, war einfacher als gedacht.
Das ich nicht auf die Idee gekommen bin dir das vorzuschlagen
PIC findet nur unter Linux (oder Unix allgemein?) Anwendung. Bei Windows werden beim Start einer Anwendung die Adressen, welcher in der EXE abgelegt sind an die eigentliche Adresse verschoben (relocation). Deswegen ist keine "Global Offset Table" wie unter Linux nötig (welche eben auf x86 normal in EBX liegt).

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat