|
You last visited: Today at 15:30
Advertisement
XMM register
Discussion on XMM register within the C/C++ forum part of the Coders Den category.
02/15/2015, 23:22
|
#1
|
elite*gold: 0
Join Date: Aug 2014
Posts: 43
Received Thanks: 2
|
XMM register
Hallo Elitepvpers, ich hätte eine Frage.
Wie MOV ich per C++ so ein wert:  in das XMM(7) register.
Danke im Vorraus
Mfg .SlaP
|
|
|
02/16/2015, 17:13
|
#2
|
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
|
Mit C++ gar nicht (zumindest nicht vom Sprachstandard her).
Das kannst du maximal per (inline) Assembler machen.
Die Sprache C/C++ selbst ist vom Standard her von der Architektur / Plattform unabhängig. Von der Registerebene soll die Sprache ja abstrahieren. Und die XMM-Register sind x86 / x86_64 spezifische Register.
Wenn's also unbedingt ein spezielles Register sein muss, kommste um (inline) Assembler nicht drumrum. Maximal noch über irgendwelche unter Umständen compilerspezifischen Intrinsics, aber das nehme ich eigentlich nicht an, weil auch die (zumindest von dem, was ich kenne) von den Registern abstrahieren.
Mit freundlichen Grüßen
Jeoni
|
|
|
02/16/2015, 21:57
|
#3
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
Solltest du Visual Studio nutzen kannst du einfach die SSE intrinsics verwenden.
|
|
|
02/18/2015, 00:03
|
#4
|
elite*gold: 0
Join Date: Aug 2014
Posts: 43
Received Thanks: 2
|
Quote:
Originally Posted by Peter File
Solltest du Visual Studio nutzen kannst du einfach die  verwenden.
|
Code:
__m128 cords = {50000.0f,-30000.0f,10000.0f,0.97f};
unsigned long adr = (unsigned long)&cords;
DWORD setMouseState = *(DWORD*)0x07CE01C;
DWORD setMouseStateCall = 0x044F000;
__asm{
movss xmm7, adr
mov ecx, setMouseState
push 1
push 0
call setMouseStateCall
}
So geht es leidet nicht.
|
|
|
02/18/2015, 08:36
|
#5
|
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
|
Schonmal geschaut, was movss macht? Das übernimmt nur den ersten float-Wert der angegebenen Adresse in das Register. Was du brauchst ist movdqa bzw. movdqu, wenn du nicht garantieren kannst, dass die cords-Variable aligned ist. Abgesehen davon, machst du das mit der Zwischenvariable adr falsch. Dadurch lädst du zur Zeit nicht einmal den ersten float, sondern nur adr, interpretiert als float, nach xmm7.
Statt
sollte
dastehen, dann sollte es klappen, denke ich.
Mit freundlichen Grüßen
Jeoni
|
|
|
02/20/2015, 05:17
|
#6
|
elite*gold: 0
Join Date: Aug 2014
Posts: 43
Received Thanks: 2
|
Quote:
Originally Posted by Jeoni
Schonmal geschaut, was movss macht? Das übernimmt nur den ersten float-Wert der angegebenen Adresse in das Register. Was du brauchst ist movdqa bzw. movdqu, wenn du nicht garantieren kannst, dass die cords-Variable aligned ist. Abgesehen davon, machst du das mit der Zwischenvariable adr falsch. Dadurch lädst du zur Zeit nicht einmal den ersten float, sondern nur adr, interpretiert als float, nach xmm7.
Statt
sollte
dastehen, dann sollte es klappen, denke ich.
Mit freundlichen Grüßen
Jeoni
|
Mhh ging leider auch nicht...
Die werte werden nicht überschrieben
|
|
|
03/20/2015, 23:48
|
#7
|
elite*gold: 0
Join Date: Aug 2014
Posts: 43
Received Thanks: 2
|
help pls
|
|
|
03/21/2015, 11:12
|
#8
|
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
|
Code:
__declspec(align(16)) struct Vector4
{
float a;
float b;
float c;
float d;
Vector4(float a, float b, float c, float d) : a(a), b(b), c(c), d(d) { };
};
Vector4 MyVector(1.0f, 2.0f, 3.0f, 4.0f);
__asm movaps xmm7, MyVector;
hf
|
|
|
 |
Similar Threads
|
pvp server register button no funciona help - register button does not work help
12/02/2014 - DarkOrbit - 1 Replies
He instalado el servidor
register button
no funciona
¡ayuda
**********************
I installed server
register button
does not work
help
**********************
|
why i can't register
06/19/2013 - Dragonica Private Server - 1 Replies
WHY i can't register for id in dragonica evo!
|
help with register
10/01/2012 - AutoIt - 8 Replies
Hi how can i change register in specific addres?
for example i have this addres 0034534 and i want to change the register of eax
how can i do?
|
Inline Asm -> Wert aus Register in anderes Register schreiben
03/17/2012 - C/C++ - 17 Replies
Huhu,
die Frage klingt vielleicht etwas Blöd, aber ich würde gerne wissen, wie ich den Wert eines Registers in ein anderes schreiben kann.
Wenn ich mov verwende wird lediglich die Speicheradresse auf das andere Register geschrieben und ich brauche den Wert in die Speicheradresse die mein Register hält.
Mein Inline Asm Code sieht folgendermaßen aus:
char *command;
code = "insert 1";
_asm {
|
Where i can register?
10/11/2008 - SRO Private Server - 6 Replies
Hello guys i want to play in the server ecsro but i can´t register me and can someone tell me how i can register me or have someone a second account pls help me:rolleyes:
|
All times are GMT +1. The time now is 15:31.
|
|