《Linux内核分析》第一周学习小结 计算机是如何工作的?
《Linux内核分析》第一周.计算机是如何工作的?
20135204郝智宇
一、存储程序计算机工作模型
1.冯诺依曼体系结构:
数字计算机的数制采用二进制;计算机应该按照程序顺序执行。
内存保存指令和数据,CPU负责解释和执行这些指令。
2. API:
程序员与计算机的接口界面。
3. EIP:
CALL RET IMP
二、X86汇编基础
1.X86CPU的寄存器
E开头32位,R开头64位。
堆栈是计算机中非常基础性的东西。
2.代码段、堆栈段、数据段、附加段
3.CPU在实际取指令时根据cs:eip来准确定位一个指令。
4.32位和64位核心机制上差别不大。
5.汇编指令:
Movl,pushl,popl,call,ret,leave…
AT&T汇编格式与Intel格式略有不同。Linux内核使用的是AT&T汇编格式。
Pushl:栈的位置在增长;Popl:栈的位置在收缩。
Esp栈顶;ebp栈底。
Eip不能直接被修改,只能call,ret.
三、汇编一个简单的C程序分析其汇编指令执行过程(实验楼环境下操作)1. 新建一段代码,粘贴题目所给的代码段并进行修改之后,保存:
2. 以下为这段代码的汇编指令:


3. 删除掉以点(.)开头的指令之后,得到干净完整的汇编指令如下:
g:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
addl $5, %eax
popl %ebp
ret
f:
pushl %ebp
movl %esp, %ebp
subl $4, %esp
movl 8(%ebp), %eax
movl %eax, (%esp)
call g
leave
ret
main:
pushl %ebp
movl %esp, %ebp
subl $4, %esp
movl $10, (%esp)
call f
addl $1, %eax
leave
ret 4.分析汇编代码的工作过程中堆栈的变化如下:(接上)
四.对“计算机是如何工作的”的理解:
计算机的执行指令都是机器语言,通过汇编语言和高级语言编出来的程序通过计算机内的编译程序,将程序编译成计算机可执行的文件来进行工作,交换数据。
计算机在实际工作工程中要涉及大量的跳转指针操作。计算机通常是顺序执行一条一条的指令,如果有必要就通过寄存器跳转到特定的地址,再执行,然后通过
一系列机制返回原有的地址,继续顺序执行。计算机里,内存保存指令和数据,CPU负责解释和执行这些指令。 郝智宇 无转载 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
《Linux内核分析》第一周学习小结 计算机是如何工作的?的更多相关文章
- LINUX内核分析第一周学习总结——计算机是如何工作的
LINUX内核分析第一周学习总结——计算机是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/ ...
- Linux内核分析第一周学习博客 --- 通过反汇编方式学习计算机工作过程
Linux内核分析第一周学习博客 通过反汇编方式学习计算机工作过程 总结: 通过这次对一个简单C程序的反汇编学习,我了解到计算机在实际工作工程中要涉及大量的跳转指针操作.计算机通常是顺序执行一条一条的 ...
- linux内核分析第一周学习笔记
linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
- LINUX内核分析第二周学习总结——操作系统是如何工作的
LINUX内核分析第二周学习总结——操作系统是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...
- Linux内核分析第一周学习总结:计算机是如何工作的?
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.冯诺依曼体系 ...
- 20135320赵瀚青LINUX内核分析第一周学习笔记
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.概述 第一周的学习内容主 ...
- Linux内核分析——第一周学习笔记20135308
第一周 计算机是如何工作的 第一节 存储程序计算机工作模型 1.冯·诺依曼结构模型:冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构.程序指令存储地址和数据存储 ...
- Linux内核分析——第一周学习笔记
20135313吴子怡.北京电子科技学院 chapter 1 知识点梳理 第一节 存储程序计算机工作模型 1.冯诺依曼体系结构:即具有存储程序的计算机体系结构.目前大多数拥有计算和存储功能的设备(智能 ...
- Linux内核设计第一周学习总结 计算机如何工作
北京电子科技学院 20135310陈巧然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002 ...
随机推荐
- 解决The valid characters are defined in RFC 7230 and RFC 3986错误问题
分析原因: 导致上述问题是因为tomcat自tomcat 8.0.35版本之后对URL参数做了比较规范的限制,必须遵循RFC 7230 and RFC 3986规范,对于非保留字字符(json格式的请 ...
- Django基础与组件
第一章:Django系列之web应用与http协议 第二章:基于wsgiref模块DIY一个web框架 第三章:Django下载与简介 第四章:url控制系统 第五章:视图 第六章:Django模板语 ...
- bower包管理工具
安装: npm install bower -g (全局安装) 验证: bower --version 指令( 以vue为例 ): 1. bower info vue 查看 ...
- Android MaterialDesign之水波点击效果的几种实现方法
什么是水波点击的效果? 下面是几种不同的实现方法的效果图以及实现方法 Video_2016-08-31_003846 如何实现? 方法一 使用官方提供的RippleDrawable类 优点:使用方 ...
- RFS实例登录126邮箱/利用cookie登陆百度
可以直接添加用户关键字,也可以新建资源,将用户关键字添加入资源,然后导入整个资源文件 用户关键字内部实现如下: 打开126邮箱首页: Open Browser Http://mail.126.com ...
- 如何快速找到某个研究领域的所有SCI期刊
https://www.toutiao.com/a6624332265285485060/?tt_from=dingtalk&utm_campaign=client_share&tim ...
- day60
Bootstrap 一.简介 Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍的 ...
- excel中散点图和折线图的区别(散点图时间均匀分布)
折线图可以显示随单位(如:单位时间)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势.散点图显示若干数据系列中各数值之间的关系,或者将两组数绘制为 xy 坐标的一个系列.-------- ...
- tomcat-在eclispe中配置远程调试
在eclispe中新建web应用,名字叫webtest.里面只有一个HelloServlet.Web.xml配置如下. 修改tomcat的启动脚本startup.bat.复制startup.bat为s ...
- tomcat-在eclipse中配置tomcat容器的内存
eclipse下的tomcat内存设置大小 在eclipse中设置: 设置步骤如下: 1.点击eclipse上的debug图标旁边的下拉箭头 2.然后选择Run Configurations, 3.系 ...
(接上)
四.对“计算机是如何工作的”的理解: