Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 15:30

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



XMM register

Discussion on XMM register within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
.SlaP's Avatar
 
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
.SlaP is offline  
Old 02/16/2015, 17:13   #2


 
Jeoni's Avatar
 
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
Jeoni is offline  
Old 02/16/2015, 21:57   #3



 
+Yazzn's Avatar
 
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.
+Yazzn is offline  
Old 02/18/2015, 00:03   #4
 
.SlaP's Avatar
 
elite*gold: 0
Join Date: Aug 2014
Posts: 43
Received Thanks: 2
Quote:
Originally Posted by Peter File View Post
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.
.SlaP is offline  
Old 02/18/2015, 08:36   #5


 
Jeoni's Avatar
 
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
Code:
movss xmm7, adr
sollte
Code:
movdqu xmm7, cords
dastehen, dann sollte es klappen, denke ich.

Mit freundlichen Grüßen
Jeoni
Jeoni is offline  
Old 02/20/2015, 05:17   #6
 
.SlaP's Avatar
 
elite*gold: 0
Join Date: Aug 2014
Posts: 43
Received Thanks: 2
Quote:
Originally Posted by Jeoni View Post
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
Code:
movss xmm7, adr
sollte
Code:
movdqu xmm7, cords
dastehen, dann sollte es klappen, denke ich.

Mit freundlichen Grüßen
Jeoni

Mhh ging leider auch nicht...

Die werte werden nicht überschrieben
.SlaP is offline  
Old 03/20/2015, 23:48   #7
 
.SlaP's Avatar
 
elite*gold: 0
Join Date: Aug 2014
Posts: 43
Received Thanks: 2
help pls
.SlaP is offline  
Old 03/21/2015, 11:12   #8
 
Dr. Coxxy's Avatar
 
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
Dr. Coxxy is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.