Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#5

AW: ASM Inline code x64

  Alt 14. Feb 2022, 02:35
InlineASM gibt es nur im Win32 (von Borland).

Überall in neuen Compilern war man (CodeGear/Embarcadero/Idera) zu faul sowas zu bauen.


Also da wo Assember noch geht, da dann nur noch als komplette Funktion (abgesehn von Win32)
und für ARM scheinbar nirgendwo.
https://docwiki.embarcadero.com/RADS...ation_(Delphi)
Die Frage ist nur was hilft mir das jetzt weiter?

Zitat:
Assembler wird mit ASM ... END angegeben.
Habe ich.. siehe
Delphi-Quellcode:
        // der block
        asm
          FNCLEX
        end;
        // end block
Die Meldung die dann bei 32Bit kommt.
Zitat:
[dcc64 Fehler] uMain.pas(513): E1025 Sprach-Feature wird nicht unterstützt: 'ASM'
Zitat:
Hast du DCUs im selben Ausgabeverzeichnis, für alle Platformen?
Nein.
Diese sind getrennt in jeweiligen Root der Projekte im Ordner "dcu"
Zitat:
Also dort wo Assember noch geht, da dann nur noch als komplette Funktion (abgesehn von Win32)
Delphi-Quellcode:
function TSkinEngine.Rgb2Gray(RGBValue: COLORREF): COLORREF; stdcall;
asm
  movzx edx, al
  imul edx, 19595 //Red
  movzx ecx, ah
  imul ecx, 38470 //Greean
  shr eax, 16
  imul eax, 7471 //Blue
  add eax, ecx
  add eax, edx
  shr eax, 16
  mov ah, al
  shl eax, 8
  mov al, ah
end;
Funktioniert unter 64Bit.. sagte ich schon.
Zitat:
"Assembler" als Schlüsselwort dürfte schon ewig keine Auswirkng mehr haben
Verwende stdcall !

Das Problem sind die Abhängigkeiten.
Addiere ich SOP.exe (32Bit) zu den Abhängigkeiten der 64Bit Anwendung funktioniert das Kompilieren nicht mehr.
Mit den im ersten Beitrag angegebenen Fehlermeldungen.

Geändert von venice2 (14. Feb 2022 um 03:14 Uhr)
  Mit Zitat antworten Zitat