这段时间看了许多计算机基础的书,但对于计算机为什么可以用软件来操作硬件,还是觉得迷迷糊糊。重读《编码》,才终于明白了。我真的太爱这本书了,白痴福音!
概念
位宽 vs 字长(P207 )
- 位宽 = 地址访问数量 = 2^地址输入端的个数 = 可寻址内存大小
- 字长 = 每个地址下储存的bit数量,数据通路宽度,每次加减运算时可处理几位的数字
指令 vs 操作码
- 指令:大部分指令包括操作码和数据。特殊指令Halt只有操作码
- 操作码:又名指令码,大部分操作码都对应操作数(即需要操作的数据,可以是内存地址、立即数、寄存器、标志位)
- LOD A, [1005h] ; 将[1005]地址上的数据LOAD到A累加器,LOAD A是操作码,[1005h]是操作数
| 操作码opcode | 代码 |
|---|---|
| Load | 10h |
| Store | 11h |
| Add | 20h |
| Halt | FFh |
硬件 vs 软件
- 硬件:有形组件,包括键盘、显示屏、CPU、储存器等。(对照书中的硬件包括继电器、电线、开关以及灯泡)
- 软件:计算机存储器里的数据和指令集合。
主要框架
- 计算机做什么:输入 - 计算 - 输出
- 计算机的构成:处理器,储存器,I/O系统
硬件:如何实现计算
- 逻辑电路:继电器,逻辑门(AND,OR,NAND,NOR,XOR,XAND等),再到加法器(加减乘除)
- 存储器:利用电路环路实现储存
- 自动化运行以及地址跳转:clock
如何实现编程(软件操纵硬件)
- 继电器:电生磁,电流可以控制开关
- 汇编语言:用助记符标注二进制的操作,这种助记符即为操作码,主要管理控制信号电流(读写开关,控制选择器等)
计算机为什么可以用软件操作硬件
- 写代码,敲键盘键,点击鼠标,都可以理解为操作开关把代码(数据和指令集合 - 二进制 - 高低电压)写入内存,点击保存后则存入外存。
- 软件,其实就是存储器里保存的高低电压(分两种:一种是控制信号,控制着电路的通或断,另一种是数据)。
- 软件的运行,是自动化运行的高低电压,最后实现计算