1 计算机基本工作原理
1.1冯 诺依曼结构基本思想
1.世界上第一台电子数字计算机-ABC样机(了解即可)
2.世界上第一台通用电子计算机的诞生-ENICA(其计算机结构被称为冯·诺依曼结构)
——重要思想:存储程序(计算机需要完成的工作都需要被编写为程序,把程序和原始数据送入主存以后再去执行)
接下来的内容均以思维导图模式展现:
1.2程序设计语言和翻译程序
1.程序的发展历程
机器语言——>汇编语言——>高级语言
补充:机器语言和汇编语言都是面向机器结构的语言,故它们统称为机器级语言
(1)机器语言
就是通过纸带或者卡片打孔,特别麻烦,修改一下就要全部都重新打孔!!!忒麻烦了。
(2)汇编语言(需将汇编语言转换为机器语言!用汇编程序转换)
*不会因为增减指令而需要修改其他指令
*不需记忆指令码,编写方便
*可读性比机器语言强
~~~~汇编语言是由一条条的汇编指令组成的,那么
什么是汇编指令呢?
用
助记符+标号表示的一条指令,和机器指令是一一对应的关系
(3)高级程序(就比如现在的C语言,C++等都是)
***现在,几乎所有程序员都用高级语言编程,但最终要
将高级语言转换为机器
语言程序
转换方式 | 转换过程 | 结果 |
编译 | 高级语言源程序——>机器级目标程序 | 执行时启动目标程序即可 |
解释 | 高级语言逐条翻译——>机器指令(不生成目标程序) | 转为机器指令就立即执行 |
2.程序设计语言和翻译程序(语言之间如何转换?——>转换后生成的可执行文件是如何执行的?——>开发和运行程序需要什么做支撑?)
(1)不同层次语言之间的等价转换:
(2)可执行文件的启动和执行:
看不懂也不用着急:大概就是——
数据在各个寄存器之间传送,(比如现代计算机会有
”缓存“现象)然后整个过程在
CPU在执行指令过程中产生的
控制信号下进行。
(3)开发与执行程序需要什么做支撑?
程序 | 过程 | 复杂程度 |
早期程序 | 启动后把第一条指令放入PC即可 | so easy! |
高级语言程序 | 1.编辑器:编写程序(比如Pycharm写字板那里)
2.一系列翻译转换软件:
*编译:预处理程序、编译器、汇编器、链接器
*解释:解释程序
3.界面(人机接口)
*GUI图形用户界面
*CUI命令行用户界面
...
| so 复杂! |
总结:
1.支撑程序开发和运行的环境由系统软件提供
2.最重要的系统软件是操作系统和语言处理系统
3.语言处理系统运行在操作系统之上,操作系统利用指令管理硬件
1.3 计算机系统的层次结构
1.计算机系统抽象层的转换
第一代程序设计语言——机器语言 | 应用程序 指令集体系结构 硬件 |
第二代程序设计语言——汇编语言 | 应用程序 汇编程序 操作系统 指令集体系结构 硬件 |
第三代+第四代程序设计语言 | 应用程序 语言处理系统 (编译,汇编链接,库函数,调试...) 操作系统 指令集体系结构 硬件 |
2.指令集体系结构——ISA:处于软件和硬件的交界面(接口),那它到底是个啥?
答:它其实就是一种是一种规约,它规定了如何使用硬件
ISA和计算机组成(
微体系结构)
是何关系?
1.不同的ISA规定的指令集不同(就是你必须符合它规定的指令,才能使用)
2.计算机组成必须能实现ISA规定的功能(就是那些硬件,必须能支持ISA能实现的功能,不然也用不了啊)
3.同一个ISA可以有不同的计算机组成(比如乘法既可以由ALU来搞,也可以用乘法器)
1.4 计算机系统性能评价
这个点比较重要,请看下一个博客,单独列出来了~