AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign XE2 Stringfunktion + ASM code : function CountString(...)

XE2 Stringfunktion + ASM code : function CountString(...)

Ein Thema von bernhard_LA · begonnen am 21. Sep 2011 · letzter Beitrag vom 21. Sep 2011
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#2

AW: XE2 Stringfunktion + ASM code : function CountString(...)

  Alt 21. Sep 2011, 09:56
Ein paar [delphi]-Tags wären nicht schlech.

Delphi-Quellcode:
begin
...
ASM
Geht unter 64 Bit garnicht mehr, da es dort kein Inline-Assemler mehr gibt (in Delphi).
Prozeduren müssen entweder in Pascal oder Assembler geschrieben sein. (gemischt ist nicht mehr ... je Prozedur)

also entweder
Delphi-Quellcode:
function CountString(Const substr, s: WideString): Word;
{$IFDEF CPUX86}
asm
...
end;
{$ENDIF CPUX86}
{$IFDEF CPUX64}
asm
...
end;
{$ENDIF CPUX64}
oder
Delphi-Quellcode:
function CountString(Const substr, s: WideString): Word;
asm
{$IFDEF CPUX86}
...
{$ENDIF CPUX86}
{$IFDEF CPUX64}
...
{$ENDIF CPUX64}
end;

Du könntest dir die WideString-Varianten nehmen und müßtest unter Win64 die Register anpassen.
Unter 32 Bit lagen die ersten Parameter in EAX, EDX, ECX, welche aber bei 64 Bit nun anders vereilt sind. Irgenwo wurde das hier, in der DP, vor Kurzem mal erwähnt.

Für den Anfang also einfach nur die entsprechenden 32-Bit-Register der 64-Bit-Architektur verwenden.


Wenn ich mal die Zeit finde, läßt sich dann bestimmt noch einiges Optimieren. (mit MMX, SSE und Co.)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Sep 2011 um 10:02 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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