REX.B覆盖功能是否适用于MOVSS指令?

11
我正在生成适用于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

这里是在发生什么事情?

1个回答

14

最终,我想通了。对于这条指令,rex字节应该放在第二位,就像这样:

F3 41 0F 10 46 10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接