Hallo,
Ich bin gerade dabei eine Lazarus Projekt in Linux von 32 Bit auf 64 Bit hoch zu nehmen, im Code sind einige Assembler Befehle, die ich nicht umschrieben kann, da mir das Wissen fehlt.
Diese Meldung kommt vom Kompiler:
Error: Asm: [push reg32] invalid combination of opcode and operands
Bei diesen Zeilen:
PUSH ESI
PUSH EDI
POP EDI
POP ESI
Weiß jemand wie ich das Ändern kann, dass es funktioniert?
Wie heißt die Compilerdirektive vom FPC der zwischen 32Bit und 64 Bit unterscheidet? (Damit ich mit {$ifdef } zwischen 32 und 64 Bit umschalten kann.
Vielen Dank für eure Hilfe.
Gruß Markus.
Linux: Suse/KDE64 Bit, FPC 2.6.0, Lazarus 0.9.31/SVN:35701
Assembler PUSH ESI unter Linux 64 Bit
-
- Beiträge: 134
- Registriert: So 30. Nov 2008, 21:53
Re: Assembler PUSH ESI unter Linux 64 Bit
Wie wär's mit sowas:
Gruß Frank
Code: Alles auswählen
{$ifdef CPU64}
push rsi
push rdi
pop rdi
pop rsi
{$else}
push esi
push edi
pop edi
pop esi
{$endif}
-
- Beiträge: 1466
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
- CPU-Target: 32/64Bit
Re: Assembler PUSH ESI unter Linux 64 Bit
Vielen Dank!
Das hat geklappt.
Das hat geklappt.
EleLa - Elektronik Lagerverwaltung - www.elela.de