1

考虑由以下 Bash shell 代码生成的文件:

echo -n "\x0f\x63\x42\xac" > binarydata

现在我在文件上运行 ndisasm 以查看它将代表哪些指令:

ndisasm -b 16 binarydata

我得到

00000000  0F6342AC          packsswb mm0,[bp+si-0x54]

根据x86 参考,它在 Pentium 上不可用,它实现了 16 位指令集的 x86-32 超集。那么ndisasm如何在16位模式下使用呢?

4

1 回答 1

1

MMX 指令可以在 16 位模式中使用,也可以在实模式中使用(使用 Pentium MMX)。

16 位模式和 32 位模式(使用英特尔 80386+)之间的唯一区别是我们代码段中地址大小和操作数大小前缀的含义和用法。

短剑

于 2013-06-05T07:02:17.117 回答