姓名:吕松鸿 编程
学号:20135229小程序
( *原创做品转载请注明出处*)缓存
( 学习课程:《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 )函数
目前大多数拥有计算和存储功能的设备(智能手机、平板、计算机等)其核心构造均为冯诺依曼体系结构布局
2. 从软件来看学习
关于ABI:指令编码;指令中涉及的寄存器布局;大多数指令能够直接访问内存编码
(E表明32位系统)EIP在CPU执行完一条指令以后自加一(自动加一条指令,而不是一个字节或是32位),固然也能够被其它指令,如CALL,RET等修改spa
EBP(堆栈基址寄存器);ESP(堆栈顶指针寄存器)。上述两个寄存器较为频繁地使用于汇编程序中指针
CPU实际取指令的时候经过cs:eip来描述code
其实与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.一步一步对汇编语言进行分析,使我对堆栈的调用认识更加深入,对这部分的知识更加了然于胸,对我从此的课程奠基了扎实的基础