基础知识
- 《微机原理与接口》 就是关于PC机以及CPU物理结构和变成结构的全面研究。
- 而对于汇编来说,可以跟高级语言进行一个整体的理解,后者使用一个简单的命令就能够实现前者需要用很多代码才能实现的功能。
- 《组成原理》 计算机的一般结构、功能、性能的研究。
机器语言
刚好看完《编码》这本书,感觉对于这一点的感触颇深。
对于电子计算机来说,机器指令就是一列二进制数字,计算机将它们变成一列高低电平,来使得计算机的电子器件受到驱动,进行运算。
现在我们提到计算机,很自然就能想到笔记本什么的,但是对于树莓派等等也可以被称为计算机(早期的计算机:可以执行机器指令,进行运算的机器)。
运算?现在在CPU中就能够完成,CPU就是一种微处理器。
如果说出错的话,其实是很不好找到错误的地方的。这个时候汇编语言就出来了!
汇编语言的产生
-
汇编语言就是为了解决上面的问题出现的。
-
汇编语言的主体是汇编指令
mov ax,bx 把bx的内容移动到ax
使用汇编表示:1000100111011000
- 这里的ax和bx代表的都是寄存器。
汇编语言组成
1:汇编指令(核心)
2:伪指令
3:其他符号
存储器
比如内存,内存就像是人的记忆力,我们说一个人特别聪明,但是没有记忆力这个人还是不能思考。而对于磁盘来说,上面的信息必须送到内存中才能发挥作用。
指令和数据
CPU在工作的时候把有的信息看成指令,然后把有的信息看成数据。
就比如说一个棋子,在棋盒里面没有区别,在对弈的时候就有了不同的意义。
存储单元
- 存储器被分成若干存储单元,每个存储单元从0开始编号。
8个字节=8 bit=1 Byte,也就是8个二进制位。
上图就是128个Byte.
现在我们的计算机的计算方式为:
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
CPU对存储器的读写
- CPU从内存中读数据,首先制定存储单元地址(就比如说要找一个人,需要知道这个人住在哪里),CPU在读写的时候首先需要确定读取哪一个器件操作,进行哪种操作。
- 1:地址信息 2:控制信息 3:数据信息
- CPU通过地址线将地址信息3发出
- CPU通过控制线发出内存读命令,选中存储器芯片,并通知它,将要从中读取数据
- 存储器将3号单元中的数据8通过数据送入CPU
- 想要执行上面的操作就需要有命令,对于计算机或者微处理器来说,应该输入能够驱动它进行工作的电平信息。
地址总线
- 通过前面可以知道CPU通过地址总线来指定存储器单元(地址总线有多少个不同的信息,CPU就可以对多少个存储单元进行寻址)。
- 一个CPU有N根地址线,说明CPU的地址总线宽度为N,这样CPU最多可以寻找2^N个内存单元。
数据总线
-
数据总线的宽度决定了CPU和外界的数据传送速度
-
8088CPU数据总线宽度为8,8根数据总线一次可以传送一个8位二进制数据(一个字节)。
-
8086CPU数据总线宽度为16。
-
突然想到多次运算能够用一个8位的系统计算超出计算范围的数据,对于传送的数据较大的时候,8088可以通过两次数据传送来实现。
控制总线
- 多少根就意味着CPU提供对外部器件的多少种控制。
- 宽度决定了CPU对外部器件的控制能力。
1:地址总线宽度为n,可以传送2nbit,现在8KB=23*210bit=213bit.
2:1KB=1024B,代表1024个存储单元
3:1KB=1024Byte=1024*8bit
4:2^30 2^20 2^10
5:1KB=64*1B=2^16bit 2^20=1MB 16 4
6:对于数据总线,八根代表1B,B和byte都代表字节
7:8086和80386分别为16和32,也就是2Bite和4Bite
计算下来就是:1024/2=512,后者就是512/2=256
8:二进制
内存地址空间
CPU地址总线宽度为10,就可以寻址1024个内存单元,这1024个可以寻找到的内存单元构成CPU的内存地址空间。
主板
通过总线相连的器件
接口卡
CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。
存储器芯片
-
随机存储器RAM
- 可读可写,但是必须带电存储,关机后内容丢失
- 主板上的RAM和扩展板上的RAM
- 显卡上的RAM,显存,需要的内容写入显存,就会出现在显示屏
-
只读存储器ROM
- 不能写入,关机后内容不丢失
- 装有BIOS的ROM(BIOS就是主板和各类接口卡厂商提供的软件系统),通过它利用该软件设备进行最基本的输入输出。
内存地址空间
8086可以定位2^20个内存单元,则8086PC的内存地址空间大小为1MB,同理, 80386CPU的地址总线宽度为32,则内存地址空间最大为4GB.