我对装配感到困惑。像GCC这样的编译器目标是什么类型的汇编,以及它如何确定要生成的汇编?这些类型的装配有多少不同,它是一个巨大的差异,还是不明显?今天广泛使用了多少种组装?
答案 0 :(得分:4)
像GCC这样的编译器会使用什么样的程序集,以及它是如何实现的 找出要生成的程序集?
每个CPU系列(体系结构)具有不同的程序集,并且构建GCC以支持许多这些CPU系列。您可以将参数传递给GCC以指示您要定位的体系结构(如果您正在编译与您正在编译的体系结构不同的体系结构,则称为cross-compiling。)
这些类型的装配有多少不同,这是一个巨大的差异, 还是不明显?
通常每个架构都完全不同,并且与其他架构完全不兼容。
今天广泛使用了多少种装配?
此处列出的内容太多,但目前使用最广泛的架构是用于移动/嵌入式设备的PC,ARM(以及较小程度的MIPS)的Intel x86和x86-64。更简单和更小的设备可以使用微控制器而不是全功能CPU。
所有现代英特尔处理器,他们是否改变了他们的语言 经常或很少的事情?
取决于。通常制造商会尝试保持与旧模型的兼容性,尽管他们也可以决定打破它(即Intel's IA-64架构)。
这就是为什么有些二进制文件有-in386等前缀的东西,是 它支持哪种处理器集/类型/东西?
是。它被称为“architecture”。