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