用户工具


环境搭建

  • 操作系统:ubuntu 14.04
  • 汇编编译器:nasm
  • 连接器:ld
  • 调试器:gdb

编译命令

// 32位程序
nasm -f elf32  -g hello.asm -o hello.o
ld  -m elf_i386 -o hello_386 hello.o
./hello_386

// 64位程序
nasm -f elf64  -g hello.asm -o hello.o
ld  -m elf_x86_64 -o hello_64 hello.o
./hello_64

调试

  • gdb hello386
  • b main :在main函数打断点
  • r :运行到断点
  • nexti :运行下一条指令
  • disassemble :反汇编,看执行到那条指令了
  • info registers :查看所有寄存器中的值
  • x/10db 0x4000b0 :查看以某个内存地址为起点,后面10个字节的值。参考:https://blog.csdn.net/yasi_xi/article/details/7322278