程序员的自我修养
文章平均质量分 73
摩天轮的思念
这个作者很懒,什么都没留下…
展开
-
目标文件
ELF格式的文件:目标文件中的内容除了至少有编译后的机器代码,数据,还要有链接时一些必要的信息,比如符号表,调试信息,字符串等。 程序源代码编译后的指令经常放在代码段,代码段常见的名字有”.code”或者”.text”,全局变量和局部静态变量放在数据段(.data)、ELF文件的开头是一个“文件头”,描述整个文件的文件属性,包括文件是否可以执行,是静态链接还是动态链接及入口地址,目标硬件,目标操作原创 2017-04-23 22:16:55 · 327 阅读 · 0 评论 -
程序的预编译,编译,汇编,链接过程
预编译过程:预编译过程主要处理那些源代码文件中的以”#”开始的预编译指令。比如:”#include”,”#define”等,主要处理规则如下: (1)将所有的”#define”删除,并且展开所有的宏定义。 (2)处理所有条件预编译指令, 比如”#if”,”#ifdef”,”#elif”,”#else”,”#endif”. (3)处理”#include”预编译指令,将被包含的文件插入到该预编译原创 2017-04-21 22:19:59 · 1548 阅读 · 0 评论 -
程序的汇编,链接过程:
注意:(1) IA指令长度从1到15个字节不等。常用的指令以及操作数较少的指令所需字节数少,那些不常用的或者操作数较多的指令所需字节数较多。(2) 设计指令格式的方式是,从某个给定位置开始,可以将字节唯一的解码成机器指令。(3) 反汇编是基于机器代码中的文件中的字节序列来确定汇编代码。它不需访问程序的源代码或者汇编代码。(4) 反汇编使用的指令命名规则与gcc生成的汇编代码使用的有细微差别。原创 2017-03-30 20:09:43 · 2195 阅读 · 0 评论