我可以在汇编语言使用符号的指令,这个程序敲进去后,用汇编程序翻译成机器语言程序。我们来尝试稍微复杂一点的操作

LOAD A,16

LOAD B, 17

ADD C,A,B

STORE C,17

虽然我们能看懂指令了,但是要告诉计算机一步一步做什么,是不是就很烦。我们平时的交流习惯应该是这样:c=a b,也就是告诉计算机一件事情,具体怎么做,让它自己去想。就有了更高层次程序的设计,叫高级语言程序。我们只要描述一个任务,具体步骤是由更底层人去设计的。转换的方法是用编译程序翻译成汇编语言程序,再由可以翻译汇编程序的程序来转化成机器代码,这样对人来说就是友好啦。但是,这个时候高级语言的工程师会越来越开心,因为他只是不断的向下层提出要求就可以。比如说要写一个微分,只要要求下面的硬件工程师给我去完成这个微分。然后下面的人就很难受,要写很多行的01代码才能设计出那个公式。但是下面的人也会想办法的,他们发现会有规律的,很多部分是可以重复使用的。使用下层的人也做设计。就是把指令拆分成一些可以重复使用的块,可复用的微指令。

但是上层的人会发现自己的机器经常死机,这是因为他在调用这些资源的时候,并不记得自己正在占用这些资源。后面又调用了一次,那内容就被覆盖了,这样搞多了就会死机。还找不出原因,这个时候就要解放我们的人工,再做一层来管理资源,这个就是操作系统,它的作用就是代替我们自动管理底层调用。计算机的五层结构就搭建出来了。

软件和硬件是协同发展,无严格界线

计算机的五大组成结构图(计算机组成-五层结构)(1)

五层结构

最后补充冯若依曼计算机的特点,最核心的概念就是存储程序。将指令以代码的形式事先输入到计算机主存中,然后按其存储器的首地址执行程序的第一条指令。以后就按照该程序的规定顺序执行其他指令,直到程序执行结束

,