0
movdqa xmm0, ptr fs:[eax]
和movdqu (Array[ebx]), xmm0
是2个指令没有在我的编译器中执行。请告诉我这些指令的确切操作码吗?x86指令到操作码转换
movdqa xmm0, ptr fs:[eax]
和movdqu (Array[ebx]), xmm0
是2个指令没有在我的编译器中执行。请告诉我这些指令的确切操作码吗?x86指令到操作码转换
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字节。