标签:
姓名:吕松鸿
学号:20135229
( *原创作品转载请注明出处*)
( 学习课程:《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 )
目前大多数拥有计算和存储功能的设备(智能手机、平板、计算机等)其核心构造均为冯诺依曼体系结构
2. 从软件来看
关于ABI:指令编码;指令中涉及的寄存器布局;大多数指令可以直接访问内存
(E代表32位系统)EIP在CPU执行完一条指令之后自加一(自动加一条指令,而不是一个字节或是32位),当然也可以被其它指令,如CALL,RET等修改
EBP(堆栈基址寄存器);ESP(堆栈顶指针寄存器)。上述两个寄存器较为频繁地使用于汇编程序中
CPU实际取指令的时候通过cs:eip来描述
其实与32位在核心机制上差别不大,64位的机器中,寄存器以RXX表示
movl 4(%ebx),%edx//edx = *(inet_32 *)(ebx+4),即ebx的值加4之后作为一个地址,将其指向的数据赋给%edx
几条重要的汇编指令
具体如下:
gcc -S -o main.s main.c -m32
函数应该如下:
int g(int x)
{
return x+8;
}
int main(void)
{
return g(8)-8;
}
1.计算机的硬件设施部分,就如第一讲中讲到的那样,除了核心CPU之外,还有寄存器、高速缓存、主存乃至外存这样种类繁多的存储设备。存储设备(这也是冯 诺依曼体系结构的一个重要支点)根本目的就是为CPU服务,存储各种各样的、区分轻重缓急的数据;
2.一步一步对汇编语言进行分析,使我对堆栈的调用认识更加深刻,对这部分的知识更加了然于胸,对我今后的课程奠定了扎实的基础
通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
标签:
原文地址:http://www.cnblogs.com/lv-20135229/p/5223339.html