这个模块的作用是存储 1bit 数据。比如上面这个,R 是 Reset,输入 1 则清零。S 是 Set,输入 1 则保存 1。RS 都输入 0 的时候,会一直输出刚才保存的内容。
注意到这个电路跟之前我们看到的都不一样了,其门电路的输出会作为自身的输入,这种结构被称为反馈电路。
我们用触发器来保存计算的中间数据(也可以是中间状态或者别的什么),1bit 肯定是不够的,不过我们可以并联,用 4 个或者 8 个来保存 4 位或者 8 位数据。这种我们称之为寄存器。
九、汇编现在我们把上述用到的元器件组合起来,共有 8 个引脚,其中 4 个数据引脚,4 个指令引脚。数据引脚是可以输入数据,指令引脚是用来选择执行的操作。
我们定义,当指令引脚输入:
0001 读取数据,将数据引脚的数据读入寄存器;
0010 选择加法器,将数据引脚的数据与寄存器数据相加,结果在寄存器;
0100 选择乘法器,将寄存器的数据乘以数据引脚的数据,结果在寄存器;
1000 清空寄存器。
我们以一个计算题来举例:3 × 5 6,输入依次为:
0001 0011 # 读取数字 3
0100 0101 # 选择乘法器,乘以 5
0010 0110 # 选择加法器,加 6
不错,现在我们计算出 3 × 5 6,可以去小学 3 年级踢馆了,呃,不过是不是有点麻烦,这还是我们只定义了 4 种指令,要是成千上万种这谁顶得住?
我们不妨对指令稍微包装一下,规定:
0001 用 MOV 表示
0010 用 SHL 表示
0100 用 ADD 表示
并且假设现在又多了一个元件可以实现十进制到二进制的转换,那么命令应该为:
MOV 3
SHL 5
ADD 6
稍微好受一点了,这就是我们每个人都精通的汇编语言,之前仅有 0 和 1 的语言称为机器语言。
太棒了,靠这台我们设计的 CPU 可以打败所有的小学生,称霸小学校园了。而且现在我们用的是 4 位 CPU,如果换成 8 位的 CPU 完全可以吊打初中生了!
实际上用程序控制 CPU 是个挺高级的想法,再此之前计算机的 CPU 都是单独设计的。
1969 年一家日本公司 BUSICOM 想搞程序控制的计算器,而负责设计 CPU 的美国公司也觉得每次都重新设计 CPU 是个挺傻X的事,于是双方一拍即合,于1970年推出一种划时代的产品,世界上第一款微处理器4004。那家负责设计 CPU 的美国公司也一步一步成为了业界巨头。它就是 Intel。
4004
建议您收藏或转发,以备不时之需。
文章来源:小道萧兮_https://www.jianshu.com/p/5985da9258c0