汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解


你知道世界上第一台通用计算机Eniac是怎样用来完成不同的任务的吗?通过插拔电缆和开闭开关完成硬布线 , 往往几个人还要忙上好一阵子 。
这样的硬布线过程可以自动化、重复利用吗?冯诺依曼(Von Neumann)提出了存储程序控制的概念 。
1 冯诺依曼提出的存储程序控制概念
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
2 冯诺依曼机的组成
2.1 硬件组成
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
【汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解】
2.1.1 程序要运行 , 需要先将可执行文件从输入设备(如磁盘) , 加载到内存 , 可执行文件执行时 , 可将一些数据输出到输出设备 。
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
2.1.2 程序和数据在存储器的存储:
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
2.1.3 控制器从存储器中取出指令 , 译码后产生控制信号:

汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
2.1.4 控制信号控制运算器做运算:
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
2.2 计算机软件系统
计算机软件系统通常被分为系统软件和应用软件两大类 。 计算机软件包括程序、数据及相关的文档资料 。 各软件虽然用途不同 , 但他们的共同点是都存储在计算机存储器中 , 以某种格式编码书写的程序或数据 。
计算机系统软件能保证计算机按照用户的意愿正常运行 , 为满足用户使用计算机的各种需求 , 帮助用户管理计算机和维护资源执行用户命令、控制系统调度等任务 。 应用软件是直接面向用户需要的 , 它们可以直接帮助用户提高工作质量和效率 , 甚至可以帮助用户解决某些难题 。

汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
系统软件是指担负控制和协调计算机及其外部设备、支持应用软件的开发和运行的一类计算机软件 。 系统软件一般包括操作系统、语言处理程序、数据库系统和网络管理系统 。
应用软件是指为特定领域开发、并为特定目的服务的一类软件 。 应用软件一般分为两类:
一类是为特定需要开发的实用型软件 , 如会计核算软件、工程预算软件和教育辅助软件等;
另一类是为了方便用户使用计算机而提供的一种工具软件 , 如用于文字处理的Word、用于辅助设计的AutoCAD及用于系统维护的瑞星杀毒软件等 。
3 计算机的层次结构与编程语言
计算机系统可以从硬件到软件抽象出不同的层次 , 每一个层次运行在各自的平台(相邻下一层)上:
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
需要注意的是 , 对于PC端的开发 , 其平台是各PC端的操作系统 , 对于移动端开发 , 其平台是移动端操作系统 , 对于web端开发 , 其平台是各类型的浏览器 。
嵌入式编程是直接在硬件层面的编程 , 程序加载(固化)到可擦写ROM存储器(掉电可读) , 所谓的烧录也是通过较高电压硬性通过物理的方式改变存储单元 。 随着硬件技术的发展 , ROM与RAM的界限也已越来越模糊了 。
4 计算机指令格式
计算机的设计(主要是CPU)可从指令集出发 , 设计出对应的硬件逻辑层和微代码层 , 指令集的指令格式一般可以表示为: