本文根据于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个内存地址
0100 | |
0101 | 2==3 |
0102 | |
0103 | |
0104 |
在执行0101的时候需要进行2==3判断,如果等于则执行0102,不等于执行0104。
这个判断需要两个寄存器来完成,程序计数器和标志寄存器。在0101时会进行计算,通过这个计算之后,CPU会改写寄存器(32位),标志寄存器会进行置位的操作。
一句跳转指令: 1.计算 2.将标志指令进行置位操作 3.判断 改写寄存器的值达到跳转的效果。
二进制数
为什么要用二进制?
CPU由集成电路构成的。集成电路芯片上有许多引脚,一个引脚只有两种状态(高电平和低电平),u 我们用0代表低电平,1代表高电平,因此使用二进制来表示引脚的状态更为方便。
如何用二进制表示文字,图片,视频,声音
字符:英文字母26个 , 大小写52个 ,用52个编号表示其中每一个字符。
图片:把图片分解为一个个小点,用几个bit来表示其中某个点是某颜色。
视频:由图片一帧一帧的播放,原理和图片一样(各种格式是内部的数据排列不同)
声音:通过采样形成一些高低波的点来形成的一些格式
二进制和十进制的转换
二进制是逢2进1,十进制是逢10进1
二进制之间的运算
二进制可以进行加减乘除。二进制中所有运算都是靠加来实现的。