TongXu-Server

Nasm

nasm编译器

  • 开源的汇编语言编译器
# -f 指定编译的文件格式
nasm -f elf myfile.asm #将myfile.asm编译成ELF格式的文件myfile.o
nasm -f bin myfile.asm #将myfile.asm编译成纯二进制格式的文件myfile.com
nasm -f coff myfile.asm -l myfile.lst #以十六进制代码的形式产生列表文件输出,并让代码显示在左侧 使用 -l 选项并给出列表文件名

# -o 制定编译后的文件名称
nasm -f bin program.asm -o program.com 
nasm -f bin driver.asm -o driver.sys

# -On 指定多遍优化
nasm -f elf -O0 myfile.asm -o program.o 
nasm -f elf -O1 myfile.asm -o program.o 
nasm -f elf -On myfile.asm -o program.o 

# -i 包含文件搜索路径
nasm -i ./macrolib -f obj myfile.asm #在源文件中看到%include操作符的时候,不仅仅在当面目录下搜索给出的文件,还会搜索-i选项在命令行中制定的所有路径

# -p 预包含一个文件
nasm myfile.asm -p myinc.inc #和在头文件中写%include "myinc.inc"然后运行nasm myfile.asm的结果是一样的

# -d 预定义一个宏
nasm myfile.asm -dFOO=1000 #与在源文件中写%define FOO 1000的效果是一样的

# -u 取消一个宏定义
nasm myfile.asm -dFOO=100 -uFOO #取消FOO宏定义