movdqa xmm0, ptr fs:[eax]
并且movdqu (Array[ebx]), xmm0
这两条指令没有在我的编译器中执行。请告诉我这些指令的确切操作码?
问问题
486 次
1 回答
1
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 字节。
于 2013-08-13T06:41:40.940 回答