【发布时间】:2015-09-05 10:43:50
【问题描述】:
为什么在 x64 中某些操作码无效(例如06、07),而在 x86 中用于相当基本的指令(06 和 07 是 push 和 pop) ?我认为那些最简单的指令在这两种架构中都能很好地发挥作用。
为什么他们在 x64 中禁用了一些简单的指令?为什么他们不工作? 为什么他们禁用了一些操作码,在操作码列表中创建了漏洞,而他们可以将它们分配给 x64 版本的指令?
参考:
【问题讨论】:
-
推送/弹出段寄存器在 x64 模式下没有任何意义。
-
相关:x86 32 bit opcodes that differ in x86-x64 or entirely removed 列出了其中的大部分,以及一些被重新利用而不是出错的操作码。 (就像一字节 inc/dec 变成 REX 前缀,
arpl变成movsxd。)
标签: assembly x86 x86-64 cpu-architecture opcode