【问题标题】:Why Some Assembly Instruction Are not Documented为什么某些装配说明没有记录在案
【发布时间】:2010-11-01 17:16:47
【问题描述】:

Delphi 源代码中有一些汇编指令,我在汇编备忘单中的任何地方都找不到,包括:

  1. fld
  2. 晶圆厂
  3. fcompp
  4. fstsw

我在“电源”功能中阅读了这些汇编说明;但我在 this 备忘单或类似的备忘单中找不到它们。

这些指令不属于8086、8088 CPU指令吗?或者只是这些说明不包含在这些备忘单中?

有没有列出所有组装说明的好网页?

【问题讨论】:

  • 它们是 x87 浮点指令。

标签: delphi assembly inline-assembly x86-16


【解决方案1】:

这些都是浮点指令,(主要是出于历史原因)通常与整数指令分开记录。如需更权威的参考资料,请考虑查看 Intel manual

【讨论】:

    【解决方案2】:

    这些似乎是浮点指令。在过去,一个单独的芯片实现了这些(8087),因此作为链接的指令列表避免了这些操作。无论如何,您可以在任何更新的组装手册中找到它们,因为浮点指令很久以前就被插入到同一个芯片中。以this 为例。

    【讨论】:

    • 486DX 是第一个配备集成 FPU 的产品。 8086、80286 和 80386 都附带一个插槽,用于托管 8087、80287 和 80387“数学协处理器”。 486SX 是 FPU 缺失或禁用的 486DX。 487 是一个成熟的 486DX,安装后禁用 486SX - 实际上一个拥有双处理器机器但其中一个芯片被禁用......因为 Pentium 所有 PC 都带有 FPU。如果数学协处理器丢失,CPU 可以在遇到 FPU 指令时发出中断,让应用程序或操作系统有机会模拟它。
    【解决方案3】:

    没关系。我在这里找到了所有 8086 汇编指令的列表:

    http://en.wikipedia.org/wiki/X86_instruction_listings

    【讨论】:

    • 请不要将维基百科作为官方参考。这种情况下的规范参考是:intel.com/design/pentiumii/manuals/243191.htm
    • @Jim Brisson:您提供的链接指向大约 12 年前的手册版本。虽然您可以争辩说它仍然相关(F.P. 说明没有太大变化),但我认为同一手册的当前版本通常是更好的选择(请参阅我的答案中的链接)。
    • 确实如此,我可以说我是通过粗心搜索“intel 指令集手册”获得的。我什至会说,我在将链接中包含的 /pentiumii/ 发布到此处后进行了思考,与您有相同的想法。唉,我对这些说明确实没有发生重大变化这一事实感到满意......请放心,我不会看不到对规范参考的咆哮(尽管是次要的)讽刺。
    • 考虑到 Delphi 编译器支持的处理器,我相信链接应该没问题... 虽然 BASM 确实可能支持编译器本身不使用的指令。
    猜你喜欢
    • 1970-01-01
    • 2010-11-28
    • 2020-07-24
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    相关资源
    最近更新 更多