lesson1 计算机科学篇之CPU与二进制
来源:互联网 发布:顶点网络代理 编辑:程序博客网 时间:2024/06/12 07:41
本文根据于po学校mark老师上课所讲的而记录的学习笔记
CPU
CPU,中央处理器,是电脑中的重要组件之一,如果电脑中没有CPU是无法运行的 ,CPU是负责整体计算机的控制,运行等处理。
CPU的内部中有四大组件 :寄存器,控制器,运算器,时钟。
寄存器: 短暂的存储一些值的地方,负责存储电脑中数据的地方,相当于CPU中的内存。一个程序是由指令(算法)加上数据组成的。
控制器: 负责将内存,寄存器中的数据读入写出,控制寄存器的数据。
运算器:逻辑运算单元,协助控制器和寄存器,达到运算的效果。
时钟:CPU必须有人推动,推动的就是时钟。时钟有频率(GHz),i7的CPU有3.2GHz,相当于32亿次每秒的运行速度。
寄存器:
程序员最需要注意的是寄存器,因为寄存器是软件工程师唯一能接触到的。CPU是寄存器的集合。
低级语言,机器语言:CPU能读懂的语言,最开始是由0和1组成的代码。后来一串固定的01代码编辑成了一段固定的指令,产生了汇编。
高级语言,人类更好理解记忆,指令更加少的语言。 高级语言通过编译器翻译成机器语言,编译完成后生成一个可执行的文件(01代码组成的集合,里面代码包含了算法和存储的数据。算法是计算的顺序,程序就是将一些指令有序的排列,依次执行,包括了算法和数据)每次双击二进制的数据的时候,windows 操作系统会把二进制数据加载到内存里,CPU和内存产生交互。
寄存器是如何工作的
寄存器中分累加寄存器,标志寄存器,程序计数器,基址寄存器,变址寄存器,通用寄存器,指令寄存器,栈寄存器
累加寄存器:CPU做加法运算,存储记录计算之后的数据,寄存器是读取速度比内存快100倍。(CPU通过总线告诉主板控制器要读取的单元,CPU拿到数据通过寄存器计算)
标志寄存器:记录CPU的状态,帮助进行逻辑判断的,根据两个数之间的比较,来改变标志运算器状态
程序计数器:存储了下一条指令在内存中的地址。
基址寄存器:存储当前数据内存开始的地址
变址寄存器:存储基址寄存器的相对位置(偏移的位置),基址寄存器和变址寄存器能得到某个内存的具体地址
通过寄存器:什么地方都可以用的寄存器
指令寄存器:CPU内部使用,程序员不能操作,作用是存储当前指令
栈寄存器: 记录栈的起始位置
程序计数器:
程序进行加载到内存之后,操作系统会告诉CPU程序开始的地址在哪儿(比如0100),CPU中的程序计数器就会记录(0101),当这步运算结束后,CPU会再取程序计数器里的值,计数器会累加(0102)。程序往下执行,计数器继续累加。程序有多种执行方式,条件分支,循环。
分支:
比如有5个内存地址
在执行0101的时候需要进行2==3判断,如果等于则执行0102,不等于执行0104。
这个判断需要两个寄存器来完成,程序计数器和标志寄存器。在0101时会进行计算,通过这个计算之后,CPU会改写寄存器(32位),标志寄存器会进行置位的操作。
一句跳转指令: 1.计算 2.将标志指令进行置位操作 3.判断 改写寄存器的值达到跳转的效果。
二进制数
为什么要用二进制?
CPU由集成电路构成的。集成电路芯片上有许多引脚,一个引脚只有两种状态(高电平和低电平),u 我们用0代表低电平,1代表高电平,因此使用二进制来表示引脚的状态更为方便。
如何用二进制表示文字,图片,视频,声音
字符:英文字母26个 , 大小写52个 ,用52个编号表示其中每一个字符。
图片:把图片分解为一个个小点,用几个bit来表示其中某个点是某颜色。
视频:由图片一帧一帧的播放,原理和图片一样(各种格式是内部的数据排列不同)
声音:通过采样形成一些高低波的点来形成的一些格式
二进制和十进制的转换
二进制是逢2进1,十进制是逢10进1
二进制之间的运算
二进制可以进行加减乘除。二进制中所有运算都是靠加来实现的。
- lesson1 计算机科学篇之CPU与二进制
- 程序与CPU(PO学校 计算机科学 笔记整理)
- 计算机科学--二进制运算
- lesson1
- lesson1
- lesson1
- Lesson1
- lesson1
- 计算机科学篇
- 计算机科学与技术学习心得之闲聊软件工程(转载)
- 计算机科学与技术学科整体概况之学科总体介绍
- 计算机科学与技术专业编译原理之词法分析代码
- 华南理工大学 2015 计算机科学与工程学院 复试 之 机试 902
- 20161208计算机科学导论02_二进制运算
- 二进制 (Po学校 计算机科学 笔记整理 )
- 计算机科学与技术学习心得
- 计算机科学与技术学习心得
- 计算机科学与计算机技术!
- ubuntu16.04无法安装第三方软件解决方法 、
- geoip PHP版本
- 【学习笔记】使用Python对文件进行简单操作
- 使用powerdesigner16反编译Oracle数据库的问题处理
- matlab 产生随机数的方法
- lesson1 计算机科学篇之CPU与二进制
- 写作的力道——北漂18年(番外篇一)
- Gradle安装与简单使用
- 继承、封装
- Enable ADB integration' to be enabled.
- Struts2的深入理解与使用(一)
- 机器学习(周志华)习题解答1.4: 两个算法到底孰优孰劣?没有免费午餐定理
- 4-12 二叉搜索树的操作集
- JavaScript趣题:成双成对的括弧