01、Assembly--计算机概述

计算机系统概述

计算机系统包括硬件(Hardware)和软件(Software)两大部分。

硬件(Hardware)是指构成计算机的实在的物理设备。
软件(Software)一般是指在计算机上运行的程序。

微型计算机(Microcomputer),简称微机,是最常使用的一类计算机,在科学计算、信息管理、自动控制、人工智能等领域有着广泛的应用。

计算机硬件

冯·诺依曼设计思想的计算机由5大部件组成:控制器、运算器、存储器、输入设备和输出设备。

控制器是整个计算机的控制核心;
运算器是对数据进行运算处理的部件;
存储器是用来存放数据和程序的部件;
输入设备将数据和程序变换成计算机内部所能识别和接受的信息方式,并把它们送入存储器中;
输出设备将计算机处理的结果以人们能接受的或其他机器能接受的形式送出。

现代计算机对冯·诺依曼计算机结构进行改进,五大部件演变为三个硬件子系统:处理器、存储系统和输入输出系统。

传统的存储器也发展成为存储系统,由寄存器、高速缓冲存储器、主存储器及辅助存储器构成。

处理器和存储系统在信息处理中起主要作用,是计算机硬件的主体部分,通常被称为“主机”。
输入设备和输出设备统称为外部设备,简称为外设或I/O设备;

为简化各个部件的相互连接,现代计算机广泛应用总线结构如下图:
01、Assembly--计算机概述

处理器

处理器是计算机的运算和控制核心,微机中可被称为微处理器(Microprocessor)。人们习惯称它为CPU。

处理器芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。

高性能处理器内部非常复杂,例如运算器中不仅有基本的整数运算器、还有浮点处理单元甚至多媒体数据运算单元,控制器还会包括存储管理单元、代码保护机制等,为提高存储器的性能还会集成高速缓冲存储器。

我们常用的PC采用美国英特尔(Intel)公司的80x86系列处理器与兼容的处理器。

Intel 80x86系列处理器,它们都源于16位结构的Intel 8086处理器,而8086具有的所有指令,即指令系统是整个Intel 80x86系列处理器的基本指令集。

存储器

存储器(Memory)是计算机的记忆部件,存放程序和数据。存储系统由处理器内部的寄存器(Register)、高速缓冲存储器(Cache)、主板上的主存储器和以外设形式出现的辅助存储器构成。

按所起作用,存储器可分为主存储器和辅助存储器。

主存储器:主要用来存放当前正在运行的程序和等待处理的数据,也就是内存。
辅助存储器:主要由磁盘、光盘存储器构成,以外设的形式安装助机器上,比如硬盘。

按读写功能,存储器可分为可读可写存储器RAM(Random Access Memory)和只读存储器ROM(Read Only Memory)。

RAM:可读可写,存放在RAM芯片上的信息断电后将会丢失。
ROM:只能读取,在芯片中的信息则可在断电后保存。

外部设备

外部设备是指计算机上配备的输入(Input)设备和输出(Output)设备,也称 I/O 设备或外围设备,简称外设(Peripheral),其作用是让用户与计算机实现交互。

计算机上配置的标准输入设备是键盘、标准输出设备是显示器,二者又合称为控制台(Console)。

由于各种外设的工作速度、驱动方法差别很大,无法与处理器直接匹配,所以就需要有一个I/O接口来充当外设和主机之间的桥梁。

系统总线

总线(Bus)是用于多个部件相互连接、传递信息的公共通道,物理上就是一组公用导线。

系统总线上传送的信息包括数据信息、地址信息、控制信息,因此,系统总线包含有三种不同功能的总线:

数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。

微型计算机通过系统总线将各部件连接到一起,实现了微型计算机内部各部件间的信息交换。

对汇编语言程序员来说,处理器、存储器和外部设备依次被抽象为寄存器、存储器地址和输入输出地址,因为编程过程中将只能通过寄存器和地址实现处理器控制、存储器和外设的数据存取及处理等操作。

计算机软件

一个完整的计算机系统包括硬件和软件,而软件又分为系统软件和应用软件。

系统软件

系统软件是为了方便使用、维护和管理计算机系统的程序及其文档,通常由计算机生产厂商或者软件公司提供,其中最重要的是操作系统。

操作系统OS(Operating System)管理着系统的软硬件资源,交互界面、驱动程序来为其他程序构建稳定的运行平台。

应用软件

应用软件是解决某个问题的程序及其文档,大到用于处理某专业领域问题的程序,小到完成一个非常具体工作的程序。

大型的应用软件项目要借助软件开发工具包,这个开发工具是进行程序设计所用到的各种程序的有机集合,所以也被称为集成开发环境,包括文本编辑器、语言翻译程序,有用于形成可执行文件的连接程序,以及进行程序排错的调试程序等。

程序设计语言

程序设计语言就是程序员用来编写程序的语言,它是人与计算机之间交流的工具。

程序设计语言可以分为机器语言、汇编语言和高级语言。

机器语言

计算机能直接识别由二进制数0和1组成的代码。机器指令(Instruction)就是用二进制编码的指令,指令是控制计算机操作的命令。

通常某种处理器支持的所有指令集合就是该处理器的指令集(Instruction Set)。

用机器语言形成的程序是计算机唯一能够直接识别、并执行的程序,而其他语言则必须经过翻译、变换成机器语言程序。

例如,完成两个数据100和256相加的功能,在8086处理器的二进制代码序列如下:

10111000 01100100 00000000
00000101 00000000 00000001    

机器语言由二进制代码组成,由于难于阅读和理解,并且表达的信息很冗长,所以为了简化表达而使用十六进制。

一个十六进制位可以表达四位二进制数,并且易于相互的转换,十六进制由0-9和A-F来表示,其中A-F表示十进制的10-15。

所以上述二进制代码序列使用十六进制的表示为:

B8 64 00
05 00 01    

汇编语言中,习惯使用后缀字母区别不同进制的数据:

二进制:使用字母B或b来表示,来自二进制英文单词Binary。
十进制:使用字母D或d来表示,通常不需要特别的说明,可以省略。
十六进制:使用字母H或h来表示,来自十六进制的英文单词Hexadecimal。

汇编语言

为了克服机器语言的缺点,通常使用便于记忆的描述指令功能的符号来表示机器指令,称为助记符(Mnemonic)。

例如,实现100与256相加的MASM汇编语言程序片段如下:

mov ax, 100
add ax, 256

第一条指令是讲数据100传送给名为AX的寄存器,而MOV四传送指令的助记符,实现赋值功能。

第二条指令实现加法操作,ADD是加法指令的助记符。

汇编语言是一种符号语言,它用助记符表示操作码,比机器语言容易理解和掌握、也容易调试和维护。

高级语言

高级语言比较接近于人类自然语言的语法习惯及数学表达形式,它和机器语言无关(使用简单)。

目前,计算机高级语言已有上百种之多,得到广泛应用的有十几种,每种高级语言都有其最适用的领域。用任何一种高级语言编写的程序都要通过编译程序(Compiler)翻译成机器语言程序(称为目标程序)后计算机才能执行,或者通过解释程序边解释边执行。

比如用高级语言表达100与256的相加,将四通常的数学表达形式:

100 + 256
上一篇:.NetCore3.1使用AutoFac依赖注入


下一篇:Autofac 学习