【发布时间】:2010-03-08 20:09:34
【问题描述】:
在 SSE 中,前缀 066h(操作数大小覆盖)0F2H (REPNE) 和 0F3h (REPE) 是操作码的一部分。
在非 SSE 中 066h 在 32 位(或 64 位)和 16 位操作之间切换。 0F2h 和 0F3h 用于字符串操作。它们可以组合在一起,以便066h 和0F2h(或0F3h)可以在同一条指令中使用,因为这是有意义的。 SSE 指令中的行为是什么?例如,我们有(暂时忽略 mod/rm):
0f 58 addps
66 0f 58 addpd
f2 0f 58 addsd
f3 0f 58 addss
但这是什么?
66 f2 0f 58
然后呢?
f2 66 0f 58
更不用说以下有两个冲突的 REP 前缀:
f2 f3 0f 58
这些的规格是什么?
【问题讨论】:
-
不是 f3 0f 58 ADDSS 而不是 ADDPD?
标签: assembly x86 sse machine-code prefixes