NASM: Netwide Assembler
#
基于 x86 架构的汇编与反汇编软件。它可以用来编写 16 位(8086、80286 等)、32 位(IA-32)和 64 位(x86_64)的程序。 NASM 被认为是 Linux 平台上最受欢迎的汇编工具之一。
NASM 可以输出多种二进制格式:
- 通用对象文件格式(
COFF
) OMF
(Relocatable Object Module Format,用于 80x86 系列处理器上)a.out
- 可执行与可链接格式(
ELF
)- 地址无关代码仅支持
ELF
对象文件。
- 地址无关代码仅支持
Mach-O
- 二进制文件(.bin,二进制磁盘映像,用于编译操作系统)
Hello World #
nasm -f macho64 -o test.o test.asm
ld -o test test.o -macosx_version_min 11.5 -lSystem -L$(xcode-select -p)/SDKs/MacOSX.sdk/usr/lib
./test
参考:
SECTION .data
msg: db "hello assembly.", 0x0a
len: equ $-msg
SECTION .text
global _main
kernel:
syscall
ret
_main:
mov rax,0x2000004
mov rdi,1
mov rsi,msg
mov rdx,len
call kernel
mov rax,0x2000001
mov rdi,0
call kernel
叶王 © 2013-2024 版权所有。如果本文档对你有所帮助,可以请作者喝饮料。