2012-11-28 66 views

回答

0
movdqa xmm0, ptr fs:[eax] 

使用段覆盖前缀FS(三字节)操作码和ModR/M字节。它应该看起来像这样:

0x64   ;<-- segment override prefix FS 
0x66 0x0F 0x6F ;<-- opcode 
0x00   ;<-- ModR/M is 000 for Reg (xmm0), 00 for Mod 
       ;(single member addressing) and 000 for Memory ([EAX]) 

第二条指令不使用段覆盖前缀。

movdqu (Array[ebx]), xmm0 

我想我不明白,第一个括号在这里。 如果他们的意思是设定Array[ebx]值,则代码应该是这样的:

0xF3 0x0F 0x7F ;<-- opcode 
0x80   ;ModR/M is 00 for Reg (xmm0), 10 for Mod 
       ;(register+disp32) and 000 for memory ([EAX+disp32]) 
0xdeadbeef  ;little-endian encoded address displacement for Array 

如果他们的意思是先进的计算,还有的需要SIB字节。