汇编语言程序设计(AT&T语法) 汇 编 语 言 程 序 设 计 陶 治 江 四 川 大 学 电 气 信 息 学 院 1汇编语言程序设计(AT&T 语法) gcc 编译器: C 语言: vi test
c gcc -o test test
/test (不用进行连接,而且不用改变生成的可执行代码的执行位) gcc –S test
c 会生成 C 语言的汇编代码,默认生成的文件名是:test
s 使用目标文件生成汇编代码的方法: gcc –c test
c //默认生成 test
o;-c 表示编译或者汇编代码而不进行连接,生成目标文件 objdump –d test
o //生成 test
s 代码 汇编:
section
data output:
asciz "Now my age is %d \n" age:
int 23
section
global _start _start: nop pushl age pushl $output call printf add $8,%esp pushl $0 call exit 编译:as -o test
o test
s 连接:ld -dynamic-linker /lib/ld-linux
2 -o test -lc test
o //使用了标准 C 语言库函数 执行:
/test 汇编语言的调试: gdb 工具,若要调试,在编译的时候就需要添加-gstabs 选项,生成调试的信息,这个编译的结果要大的多: as –gstabs –o testo test
c ld -dynamic-linker /lib/ld-linux
2 -o test -lc test
o gdb test 关于 gdb 的命令: run 运行程序 break *_start+1 设置断点 next 单步