AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Assembler Zugriff auf 128 bit variable
Thema durchsuchen
Ansicht
Themen-Optionen

Assembler Zugriff auf 128 bit variable

Ein Thema von mwilms · begonnen am 26. Nov 2022 · letzter Beitrag vom 28. Nov 2022
Antwort Antwort
mwilms

Registriert seit: 23. Nov 2022
Ort: Wolfratshausen
40 Beiträge
 
Delphi 12 Athens
 
#1

Assembler Zugriff auf 128 bit variable

  Alt 26. Nov 2022, 16:20
Hallo,

weiß jemand wie man das xxm0 Register mit einer 128bit Variable lädt?

Für 64 Bit:
Delphi-Quellcode:
var
  Bytes8: Int64; // Bzw. Double
asm
  movq xxm0,Bytes8
Für 128 Bit?
Delphi-Quellcode:
var
  Bytes16: ??? // Welche Deklaration?
asm
  movaps xmm0,Bytes16
Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Assembler Zugriff auf 128 bit variable

  Alt 26. Nov 2022, 17:34
Per se ist der Typ erstmal egal, da es nativ sowieso nichts gibt und es somit nur als Datenspeicher dient.
Delphi-Quellcode:
array[0..15] of Byte;
array[0..3] of UInt32;
array[0..1] of UInt64;
record lo, hi: UInt64; end;
...
oder in zwei einzelne Variablen var lo, hi: UInt64;


movdqu
https://stackoverflow.com/questions/...eneral-purpose
$2B or not $2B

Geändert von himitsu (26. Nov 2022 um 17:39 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Assembler Zugriff auf 128 bit variable

  Alt 26. Nov 2022, 17:47
<gelöscht>
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Assembler Zugriff auf 128 bit variable

  Alt 26. Nov 2022, 18:00
movb = byte (1)
movw = word (2)
movd = doubleword (2*2)
movq = quadword (4*2)
movdqu = double-quadword (2*4*2)
$2B or not $2B

Geändert von himitsu (26. Nov 2022 um 18:03 Uhr)
  Mit Zitat antworten Zitat
mwilms

Registriert seit: 23. Nov 2022
Ort: Wolfratshausen
40 Beiträge
 
Delphi 12 Athens
 
#5

AW: Assembler Zugriff auf 128 bit variable

  Alt 26. Nov 2022, 19:55
Gibt es eine Entsprechung für

vmovups xmm0,[rsi]

in Delphi?

Oder gar für

vmovups ymm0,[rsi]; vmovups zmm0,[rsi]
  Mit Zitat antworten Zitat
mwilms

Registriert seit: 23. Nov 2022
Ort: Wolfratshausen
40 Beiträge
 
Delphi 12 Athens
 
#6

AW: Assembler Zugriff auf 128 bit variable

  Alt 26. Nov 2022, 19:58
Wieviele Zyklen (CPU Cycles) benötigen diese Befehle? (einschließlich movdqu)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Assembler Zugriff auf 128 bit variable

  Alt 26. Nov 2022, 21:17
Nicht alles versteht der Assembler im Delphi,
aber was er nicht kennt, dass kann man auch direkt binär eingeben.

z.B. dw 310Fh für rdtsc (db dw dd)

Zitat:
Wieviele Zyklen (CPU Cycles) benötigen diese Befehle
das kommt auf die CPU an.

genaueres wirst nur wohl in ihrer Dekumentation finden.
$2B or not $2B

Geändert von himitsu (26. Nov 2022 um 21:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Assembler Zugriff auf 128 bit variable

  Alt 28. Nov 2022, 00:27
Wieviele Zyklen (CPU Cycles) benötigen diese Befehle? (einschließlich movdqu)
Kannst du hier nachschauen
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 22:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz