如果在DOS环境或Windows环境中组装,链接和加载汇编语言代码或C代码,这有什么关系?不应该结果一样吗?所有执行都是由微处理器完成的,而不是操作系统。我正在从MS-DOS时代的旧书中学习汇编语言。这是一次挫折吗?不是汇编语言及其代码执行,O / S是独立的吗?或者就此而言,用其他语言编写的代码是什么?
答案 0 :(得分:7)
不是汇编语言及其代码执行,O / S独立吗?或者就此而言,用其他语言编写的代码是什么?
是和否。
是。机器的语言独立于操作系统。如果您自己编写或C编译器为您编写它并不重要。
没有。您必须使用操作系统来实际运行该软件。如果您希望它执行有用的,您需要调用OS API。这完全取决于操作系统。
答案 1 :(得分:0)
是的,操作系统“标准化”我们的程序和处理器之间的通信,因此printf()将在Linux和Windows(和其他)上,在这些操作系统的许多不同版本和不同硬件上按预期运行配置。
并且,理论上,可以在具有不同操作系统的同一处理器上运行相同的程序,因为操作码显然是相同的,但这不会因为钱而发生(猜猜会发生什么如果有一天linux可以运行Windows的应用程序..)
因此,虽然运行或不运行二进制文件的可能性仅取决于处理器,但它也取决于操作系统。