一段嵌入汇编,无法编译通过,帮忙看看
bool CheckMemory(void *aSource,DWORD aSize,__int64 MMXValue)
{
asm
{
mov esi, aSource //开始地址
mov ecx, aSize //长度
shr ecx,6 //除64
mov eax,0
emms
pxor mm0,mm0
pxor mm1,mm1
pxor mm2,mm2
pxor mm3,mm3
pxor mm4,mm4
pxor mm5,mm5
pxor mm6,mm6
pxor mm7,mm7
XorLoop1:
pxor mm0, qword ptr [esi+eax]
pxor mm1, qword ptr [esi+eax+0x8]
pxor mm2, qword ptr [esi+eax+0x10]
pxor mm3, qword ptr [esi+eax+0x18]
pxor mm4, qword ptr [esi+eax+0x20]
pxor mm5, qword ptr [esi+eax+0x28]
pxor mm6, qword ptr [esi+eax+0x30]
pxor mm7, qword ptr [esi+eax+0x38]
add eax,0x40 //64
sub ecx, 1
jnz XorLoop1
pxor mm0,mm1
pxor mm0,mm2
pxor mm0,mm3
pxor mm0,mm4
pxor mm0,mm5
pxor mm0,mm6
pxor mm0,mm7
mov eax,[ESP+0x8] //MMXValue
movq mm1, qword ptr [eax] //读值比较
pxor mm0,mm1
movq qword ptr [eax], mm0 //保存结果
Sfence
Emms
xor esi,esi
cmp dword ptr [eax], esi
Jne Fal
cmp dword ptr [eax+4], esi
Jne Fal
xor eax,eax //检验成功
jmp exit
Fal: //检验失败
mov eax,1
Exit:
nop
}
编译错误:F1001 Internal code generator error
[解决办法]
是这个吧jmp Exit