首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用nasm构建android ELF二进制程序?

用nasm构建android ELF二进制程序?
EN

Stack Overflow用户
提问于 2014-06-20 01:51:12
回答 2查看 5.6K关注 0票数 8

我正试着为Android编写一些汇编代码。通常我会使用nasm,但它似乎根本不支持Android (ARM)

代码语言:javascript
复制
valid output formats for -f are (`*' denotes default):
  * bin       flat-form binary files (e.g. DOS .COM, .SYS)
    ith       Intel hex
    srec      Motorola S-records
    aout      Linux a.out object files
    aoutb     NetBSD/FreeBSD a.out object files
    coff      COFF (i386) object files (e.g. DJGPP for DOS)
    elf32     ELF32 (i386) object files (e.g. Linux)
    elf64     ELF64 (x86_64) object files (e.g. Linux)
    elfx32    ELFX32 (x86_64) object files (e.g. Linux)
    as86      Linux as86 (bin86 version 0.3) object files
    obj       MS-DOS 16-bit/32-bit OMF object files
    win32     Microsoft Win32 (i386) object files
    win64     Microsoft Win64 (x86-64) object files
    rdf       Relocatable Dynamic Object File Format v2.0
    ieee      IEEE-695 (LADsoft variant) object file format
    macho32   NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (i386) object files
    macho64   NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (x86_64) object files
    dbg       Trace of all info passed to output stage
    elf       ELF (short name for ELF32)
    macho     MACHO (short name for MACHO32)
    win       WIN (short name for WIN32)

这两件事似乎都没有关系,我错了吗?

EN

回答 2

Stack Overflow用户

发布于 2014-06-20 09:31:55

你说得对: NASM不支持手臂。

有一个非常简单的原因: ARM程序集与任何x86程序集无关。程序集链接到它的硬件体系结构。装配指令是实际处理器指令集的助记符,ARM指令集与x86指令没有任何共同之处,因为ARM体系结构与x86不兼容。

为x86编写的任何汇编代码都不能在ARM上使用。这就是为什么开发高级语言(如C)的原因。

票数 3
EN

Stack Overflow用户

发布于 2015-09-06 14:29:20

NASM 只支持支持x86/64体系结构。ARM是一种完全不同的架构。您所引用的列表是NASM能够存储组装的x86/64代码的文件格式列表。

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

https://stackoverflow.com/questions/24318820

复制
相关文章

相似问题

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