【问题标题】:Does 8086 assembly language work on a modern CPU?8086 汇编语言可以在现代 CPU 上运行吗?
【发布时间】:2011-02-01 04:35:15
【问题描述】:

8086 汇编语言可以在 intel pentium D 计算机上使用吗? 我正在从一本仅讨论 8086 处理器(即 16 位)的书中学习汇编语言编程。像 pentium D 这样的现代处理器的汇编语言有什么不同吗?

【问题讨论】:

    标签: assembly x86


    【解决方案1】:

    这是我问这个问题后学到的。汇编语言始终是 ISA 特定的。 x86 汇编语言是 x86 处理器的汇编语言家族。英特尔于 1978 年首次推出 x86 ISA。这适用于 16 位处理器。后来随着英特尔开发具有更宽数据总线的新处理器,x86 ISA 在每个阶段都添加了新功能和指令。所以随着x86处理器的演进,用来编程的汇编语言也得到了扩展和发展。因为我是从一本只讨论 8086 处理器的书中学习汇编语言的,所以我不会知道更先进的 x86 处理器的新特性和新指令。由于向后兼容性,8086 汇编语言程序甚至可以在最现代的 x86 系列处理器上运行,这是一个福音,同样也是一个诅咒。

    【讨论】:

      【解决方案2】:

      现代处理器支持 32 位汇编语言,这有一些区别。要使用 16 位 (8086) 汇编语言,您必须汇编和链接一个 DOS 程序(并在支持 DOS 仿真的操作系统上运行它,例如 32 位 Windows XP)。

      【讨论】:

      • 更现代的处理器支持 64 位操作码和 64 位地址:P.
      • 重要的不是 Windows 的数字版本,而是 32 位还是 64 位版本。是的,一旦您了解了 8086 汇编语言,学习 32 位主要是了解哪些限制您不必再担心(而 64 位汇编语言更加放松了限制)。
      • 我就是这么做的。我编写了一个代码,使用 MASM 组装它,链接它并在我的桌面上的命令提示符下调试它,它有 32 位 Windows XP 和笔记本电脑有 Windows 7。所以要在现代 x86 微处理器上学习汇编语言编程,我只是需要学习 8086 汇编语言以及现代微处理器的新指令和寄存器大小?
      【解决方案3】:

      是的,它不同。尤其是现代处理器以保护模式运行,而不是 8086 所针对的实模式。你可以下载一个模拟器,比如:

      http://www.emu8086.com/

      【讨论】:

      • 我记得在 windows xp 机器上调试并运行我有源代码的旧 com 程序。我似乎记得奔腾对旧的操作码有一个虚拟执行模式 - 否则当 cpu 发生变化时你将不得不重写每个程序。
      • 没错,Win 7 和 Vista 是完全不同的野兽。
      • 只是 FWIW,XP-x64 也没有 DOS 仿真。
      • @Madhur win 7 确实有调试程序。我从命令提示符运行它。我有这个模拟器。它有时非常有帮助。当我在代码中添加 ORG 10H 指令时,它会混淆。它给出了错误。
      • 我了解到,在“加载”时,操作系统会将 0000H 偏移值分配给代码和数据段。它在模拟器中工作,但在现实生活中,当我从命令提示符数据段中调试相同的小代码时,数据段偏移距 0000H 仅几个字节。当我没有看到事情按照书上所说的方式进行时,它会增加混乱并阻碍研究。仅供参考,我正在从 IGNOU 追求 MCA。
      【解决方案4】:

      是的,它仍然会执行旧的操作码。但是,您的程序不会利用现代奔腾设施,例如指令流水线和分支预测。只有针对奔腾优化的代码才能利用这些功能。

      【讨论】:

      • 这完全是错误的。虽然您可以优化以提高分支预测和流水线的效率,但它仍将用于执行旧代码。您不能使用更大的(32 位)寄存器或更新的(MMX/SSE/SSE2/等)指令集。
      • @Jerry 我已经纠正了,我一直认为 Pentium 不会在较旧的 16 位 8086 指令上使用流水线或分支预测 - 我认为它有一个虚拟执行模式,它是单流水线,但我可能是记住两个不同的处理器 - 我的旧记忆有时会这样做:P
      • @Jerry: 如果你使用大小覆盖前缀,你可以使用更大的寄存器和地址空间。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 2022-11-25
      • 2014-12-06
      相关资源
      最近更新 更多