Linux汇编之开发工具

汇编 2015年02月28日 ,

ASM开发工具

在了解过IA-32硬件平台后,枫竹梦本文中介绍创建汇编语言程序必需的软件。

开发工具

汇编语言开发环境最低限度应该有如下工具:

  • 汇编器
  • 连接器
  • 调试器

枫竹梦的所有汇编程序在CentOS 5.5测试开发,使用GNU系列工具。

汇编器

GNU汇编器称为gas。命令可执行程序为as。参数说明在后续的程序调试中介绍。

GNU汇编器实现的是AT&T操作码语法,其与Intel的有所不同。主要区别如下:

  • AT&T使用$表示立即数,而Intel立即数无需界定。AT&T中使用$4表示4,Intel中直接使用4。
  • AT&T在寄存器名称前加%,而Intel直接使用。
  • AT&T语法处理源操作数和目标操作数与Intel相反。如把4传送给EAX寄存器,AT&T使用movl $4, %eax,而Intel使用mov eax, 4
  • AT&T语法在助记符后使用一个单独字符表示数据长度,Intel使用单独的操作数。如AT&T的movl $test, %eax等价于Intel的mov eax, dword ptr test
  • 长跳转和调用两者语法不同。如AT&T使用ljmp $secion, $offset,而Intel使用jmp section:offset

连接器

GNU连接器ld用于把代码文件连接为可执行程序文件或者库文件。

编译器

GNU编译器集合(GNU Compiler Collection, gcc)是一组工具的集合,本文使用到的为gcc和g++,分别用于编译C语言和C++语言程序。

调试器

GNU调试器程序gdb用于调试C语言和C++语言,也可以用于调试汇编语言。

GNU objdump

GNU objdump程序可以查看汇编语言代码,而且能够查看生成的原始指令码。用于查看目标代码文件中由编译器生成的指令码。

GNU简档器

GNU简档器gprof用于分析程序的执行和确定程序中的热点位置。查看程序调用最多的函数,函数的处理时间等。

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
日志标题:《Linux汇编之开发工具》
日志链接:http://furzoom.com/linux-asm-development-tools/
博客名称:枫竹梦

发表评论

插入图片

NOTICE1:请申请gravatar头像,没有头像的评论可能不会被回复!

回到顶部