首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在M1 Mac上使用哪种汇编程序?规范文档在哪里?

在M1 Mac上使用哪种汇编程序?规范文档在哪里?
EN

Stack Overflow用户
提问于 2022-10-08 09:30:57
回答 1查看 79关注 0票数 0

我想更好地了解哪些汇编程序实际上正在M1/M2 MacOs机器上工作,例如MacBook Pros。

  1. 据我所知,我能使用的唯一可能的汇编程序是Apple提供的“As”。('gas')不再支持M1+机器:‘正如-Q所说的’。但是许多网站都提到苹果的汇编程序确实没有被维护,并且有一个切换到llvm-clang汇编程序,我没有找到有用的文档(用于运行汇编程序,而不是构建编译器)。

是真的?

  1. 我正在研究文档,我只找到了"Mac汇编程序指南“。这是一个很老的版本,我甚至不知道在哪里能得到最新的版本。

这似乎不错,但似乎还不完全--例如,您可以使用带有命名参数的宏,而不是只使用$0,. $n在'as‘。指南中没有提到。

从gas移植到苹果汇编程序有什么好的建议吗?已知的问题和解决方案?

例如,在“gas”中,我相信我可以用.set重新定义符号,但不能用“as”来重新定义符号。我真的是一个非常缺乏经验的装配业馀者,所以一些规范资源将是很棒的。正如我今天所看到的,在M1 Mac上的组装编程比一门科学更像是黑暗的艺术。

谢谢你的启发。

EN

回答 1

Stack Overflow用户

发布于 2022-10-10 19:59:29

我想记录一下我到目前为止发现的情况:

  1. 苹果的旧汇编程序指南最有可能没有用,因为这个指南很可能不是基于M1 Mac使用的clang汇编程序)。在新的SDK站点上没有找到新的文档。

文档可能大部分是准确的,似乎是https://developer.arm.com/documentation/100067/0611/armclang-Integrated-Assembler

还有https://developer.arm.com/documentation/100068/0612/migrating-from-armasm-to-the-armclang-integrated-assembler/symbol-definition-directiveshttps://developer.arm.com/documentation/100068/0612/migrating-from-armasm-to-the-armclang-integrated-assembler/overview-of-differences-between-armasm-and-gnu-syntax-assembly-code?lang=en

  1. 最有可能的是,苹果或多或少地直接使用了clang汇编程序。它类似于gnu汇编程序,但不完全相同。例如,jonesforth使用了一种功能,您可以一次又一次地将一个符号转换为非绝对值(如标签),以构建一个命令链接列表--它在GNU汇编程序中工作,而不是在llvm中(至少在苹果汇编程序中)。此外,苹果汇编程序不允许多条语句在一行中以“;”分隔,这是移植大型程序集文件广泛使用时的一大难题。
  2. 我相信llvm项目有github中的源代码,特别是这里的汇编程序解析:https://github.com/llvm/llvm-project/blob/92920c4fe3e29640e45153f3048105970b5b1e42/llvm/lib/MC/MCParser/AsmParser.cpp

我意识到这是相当不完整的,但我会更新答案,如果我得到有用的回应,在苹果开发论坛或直接从苹果的支持。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73995867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档