上节学这个徐文浩的深入浅出计算机组成原理,就吃了大亏,渐渐的就发现了,其实他讲的并不单纯是计算机组成原理,而是讲的汇编语言和单片机,(lll¬ω¬)汗!

菜鸟倒是还好,因为学过单片机的,汇编语言多少了解一点,可各位读者就不一样了,所以我尽力最简化,不涉及这些单片机的知识,实在不行,菜鸟会放弃更新这个内容,毕竟,这不是我要的计算机组成原理(> 口 <)!!!

文章目录

  • CPU 是如何执行指令的
    • 三种寄存器:
    • 执行过程
  • 读者动手环节

CPU 是如何执行指令的

拿我们用的 Intel CPU 来说,里面差不多有几百亿个晶体管。实际上,一条条计算机指令执行起来非常复杂。

我们先不管几百亿的晶体管的背后是怎么通过电路运转起来的。逻辑上,我们可以认为,CPU 其实就是由一堆寄存器组成的。而寄存器就是 CPU 内部,由多个触发器(Flip-Flop)或者锁存器(Latches)组成的简单电路
(这里触发器和锁存器,各位感兴趣的读者可以自己去百度,极客时间里面没讲,不过学过数字逻辑的应该知道,菜鸟学过了,不过现在忘了,只能说是自己学得不牢靠)

N 个触发器或者锁存器,就可以组成一个 N 位(Bit)的寄存器,能够保存 N 位的数据。

三种寄存器:

  1. PC 寄存器(Program Counter Register),我们也叫指令地址寄存器(Instruction Address Register)。顾名思义,它就是用来存放下一条需要执行的计算机指令的内存地址
  2. 指令寄存器(Instruction Register),用来存放当前正在执行的指令
  3. 条件码寄存器(Status Register),用里面的一个一个标记位(Flag),存放CPU 进行算术或者逻辑计算的结果。(零标志条件码(对应的条件码是ZF,Zero Flag)。除了零标志之外,Intel 的 CPU 下还有进位标志(CF,Carry Flag)、符号标志(SF,Sign Flag)以及溢出标志(OF,Overflow Flag),用在不同的判断条件下。)

一个 CPU 里面会有很多种不同功能的寄存器。上面三种只是比较特别而且重要的,其实就是执行代码时必须使用到的寄存器。除了这些特殊的寄存器,CPU 里面还有更多用来存储数据和内存地址的寄存器,这样的寄存器通常一类里面不止一个。我们通常根据存放的数据内容来给它们取名字,比如整数寄存器、浮点数寄存器、向量寄存器和地址寄存器等等。有些寄存器既可以存放数据,又能存放地址,我们就叫它通用寄存器

执行过程

实际上,一个程序执行的时候,CPU 会根据 PC 寄存器里的地址,从内存里面把需要执行的指令读取到指令寄存器里面执行,然后根据指令长度自增,开始顺序读取下一条指令。当遇到比较特别的代码,eg:if、for、while,首先会将判断结果放入条件码寄存器,PC 寄存器会自动自增,根据结果去执行跳转指令(对应上一节中的J指令,读者只要知道是跳转指令就好),PC寄存器就不再是顺序读取下一条指令,而是直接设置为该指令地址,然后把其中的指令加载到指令寄存器,按照上面的过程继续执行。

读者动手环节

突然感觉自己总结,比极客简单多了,其实极客时间就是通过对照c语言代码和汇编代码,然后跟你解释汇编代码的字母代表什么( 这就是单片机老师做的事,不接受反驳 ),这里如果各位读者意犹未尽,其实可以自己敲循环、判断代码,然后自己比较,这里留下对照方法(其实上一节里有,菜鸟水字数(¬v¬) )

$ gcc -g -c test.c
$ objdump -d -M intel -S test.o

菜鸟得赶紧去复习java、c语言、JS,不然有两个课程完全无法更新,让读者无法一起学习!!!(ง •_•)ง加油

深入浅出计算机组成原理 指令跳转(自我提升第十八天)相关推荐

  1. 极客时间 自我提升第二天 数据结构与算法之美 应该掌握 / 趣谈网络原理 / 深入浅出计算机组成原理 思维导图

    菜鸟今天又来完成所说的诺言,也希望大家督促,在今天的学习中,菜鸟有了新的认知,我会将上一篇中理解不完善的一些地方进行补充,学习本就是不断打破自己的认知,如果思考都不做,何来的知识的积累 文章目录 数据 ...

  2. 深入浅出计算机组成原理 通过CPU主频看性能(自我提升第8天)

    希望大家关注菜鸟,不然后期的文章,各位可能无法及时看到 文章目录 深入浅出计算机组成原理 1.计算机性能的两个指标 2.计算机的计时单位: CPU时钟 大家了解了上面的知识点,那接下来就是两者结合的高 ...

  3. 【练拳不练功,到老一场空】深入浅出计算机组成原理

    深入浅出计算机组成原理 文章目录 深入浅出计算机组成原理 计算机的基本组成 硬件设备组成 CPU 内存 主板 I/O 设备 硬盘 显卡 冯.诺依曼体系结构 运算器/处理器单元 控制器 存储器 输入设备 ...

  4. 【计组】入门篇 --《深入浅出计算机组成原理》(一)

    课程链接:深入浅出计算机组成原理_组成原理_计算机基础-极客时间 目录 一.为什么需要学习计算机组成原理 二.冯·诺依曼体系结构:计算机组成的金字塔 1.计算机的基本硬件组成 2.冯·诺依曼体系结构 ...

  5. 【计组】设计大型DMP系统--《深入浅出计算机组成原理》(十四)

    目录 一.DMP:数据管理平台 二.MongoDB 真的万能吗 三.关系型数据库:不得不做的随机读写 (一)Cassandra:顺序写和随机读 1.Cassandra 的数据模型 2.Cassandr ...

  6. 深入浅出计算机组成原理(四)——穿越功耗墙,我们该从哪些方面提升“性能”?

    文章目录 功耗:CPU 的"人体极限" 并行优化,理解阿姆达尔定律 总结延伸 补充阅读 课后思考 上一讲,在讲 CPU 的性能时,我们提到了这样一个公式: 程序的 CPU 执行时间 ...

  7. 深入浅出计算机组成原理01:计算机概要与技术

    目录 1. 计算机系统结构中的8个伟大思想 1.1 面向摩尔定律设计 1.2 使用抽象简化设计 1.3 加速大概率时间 1.4 通过并行提高性能 1.5 通过流水线提高性能 1.6 通过预测提高性能 ...

  8. 深入浅出计算机组成原理03:处理器

    目录 1. 建立数据通路 1.1 指令周期(Instruction Cycle) 1.1.1 指令执行步骤 1.1.2 指令周期 1.2 建立数据通路 1.2.1 数据通路的组成 1.2.2 控制器 ...

  9. 计算机组成原理指令译码,计算机组成原理实验报告指令译码器.docx

    河北大学计算机组成原理实验报告 实验项目指令译码器成绩 -X实验目的: 理解指令译码器的作用和重要性. 学习设计指令译码器. 实验原理: 指令译码器是计算机控制器屮最重要的部分.所谓组合逻辑控制器就是 ...

最新文章

  1. python 把2个列表或者2个元组转成字典
  2. 洛谷P4053 [JSOI2007]建筑抢修
  3. 夏令营讲课内容整理 Day 5.
  4. Shell脚本中command not found报错处理
  5. java模拟退火程序
  6. Docker部署SDN环境
  7. Pixhawk之姿态解算篇(5)_ECF/EKF/GD介绍
  8. React后台管理系统-file-uploader组件
  9. 飞机大战小游戏1.0版本
  10. 剑指offer面试题36. 二叉搜索树与双向链表(中序遍历)(递归)
  11. 算法分析c语言版+视频教程,数据结构c语言版
  12. Android一键清空内存,教你一键深度清理手机垃圾,瞬间释放几个G,再也不怕内存不够了...
  13. 金融计量学第一次实验:eviews做多元线性回归分析
  14. mybatipse 下载_哇塞!可以免费下载某度文档的doc格式啦
  15. 移动无线网络参数及速率
  16. python3实现二叉树的简单遍历(DLR 、LDR、LRD)
  17. 计算机课平时成绩重要吗,离散数学课程平时成绩评定方法的探索与研究
  18. [android] 手机卫士黑名单功能(ListView结合SQLite增删改)
  19. 去哪儿网首页分析 Home.vue
  20. 快速生成 HTML 表格代码

热门文章

  1. 论语言好坏(纯属个人观点)
  2. 2022-2028年中国月子会所行业市场竞争状况及发展趋向分析报告
  3. EM最大期望 似然与贝叶斯
  4. 4个方法告诉你电脑怎么恢复出厂设置!
  5. 徐小平:既然你是创业公司老大,就得让兄弟们有肉吃
  6. Kudu的架构以及优势
  7. t-sql语句创建表(基础)
  8. 如何打造渐进式、可扩展的前端研发平台
  9. 护眼灯色温多少合适?教你读懂护眼灯参数及如何选择
  10. 用python爬虫爬取微博信息