冯诺依曼体系结构

储存程序计算机工作模型

  • 硬件
  • 程序员

    CPU当作for循环;

    IP:

  • 16位计算机:IP
  • 32位计算机:eIP
  • 64位计算机:rIP

X86汇编基础

X86的CPU寄存器

X86的CPU寄存器:

  • 通用寄存器
  • 段寄存器
  • 标志寄存器

32寄存器被称为通用寄存器,一般以E为首字母

32位寄存器=高16位+低16位
低16位寄存器中又存在AX,BX,CX,DX,BP,SI,DI,SP八个寄存器

通用寄存器中比较重要的如EBP(堆栈基指针),ESP(堆栈顶指针)
堆栈是计算机中非常基础的东西

段寄存器分为:CS,DS,ES,SS,FS,GS

指令内存地址的描述:CS+EIP

X86-64bit:通用寄存器扩展至64位,一般以R为首字母

计算机的汇编指令

mov指令:

b代表8位,w代表16位,l代表32位,q代表64位

movl %eax , %edx eax=edx; (寄存器寻址)
将eax(寄存器)内存放至edx中

movl $0x123 , %edx eax=edx; (立即寻址)
将$0x123放至edx中

movl %eax , %edx eax=edx; (直接寻址)
将eax(寄存器)内存放至edx中

movl (%ebx) , %edx edx=(int 32_t*)ebx; (间接寻址)
将将ebx的值作为内存地址所访问到的值放至edx中

movl 4(%ebx) , %edx edx=(int 32_t*)(ebx + 4); (变址寻址)
在间接寻址之时改变寄存器的数值

X86系统中,大多数指令可以直接访问内存地址

另外几个重要指令:

pushl %eax :

  • subl $4 , %esp
  • movl %eax , (%esp)

popl %eax :

  • movl (%esp) , %eax
  • addl $4 , %esp

call 0x12345:

  • pushl %eip(*)
  • movl $0x12345 , %eip(*)

ret(return):

  • popl %eip(*)

重要寄存器

eip:从main开始,自加1,调用其它指令时,修改eip,
无特殊说明时,eip在该条指令结束时,指向下一条指令

ebp:总是指向堆栈的栈底

esp:总是指向堆栈的栈顶

eax:暂存数据

实验分析:


学习总结:

首先,对于计算机系统而言,堆栈是非常重要的组成部分,许多指令在运行的过程中都是通过堆栈的方式来进行操作的。
其次,对于几个重要寄存器的掌握是非常必要的。

Linux内核分析第一周总结的更多相关文章

  1. LINUX内核分析第一周学习总结——计算机是如何工作的

    LINUX内核分析第一周学习总结——计算机是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/ ...

  2. linux内核分析第一周学习笔记

    linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  3. Linux内核分析第一周学习博客 --- 通过反汇编方式学习计算机工作过程

    Linux内核分析第一周学习博客 通过反汇编方式学习计算机工作过程 总结: 通过这次对一个简单C程序的反汇编学习,我了解到计算机在实际工作工程中要涉及大量的跳转指针操作.计算机通常是顺序执行一条一条的 ...

  4. Linux内核分析——第一周学习笔记20135308

    第一周 计算机是如何工作的 第一节 存储程序计算机工作模型 1.冯·诺依曼结构模型:冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构.程序指令存储地址和数据存储 ...

  5. 20135320赵瀚青LINUX内核分析第一周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.概述 第一周的学习内容主 ...

  6. Linux内核分析——第一周学习笔记

    20135313吴子怡.北京电子科技学院 chapter 1 知识点梳理 第一节 存储程序计算机工作模型 1.冯诺依曼体系结构:即具有存储程序的计算机体系结构.目前大多数拥有计算和存储功能的设备(智能 ...

  7. Linux内核分析第一周学习总结:计算机是如何工作的?

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.冯诺依曼体系 ...

  8. Linux内核分析第一周——计算机是如何工作的

    冯诺依曼体系结构 核心思想 1.冯诺依曼是:数字计算机的数制采用二进制:计算机应该按照程序顺序执行. 2.采用二进制作为计算机数值计算的基础,以0.1代表数值.不采用人类常用的十进制计数方法,二进制使 ...

  9. linux内核分析 第一周

    计算机是如何工作的 冯·诺依曼理论的要点是: 数字计算机的数制采用二进制:计算机应该按照程序顺序执行. 冯·诺依曼体系结构 根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至 ...

  10. linux内核分析 第一周 计算机是如何工作的 20125221银雪纯

    我使用的c语言代码是: int g(int x) { return x + 1; } int f(int x) { return g(x); } int main(void) { return f(6 ...

随机推荐

  1. 【Alpha 冲刺】8/12

    今日任务总结 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完善API文档,并初步使用SpringMVC产生编写部分API 未完成 白天有事外出,晚上因为jdk版本过高,配置SpringMV ...

  2. kudu基础入门

    1.kudu介绍 1.1 背景介绍 在KUDU之前,大数据主要以两种方式存储: (1)静态数据: 以 HDFS 引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景.这类存储的局限性是数据无法进行随机 ...

  3. mac层和llczi层

    1.何为数据链路层的(DATA LINK LAYER)的MAC子层和LLC子层? MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差 错控制等.MAC子层的 ...

  4. 微信小程序点击 navigator ,页面不跳转

    1.navigator 对应的 url 必须配置在app.json的pages中: 2.navigator 对应的 url 不能配置在"tabBar"的"list&quo ...

  5. 13.2SolrCloud集群使用手册之CoreAdmin API

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ CoreAdminHandler是用来管理Solr cores的,用来管理一个Solr instance中所有 ...

  6. BZOJ3569:DZY Loves Chinese II(线性基)

    Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生.   今Dzy有一魞歄图, ...

  7. Linux chmod +755和chmod +777 各是什么意思呢?

    你可以在linux终端先输入ls -al,可以看到如: -rwx-r--r-- (一共10个参数)第一个跟参数跟chmod无关,先不管.2-4参数:属于user5-7参数:属于group8-10参数: ...

  8. 开源仓库Harbor搭建及配置过程

    1.Harbor介绍 Harbor是Vmvare中国团队开发的开源registry仓库,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务. 2.安装 ...

  9. nodeJS---模块与npm包管理工具

    nodeJS---模块与npm包管理工具 一:从模块外部访问另一个模块内的成员; 假如我现在还在D盘中的node文件夹内中的app.js代码改成如下: var msg = 'hello'; var f ...

  10. javascript仿新浪微博图片放大缩小及旋转效果

    javascript仿新浪微博图片放大缩小及旋转效果 经常看到新浪微博里有图片放大缩小旋转效果,感觉效果还不错,所以就想试着做一个类似的demo出来,至于旋转对于IE可以用滤镜来解决,标准的浏览器可以 ...