PSLLW/PSLLD/PSLLQ/PSLLDQ PSRLW/PSRLD/PSRLQ/PSRLDQ 字节位移指令
PSLLW/PSLLD/PSLLQ/PSLLDQ 算术字节左移 //移动N*8位 空出来的位用0填充
PSRLW/PSRLD/PSRLQ/PSRLDQ算术字节右移 //移动N*8位 空出来的位用0填充
PSLLW字操作 //16位WORD
PSLLD 双字操作//32位 DWORD
PSLLQ 4字操作 //64位 QWORD
PSLLDQ 8字操作//128位 XMMWORD
郁金香灬游戏外挂技术
官方网址 www.yjxsoft.com
本教程视频1920*1080分辩率下观看最佳
VS2017+win10 64位 环境
郁金香灬老师:QQ 3003975536 备用QQ 150330575 391990139
欢迎大家一起研究游戏安全与游戏外挂方面知识。
兴趣+时间+优秀老师会帮助你快速成功
知识点:
64位整数转浮点
双浮点数转整数
#include<intrin.h>
#include <emmintrin.h>
SSE/SSE2/SSE3 //Intel扩展指令有几十条
//整数 转浮点数
//浮点数 转整数
CVTSS2SI – 取出一个32位的浮点值,并取整(四舍五入)为一个64位的整型。内部指令:_mm_cvtss_si64
CVTTSS2SI – 取出一个32位的浮点值,并截断为一个64位的整型。内部指令:_mm_cvttss_si64
//浮点数 转整数
CVTSD2SI – 取出最低位的64位浮点值,并取整为一个整型。内部指令: _mm_cvtsd_si64
CVTTSD2SI – 取出一个64位的浮点值,并截断为一个64位的整型。内部指令:_mm_cvttsd_si64
//整数 转浮点数
CVTSI2SD – 取出最低位的64位整型,并将其转换为一个浮点值。内部指令:_mm_cvtsi64_sd
CVTSI2SS – 把一个64位的有符号整型转换为一个浮点值,并把它插入到一个128位的参数中。内部指令:_mm_cvtsi64_ss
cvttss2si eax, dword ptr ss: //float 转 int
cvtsi2ss xmm0, dword ptr ss: //int 转 float xmm0= cvtsi2ss把123转换浮点数123.0f
cvtss2sd xmm0, dword ptr ss: //float 转 double
COMISD 双精度浮点数 EFLAGS
cvttsd2si rcx,xmm0 // double 转 UINT64 // 456.0f转换成 UIN64 456 rcx=转整数64(xmm0)
cvtsi2sd xmm0,rax // UIN64 转 double
cvtsi2sd xmm0,ecx // UIN32 转 double
cvttsd2si eax, xmm0 //double 转 UINT32 //x86下一般使用 __dtoul3 <double 转 UINT32 >
//算术右移N个字节 //右移N*8个位
psrldq xmm1, 0x4 //128位的 右移 字节数 //右移了4字节 右移了32位
psllq xmm1, 0x1 //算术左移1字节
psrlq xmm1, 0x1 //算法右移1字节
PSLLW/PSLLD/PSLLQ/PSLLDQ算术字节左移 //移动N*8位 空出来的位用0填充
PSRLW/PSRLD/PSRLQ/PSRLDQ算术字节右移 //移动N*8位 空出来的位用0填充
//x64环境指令
#include<intrin.h>
#include <emmintrin.h>
int testx64()
{
__m128d a;
a.m128d_f64 = 200.5;
__int64 res = _mm_cvtsd_si64(a);
printf_s("Original a: %I64f\n", a.m128d_f64);
printf_s("Result res: %I64d\n", res);
return 0;
}
郁金香老师:QQ 3003975536
备用 QQ 150330575
备用 QQ 391990139
手机 139 9636 2600
微信 139 9636 2600
支付宝 139 9636 2600
官方网址www.yjxsoft.com
QQ交流群298179799569245 158280115
PSLLW1字操作 //16位 WORD PSLLW XMM0,3//XMM0的低16位 左移3个字节 28位
PSLLD2字操作 //32位 DWORD
PSLLQ4字操作 //64位 QWORD
PSLLDQ 8字操作//128位 XMMWORD pslldq xmm0,4 //XMM0的低16位 左移4个字节 32位
页:
[1]