一、实验截图二、汇编代码分析:cpu首先执行main函数里的pushl %ebp和movl %esp %ebp。如下图:esp减去4就是向上移动4位到1,如下图:把1赋值给esp,如下图:call f即为eip转到f执行,先push eip,再将f的地址传给eip。.........太晚了,先略,以...
分类:
其他好文 时间:
2015-03-09 00:20:29
阅读次数:
124
周玉勇原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000把C代码反汇编成汇编代码,再来分析计算机如何工作下面是C代码C代码编译成汇编的代码简化的汇编代码 1 g: 2 pushl %e...
分类:
其他好文 时间:
2015-03-08 22:47:10
阅读次数:
226
---恢复内容开始---内容一:实验报告相关说明。真实姓名谢润帮原创作品转载请注明出处所学课程:《Linux内核分析》MOOC课程链接:http://mooc.study.163.com/course/USTC-1000029000虚拟实验室实验截图内容二:汇编代码的工作过程中堆栈的变化分析分析分两...
分类:
系统相关 时间:
2015-03-08 21:21:18
阅读次数:
255
一、学习过程编写程序如下:编译连接并用debug加载,观察main函数的内容:Showchar函数的内容:观察发现,main函数要传递两个参数‘a’和2,在汇编代码中是先将2赋给ax,再将ax入栈,然后将a赋给ax,将ax入栈。在showchar函数中,程序将sp赋给bp,再从bp+4处取出形参a赋...
分类:
编程语言 时间:
2015-03-08 15:37:49
阅读次数:
230
张韩+ 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
系统:32位Ubuntu14.04
编写C程序:(保存至main.c)
int g(int x)
{
return x + 3;
}
int f(int x)
{
return g(x);...
分类:
其他好文 时间:
2015-03-08 14:22:05
阅读次数:
143
本文将通过编译器生成的汇编代码分析C程序在IA-32体系PC上的运行流程实验环境: gcc 4.8.2C语言程序的内存结构C代码如下int g(int x){ return x + 1;}int f(int x){ return g(x);}int main(void){ retu...
分类:
其他好文 时间:
2015-03-08 12:56:42
阅读次数:
129
在binutils工具集中,以下工具是我们在做嵌入式软件开发时需要掌握的:
as是汇编编译器,用于将汇编代码转换为目标文件。
add2line用户得到程序指令地址所对应的函数,以及函数所在的源文件名和函号;
ar用于创建和修改档案文件,以及从档案文件中抽取文件。静态库(.a文件)就是一种档案文件,需要用它生成和管理;
ld:链接器;
nm:用于列出程序文件中的符号及符号在内存中的(开始)...
分类:
其他好文 时间:
2015-03-07 17:13:55
阅读次数:
211
int main(int argc, char ** argv){。。。。。。。。 int x = 3;003913DE mov dword ptr [x],3 int &y = x;003913E5 lea eax,[x] 003913E8 mov ...
分类:
编程语言 时间:
2015-03-04 16:46:05
阅读次数:
187
刘子健
原创作品转载请注明出处
《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
对一下代码进行反汇编分析:
int g(int x)
{
return x + 42;
}
int f(int x)
{
return g(x);
}
int main(void)
{
...
分类:
其他好文 时间:
2015-03-01 14:29:59
阅读次数:
170
1简介2简单编译2.1预处理2.2编译为汇编代码(Compilation)2.3汇编(Assembly)2.4连接(Linking)3多个程序文件的编译4检错5库文件连接5.1编译成可执行文件5.2链接5.3强制链接时使用静态链接库1简介GCC 的意思也只是 GNU C Compiler 而已。经过...
分类:
其他好文 时间:
2015-02-09 23:01:36
阅读次数:
192