【发布时间】:2011-02-09 16:31:38
【问题描述】:
在 DOS 环境或 Windows 环境中汇编、链接和加载汇编语言代码或 C 代码有什么关系?结果不应该一样吗?毕竟执行是由微处理器完成的,而不是操作系统。我正在从 MS-DOS 时代的一本旧书中学习汇编语言。是挫折吗?汇编语言及其代码执行不是独立于操作系统的吗?或者其他语言编写的代码?
【问题讨论】:
在 DOS 环境或 Windows 环境中汇编、链接和加载汇编语言代码或 C 代码有什么关系?结果不应该一样吗?毕竟执行是由微处理器完成的,而不是操作系统。我正在从 MS-DOS 时代的一本旧书中学习汇编语言。是挫折吗?汇编语言及其代码执行不是独立于操作系统的吗?或者其他语言编写的代码?
【问题讨论】:
汇编语言及其代码执行不是独立于操作系统吗?或者其他语言编写的代码?
是和不是。
是的。机器的语言独立于操作系统。不管是你自己写的还是 C 编译器为你写的都没关系。
没有。您必须使用操作系统才能实际运行该软件。如果你想让它做一些有用的事情,你需要调用 OS API。这完全取决于操作系统。
【讨论】:
是的,操作系统“标准化”了我们的程序和处理器之间的通信,因此 printf() 在 linux 和 windows(以及其他)、这些操作系统的许多不同版本和不同硬件上都可以正常运行配置。
而且,理论上,可以在具有不同操作系统的同一处理器上运行相同的程序,因为操作码显然是相同的,但这不会因为金钱问题而发生(猜猜会发生什么如果有一天 linux 可以运行 windows 的应用程序..).
因此,尽管运行或不运行二进制文件的可能性应仅取决于处理器,但它也取决于操作系统。
【讨论】: