Android 용 코드를 작성하려고합니다. 보통 내가 nasm
와 함께 할 거라고하지만 전혀 Android (ARM)
를 지원하지 않는 것 : 그들의nasm과 함께 android ELF 바이너리를 빌드 하시겠습니까?
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)
없음 ARM이 관련이있는 것으로 보인다, 내가 잘못입니까?
NASM 매뉴얼에서 인용 할 것입니다 : "Netwide Assembler, NASM은 ** 이동성과 모듈성을 위해 설계된 80x86 및 x86-64 어셈블러입니다 **". Android NDK에 포함 된 것과 같은 ARM 어셈블러를 사용해야합니다. – Michael
하지만 당신은 맞습니다. x86-64와 IA-32는 전혀 다른 두 가지 아키텍처입니다. NASM은 역 호환이 가능하기 때문에 둘 다를 지원할 수 있습니다. 다른 옵션은 컨테이너 선택 (ELF, Mach-O, PE, ...)입니다. 그것은 GNU의'있는 그대로'그것을 보이지만? –
Wikipedia의 [Assemblers 비교] (https://en.wikipedia.org/wiki/Comparison_of_assemblers)를 참조하십시오. – jww