概述
用C高级编程语言写的程序,都要经过编译链接成本机可执行的程序。这个可执行程序究竟是什么呢?在Linux上,我们可以用objdump命令很方便地查看一个可执行程序的机器码。我们从一个简单的示例开始,说一说怎么理解机器码。
一、一个简单的c代码,什么都不做: testc.c
1 #include 2
3 int main(int argc, char **argv)4{5
6 return 1;7 }
这段代码异常简单,只是向系统返回一个值为1的量即可。
二、Makefile文件如下:
1testc:testc.o2 gcc -S testc.c -o testc.s3 gcc testc.c -o testc4 objdump -D testc >dumpTestc.txt5
6clean:7 rm testc testc.s testc.o dumpTestc.txt
不要觉得这么简单的程序还需要Makefile文件,但是为了使用方便,还是使用更方便:
生成了:
可执行文件testc,
生成了目标文件testc.o,
生成了汇编文件testc.s
生成了机器码与汇编对应的文件dumpTestc.txt
还可以借助clean完成中间生成文件的清理工作
make
完成上边工作的一键处理化,最后,查看文件分别如下:
1 .file "testc.c"
2.text3.globl main4.type main, @function5main:6.LFB0:7.cfi_startproc8 pushq %rbp9 .cfi_def_cfa_offs
最后
以上就是复杂枫叶为你收集整理的识别INSB号码C语言如何讲述,探究机器码,深入研究C语言程序的机制的全部内容,希望文章能够帮你解决识别INSB号码C语言如何讲述,探究机器码,深入研究C语言程序的机制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复