我正在为64位x86生成以下指令:
41 F3 0F 10 46 10 movss XMM0,014h[R14]
不幸的是,它在该行上出现故障。 gdb将其反汇编为:
0x0000000000402054 <+320>: rex.B
0x0000000000402055 <+321>: movss 0x14(%rsi),%xmm0
请注意,无法识别rex.B覆盖,索引是RSI而不是R14。
指令无效吗?我无法在AMD 64位指令参考中找到任何迹象表明此编码无效。
objdump也无法将其识别为有效指令:
41 rex.B
f3 0f 10 46 10 movss 0x10(%rsi),%xmm0
这里发生了什么?
答案 0 :(得分:14)
最后,我想通了。对于该指令,rex字节为第二个,如:
F3 41 0F 10 46 10