是否有多个ARM程序集语法样式与x86一样? 如果有的话,不同工具链中的每一个都有什么支持?
答案 0 :(得分:3)
汇编语言由汇编程序(读取它的软件)定义。如果世界上存在多个汇编程序,那么几乎按定义存在多个汇编语言。机器代码显然是由芯片/核心供应商定义的,并且对于汇编器来说它必须有用。但是,汇编程序的输入是他们想要的。一般没有规则。可能有人为此目标创建了标准,但总的来说没有规则。最好的规则是我的汇编程序所采用的是我应该使编译器生成的内容,和/或并行工作并创建汇编语言作为两者之间的通信路径。
芯片/核心供应商为了满足任何销售需求来记录他们的指令集。作为其中的一部分,它们倾向于在同一文档中基本上定义汇编语言。同样,要使该产品成功,需要使用以汇编程序开头的工具。因此,无论是自己生产该工具还是由某人生产该工具,都符合他们的最佳利益。理想情况下,他们的文档匹配。
GNU以收集处理器供应商文档中定义的汇编语言以及芯片/核心供应商工具(如果有)使用而众所周知。这种情况发生在ARM 10多年前,主要是从ARM天然气港开始。有了aarch64,他们甚至与自己不相容。所以人们会期望至少有两个不同的,芯片/核心供应商工具和gnu工具,然后如果有其他人制作一套工具,那么他们要么想要与那里的东西兼容,或者他们不喜欢那里的东西,特别想要添加一些东西或使它与众不同。
简短的回答,是的,预计对于目标的每个汇编程序,可能会有一种不同的汇编语言,它介于微妙和严重之间。