daheige / myasm

关于汇编语言在linux环境下的工程

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

asm_work

关于汇编语言在linux环境下的工程

  • 使用环境linux (我使用的是Ubuntu linux或者类unix都可以)
  • 使用编译器 gcc nasm

    安装:(ubuntu apt包管理器)

    sudo apt install build-essential nasm

使用方法:

1.先使用nasm编译成为.o object文件

#[32位]编译:
nasm -f elf -g -F stabs xxx.asm -o xxx.o -l xxx.lst
#[64位]编译:
nasm -f elf64 -g -F stabs xxx.asm -o xxx.o xxx.lst
  • 参数解析:
    • -f 文件类型 elf(32位) elf64(64-位)
    • -g 添加调试信息
    • -F stabs 以stabs方式添加调试
    • -o output输出
    • -l lst文件类型输出

2.然后链接.o 文件使用linux 自带的ld

使用方式:

[32位] ld -m elf xxx.o -o xxx
[64位] ld -m elf_x86_64 xxx.o -o xxx

3.推荐使用Makefile编译

# make安装:
sudo apt install make

4.对于.c文件

使用gcc编译

gcc xxx.c -o xxx 
# 编译c文件 直接输出 

# 如果直接
gcc xxx.c
# 生成 -> a.out
# 然后执行 ./a.out

# 基本编译流程
# 1.预编译 生成预编译文件
gcc -E xxx.c -o xxx.i
# 2.编译 生成汇编文件 .s或者.asm都可以
gcc -S xxx.i -o xxx.s
# 3.汇编 生成目标文件
gcc -c xxx.s -o xxx.o
# 4.链接 生成可执行文件
gcc xxx.o -o xxx

About

关于汇编语言在linux环境下的工程

License:MIT License


Languages

Language:Assembly 57.7%Language:Makefile 30.5%Language:C 11.8%