View previous topic :: View next topic |
Author |
Message |
Dr.Disrespect Grandmaster Cheater Reputation: 3
Joined: 17 Feb 2016 Posts: 526
|
Posted: Fri Apr 29, 2016 8:00 am Post subject: Is there a way to push/pop xmm registers? |
|
|
Is there a way to push/pop xmm registers? If not, is there a workaround?
|
|
Back to top |
|
|
Cake-san Grandmaster Cheater Reputation: 8
Joined: 18 Dec 2014 Posts: 541 Location: Semenanjung
|
Posted: Fri Apr 29, 2016 9:42 am Post subject: |
|
|
workaround:
-alloc your own variable to use as temp storage.
-mov xmm value into edi,ecx,... then,push that register.
Well push&pop are just like copying value and removing value into/from the stack.Its serve as temporary storage when moving data.
I'm sorry if I'm wrong -_-
_________________
... |
|
Back to top |
|
|
hhhuut Grandmaster Cheater Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Fri Apr 29, 2016 9:46 am Post subject: |
|
|
You can also save the xmm directly on the stack.
Push:
Code: | sup esp,10
movdqu [esp],xmm0 |
Pop:
Code: | movdqu xmm0,[esp]
add esp,10 |
|
|
Back to top |
|
|
Dr.Disrespect Grandmaster Cheater Reputation: 3
Joined: 17 Feb 2016 Posts: 526
|
Posted: Fri Apr 29, 2016 10:38 am Post subject: |
|
|
hhhuut wrote: | You can also save the xmm directly on the stack.
Push:
Code: | sup esp,10
movdqu [esp],xmm0 |
Pop:
Code: | movdqu xmm0,[esp]
add esp,10 |
|
Oh, got it.
Thanks for both of you.
Two more question:
1. Is it "esp,16" or "esp,10"?
2. how to "xor" xmm registers?
Last edited by Dr.Disrespect on Fri Apr 29, 2016 11:47 am; edited 1 time in total |
|
Back to top |
|
|
hhhuut Grandmaster Cheater Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Fri Apr 29, 2016 11:47 am Post subject: |
|
|
|
|
Back to top |
|
|
Dr.Disrespect Grandmaster Cheater Reputation: 3
Joined: 17 Feb 2016 Posts: 526
|
Posted: Fri Apr 29, 2016 11:48 am Post subject: |
|
|
Thanks again,
Just in case you did not see my update, is it "esp,16" or "esp,10"? Shouldn't it be 16?
|
|
Back to top |
|
|
hhhuut Grandmaster Cheater Reputation: 6
Joined: 08 Feb 2015 Posts: 607
|
Posted: Fri Apr 29, 2016 11:51 am Post subject: |
|
|
dqu = double quadword so 16 decimal bytes, but since CE interprets the number as hex, it's 10.
|
|
Back to top |
|
|
Dr.Disrespect Grandmaster Cheater Reputation: 3
Joined: 17 Feb 2016 Posts: 526
|
Posted: Fri Apr 29, 2016 11:52 am Post subject: |
|
|
hhhuut wrote: | dqu = double quadword so 16 decimal bytes, but since CE interprets the number as hex, it's 10. |
Got it, thanks a lot.
|
|
Back to top |
|
|
HSergi Newbie cheater Reputation: 0
Joined: 17 Dec 2017 Posts: 22
|
Posted: Mon Feb 01, 2021 5:09 pm Post subject: Re: Is there a way to push/pop xmm registers? |
|
|
Dr.Disrespect wrote: | Is there a way to push/pop xmm registers? If not, is there a workaround? |
Yes, there is a way: fld and fstp.
Google: "x86 assembly fstp" and "x86 assembly fld". Can't post urls.
So if you want to save XMM register, use XMM register and then restore original value, you'd do this:
Code: |
fld ST(0)
// do stuff with xmm1
fstp ST(0)
|
Why necro? I forgot the instruction syntax for those and googled it. Google found this. People say it's impossible, which is false. Just decided to post for the next person looking for this kind of instructions.
Cheers
Last edited by HSergi on Mon Feb 01, 2021 5:17 pm; edited 1 time in total |
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 457
Joined: 09 May 2003 Posts: 25262 Location: The netherlands
|
Posted: Mon Feb 01, 2021 5:14 pm Post subject: |
|
|
fxsave fxrstr is also quite handy
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
|
FENIX_145 How do I cheat? Reputation: 0
Joined: 05 Apr 2015 Posts: 5
|
Posted: Fri Sep 16, 2022 8:31 am Post subject: |
|
|
Dark Byte wrote: | fxsave fxrstr is also quite handy |
Hello. How can I use it sir?
|
|
Back to top |
|
|
|