古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。——苏轼
文章目录
- 数字计算机
- 硬件
- 软件
数字计算机
数字计算机分为硬件和软件两部分,硬件是组成计算机的设备,软件是输入计算机的指令和数值。之所以将它们区分,是因为相对于硬件而言,软件更加容易修改。
硬件
硬件分为处理器,存储器,IO设备几个部分。对于我们在上篇文章中设计的计算机而言,存储器就是RAM阵列,存储代码和数值;输入设备是各种开关,输出设备是灯泡。除此之外的所有设备统称为处理器。
处理器中,8位反相器和8位加法器组成了ALU(算术逻辑单元),ALU负责执行实际的计算过程。
软件
软件分为代码和数据。对于每一条指令,我们有特定的助记符。下面是在我们构造的计算机中指令的助记符:
正如我们在构造的计算机中做的那样,我们为每个指令后加一个或两个它所需要的操作数:
当有两个操作数时,第一个参数是目的操作数,第二个参数是源操作数。这两个指令的意思是将第二个操作数地址中的值作用于第一个操作数地址中。
注意,这个指令的操作数没有用方框,代表不是用这个数当做地址从RAM中取值,而是直接用这个数作用于处理器中的硬件。例如,在上面的Jump指令中,就用这个数直接作用于计数器来实现地址跳转。我们也可以在指令前面加上这条指令第一个字节实际的地址:
但指令地址会导致编写程序时比较麻烦,很多人更愿意使用更加抽象的指向指令的标识,而将地址分配交给计算机自动完成。使用标识后,就可以用标识来代替实际的地址了:
在这张图中,下面是NUM1,NUM2等实际指代的地址,上面则是一系列指令。
到这里,我们就构造出了一种计算机程序设计语言,称为汇编语言。任何高级语言在翻译成机器语言时,都要翻译成汇编语言。
我是霜_哀,在算法之路上努力前行的一位萌新,感谢你的阅读!如果觉得好的话,可以关注一下,我会在将来带来更多更全面的知识讲解!