这是一个有效的x86汇编指令吗?

Nat*_*ver 3 binary x86 exception

我刚下载了最新版本的SmartMusic(http://www.smartmusic.com),并尝试首次运行它.
问题是,启动屏幕上有一个未处理的Win32异常.
作为一个极客/黑客(原来的意思)我当然想知道为什么会这样,所以我打开我的Visual Studio调试器来看一下程序集并在调试器下运行它.
未处理的异常是一个"非法指令",并且绊倒它的指令是:
cvtdq2ps xmm0,xmm0
现在,我真的不太了解汇编,但这对我来说看起来像是一个有效的指令(这里有一些信息)所以我是想知道是否有人知道这是怎么回事以及如何(如果可能的话)解决它.
(我宁愿修理一些东西,只需花一个小时的时间通过电话获得技术支持就可以得到它"我们会有人看看它,感谢你打电话给我一个美好的一天*点击*")
顺便说一句,我有尝试重新安装它,所以它不是那样:)

这是异常之前和之后的代码

je          004DBAEA  
mov         edx,dword ptr [esp+8]  
push        edx  
call        007806A0  
mov         eax,dword ptr [esi+4]  
mov         ecx,dword ptr [eax+3EF0h]  
test        ecx,ecx  
je          004DBAFC  
call        007506A0  
mov         eax,dword ptr [esi+1CCh]  
mov         ecx,dword ptr [esi+4]  
mov         edx,dword ptr [ecx]  
push        eax  
mov         eax,dword ptr [edx+218h]  
call        eax  
mov         ecx,dword ptr [esi+4]  
mov         edx,dword ptr [ecx]  
movd        xmm0,dword ptr [esi+1B8h]  
mov         eax,dword ptr [edx+26Ch]  
push        ecx  
cvtdq2ps    xmm0,xmm0   ; this is the instruction it chokes on
movss       dword ptr [esp],xmm0  
call        eax  
mov         ecx,dword ptr [esi+4]  
movss       xmm0,dword ptr [esi+1ACh]  
movss       dword ptr [ecx+4ACh],xmm0  
xor         eax,eax  
cmp         dword ptr [esi+1B0h],eax  
setne       al  
cmp         eax,1  
mov         dword ptr [esi+1B0h],eax  
mov         eax,dword ptr [esi+4]  
sete        dl  
mov         byte ptr [eax+0ED2h],dl  
mov         edx,dword ptr [esi+4]  
xor         eax,eax  
cmp         dword ptr [esi+1B4h],eax  
setne       al  
cmp         eax,1
Run Code Online (Sandbox Code Playgroud)

Ste*_*non 6

你在一台很旧的机器上运行(2005年以前)吗?cvtdq2ps需要SSE2; 我很难想象任何人仍在使用缺乏SSE2支持的硬件,但这是可能的.

编辑:是的,这就是问题所在.Athlon XP系列有SSE,但没有SSE2,这是非法指令的原因.我想是时候进行现代化了.有越来越多的软件需要SSE2和SSE3.