我对低级语言和汇编语言等方面还比较陌生,想要了解更多细节。为什么Linux和Windows的汇编语言有差异?
据我所知,当我编译C代码时,操作系统实际上并不会生成纯机器码或汇编代码,而是生成依赖于操作系统的二进制代码。但为什么呢?
举例来说,当我使用x86系统时,CPU只能理解x86汇编语言,对吗?那么为什么我们不编写纯x86汇编代码,为什么会有基于操作系统的不同汇编变体?如果我们编写纯汇编代码或操作系统生成纯汇编代码,那么操作系统之间就不会存在二进制兼容性问题,对吗?
我真的很想知道这些背后的原因。任何详细的答案、文章或书籍都会很棒。谢谢。