20135337朱荟潼 Linux第一周学习总结——计算机是如何工作的
2016-02-23 23:14
447 查看
朱荟潼 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课http://mooc.study.163.com/course/USTC-1000029000
计算机在执行程序时须先将要执行的相关程序和数据放入内存储器中,在执行程序时CPU根据当前程序指针寄存器的内容取出指令并执行指令,然后再取出下一条指令并执行,如此循环下去直到程序结束指令时才停止执行。其工作过程就是不断地取指令和执行指令的过程,最后将计算的结果放入指令指定的存储器地址中。
EBX:基址寄存器,常用于地址索引;
ECX:计数寄存器,常用于计数;
EDX:数据寄存器,常用于数据传递;
ESP:堆栈指针,与SS配合使用,可指向目前的堆栈位置;
EBP:基址指针寄存器,可用作SS的一个相对基址位置;
ESI:源变址寄存器,可用来存放相对于DS段之源变址指针;
EDI:目的变址寄存器,可用来存放相对于ES 段之目的变址指针。
DS:数据段寄存器
SS:堆栈段寄存器
ES:附加段寄存器
b.只可被一下指令修改:call,ret,jmp,条件跳转
把.XXX删去即可
(ps:分析栈的变化时,笔的颜色分别代表一个函数)
函数之间(子函数改名:a,b):
1.冯诺依曼体系结构
---核心:存储程序计算机计算机在执行程序时须先将要执行的相关程序和数据放入内存储器中,在执行程序时CPU根据当前程序指针寄存器的内容取出指令并执行指令,然后再取出下一条指令并执行,如此循环下去直到程序结束指令时才停止执行。其工作过程就是不断地取指令和执行指令的过程,最后将计算的结果放入指令指定的存储器地址中。
2.X86汇编基础
(1)通用寄存器(32位)
EAX:累加寄存器,常用于运算;EBX:基址寄存器,常用于地址索引;
ECX:计数寄存器,常用于计数;
EDX:数据寄存器,常用于数据传递;
ESP:堆栈指针,与SS配合使用,可指向目前的堆栈位置;
EBP:基址指针寄存器,可用作SS的一个相对基址位置;
ESI:源变址寄存器,可用来存放相对于DS段之源变址指针;
EDI:目的变址寄存器,可用来存放相对于ES 段之目的变址指针。
(2) 段寄存器
CS:代码段寄存器(存有代码)DS:数据段寄存器
SS:堆栈段寄存器
ES:附加段寄存器
(3) eip特点:
a.自加1条指令。 从该指令执行完自动指向下一条指令。b.只可被一下指令修改:call,ret,jmp,条件跳转
(4)cpu在实际取指令是根据 cs:eip 来定位一条指令.
(5)堆栈是向下增长的。
3.X86汇编指令
(1)寻址方式
(2)Push,pop,ret,enter,leave
(3)Eax 寄存器
函数返回值默认用它存储,返回给上一级函数(4)函数调用堆栈是由逻辑上多个堆栈叠加起来的
4.实验
(1)创建5337.c并查看
(2)编译
(3)修改成汇编语言
把.XXX删去即可
(4)栈的变化分析
针对实验中的分析(主函数main,俩子函数分别是g,f):(ps:分析栈的变化时,笔的颜色分别代表一个函数)
函数之间(子函数改名:a,b):
学习总结
上学期学习过相关内容,所以这次课程的开始相对比较容易,同时对于这学期的学习内容也会努力学习,知识内容的掌握更加深刻。注
朱荟潼+原创作品转载请注明出处+ 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000相关文章推荐
- 【转】JAVA之网络编程
- php 通过http user-agent判断是否为手机浏览器
- BBB(二):Windows或Ubuntu主机通过USB分享网络给BBB
- 基于TCP实现的最简单RPC demo
- 《深入理解计算机系统》学习笔记(一):信息的表示和处理
- 《Linux内核分析》第一周 计算机是如何工作的?
- redis 配置 与 数据结构
- 【转】计算机中时间的表示和存储
- httpd-2.2.22安装
- 计算机组成
- tcp接收队列
- 详解GIT网络传递数据的加密解密过程
- 伪造http的ip地址,突破ip限制的投票程序
- TCP连接状态
- MATLAB BP神经网络中仿真结果与手工计算不符合的解决办法
- BZOJ1491 [NOI2007] 社交网络
- bitmap 获取网络图片
- 通过HttpURLConnection获得服务器的数据简单模型
- vim简单配置(cp:http://www.linuxidc.com/Linux/2014-02/96396.htm)
- libcurl库进行http通讯-一些基本的函数