您的位置:首页 > 其它

程序的机器级表示

2015-01-13 16:01 162 查看
用高级语言写的程序在编译之后,可以通过反汇编,重新生成汇编语言。这中生成的汇编语言是经过优化之后的,我们又可以通过这种经过优化的汇编语言重新生成高级语言,从而使我们的程序得到优化,增加程序的执行效率。

而汇编语言到高级语言的转化是人工进行的,在转换时,我们需要记住一些必要的汇编语法就好。

在命令行上使用”-S“选项,就能得到C语言编译器产生的汇编代码:

unix> gcc -01 -S code.c

这会使GCC运行编译器,产生一个汇编文件code.s。

如果使用”-C“命令,GCC会编译并汇编该代码:

unix> gcc -01 -C code.c

这就会产生目标代码文件code.o,它是二进制格式。

想要查看目标代码文件的内容,可以使用反汇编器。这些程序根据目标代码产生一种类似于汇编代码的格式。在Linux系统中,带”-d“命令行标志的程序OBJDUMP(表示object dump)可以充当这个角色:

Unix>objdump -d code.o
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: