我不清楚clang使用的汇编程序。使用AFAIK原生的又名GNU汇编器和链接器(与gcc一起提供)。
clang -v main.c
clang version 3.4.2
Target: x86_64-unknown-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.5.3
Found ca
我对所有这些低级的东西,汇编语言都比较陌生。想要了解更多细节。为什么Linux和Windows汇编语言之间存在差异?
据我所知,当我编译一个C代码时,操作系统并不能真正生成纯机器或汇编代码,它会生成依赖于操作系统的二进制code.But,为什么?
例如,当我使用x86系统时,CPU只理解x86 ASM am I right?.So为什么我们不写纯x86汇编代码,为什么根据操作系统有不同的汇编变体?如果我们编写纯ASM或操作系统生产纯ASM,那么操作系统之间就不会有二进制兼容性问题了吗?
我真的想知道他们背后的所有原因。任何详细的答案,文章,书都会很棒。谢谢。