我正在生成适用于64位x86的以下指令:
这条指令是否无效?我找不到任何迹象表明这种编码在AMD 64位指令参考中无效。
objdump也无法将其识别为有效的指令:
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
这里是在发生什么事情?