【问题标题】:Can the Visual Studio ARM Assembler produce binaries that don't require an OS?Visual Studio ARM 汇编器能否生成不需要操作系统的二进制文件?
【发布时间】:2010-01-28 05:41:51
【问题描述】:

我先承认我对 ARM 开发知之甚少,所以我可能在这里的信息有误。

Visual Studio 带有一个 ARM 汇编器 (armasm.exe),这非常方便,因为我使用 VS 附带的工具来处理几乎所有的事情,而且我不太愿意为与 C 捆绑的 ARM 汇编器付费我永远不会使用其他公司的编译器。

现在,我的理解是,在金属上运行的 ARM 二进制文件需要采用纯二进制格式,而不是像 ELF 或 PE 这样的格式。 ARMASM 是否能够输出无需操作系统即可运行的二进制文件? ARMASM 的 MSDN 文档似乎缺少此类信息。

如果没有,您能否推荐一个免费的 ARM 汇编程序,它提供宏支持并且不捆绑一堆额外的绒毛?

【问题讨论】:

    标签: visual-studio assembly arm


    【解决方案1】:

    汇编器只生成目标文件。由链接器生成最终的可执行文件。我很确定微软几乎使用了他们常用的链接器,它产生 PE 格式的可执行文件(这是一个 COFF 变体,以防万一)。顺便说一句,我不知道有一个链接器/定位器会采用 MS-COFF 格式的目标文件并生成一个纯二进制输出文件(尽管这几乎不意味着一个不存在——我从来没有真正寻找过一个)。

    另请注意,在裸机上运行大多数情况下意味着将您的文件刻录到某些 ROM 变体。这意味着您真的不需要纯二进制输出文件——您真正需要的是适合 ROM 刻录机的文件。这通常意味着 Motorola S-records 或 Intel hex 格式(相当多的 ROM 刻录机同时接受这两种格式)。

    我知道这不会给你一个“最终答案”,但它至少应该给你一些适合谷歌搜索以获得更多相关信息的术语......

    【讨论】:

    • 忘记了链接器产生了最终输出,我真的很傻。 :P 谢谢你的信息!既然我知道我在寻找什么,我会看看我是否还能挖掘其他东西。
    猜你喜欢
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2021-02-22
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多