一、MPU、总线简介以及汇编和接口概述

1.   CPU和MPU的关系:

       a. CPU(Central Processor Unit,中央处理器):

            i.   通常情况下等同于MPU,作用都是运算和控制,是计算机的心脏;

            ii.  但是严格来说它应只包含控制器、运算器和寄存器;

            iii. CPU和其它功能器件一起被集成在一个超大规模集成电路芯片上,而这个芯片才叫做MPU;

       b. MPU(Micro Processor Unit,微处理器):

            i.   严格来讲CPU集成在MPU上,但通常将MPU和CPU等同;

            ii.  是微机的核心部件,对微机的各个硬件发出控制信号以控制其行为,而MPU的核心才是CPU;


2.    MPU的组成部分以及相关概念:

        a. 微处理器内部数据总线宽度

             i.   也称为CPU字长;

             ii.  即CPU可同时操作的二进制数的位数;

             iii. 平时所说的32位机和64位机指的就是这个;

             iv. 目前常用的CPU都是64位的,即一次可传送64位二进制数;

         b. 运算器:主要进行逻辑运算和算术运算;

         c. 控制器:控制程序的执行,对机器指令进行译码、寄存,并按照指令完成指定的操作;

         d. 寄存器:存放操作数、中间数据以及结果数据;


3.   微机(即主机)的组成体系:

      a. 由于所有的硬件设备(不管是打印机、屏幕还是游戏手柄等)都要与MPU交互,即硬件设备将信号传给MPU,等待MPU回馈指令来控制各个硬件;

      b. 因此从这个角度来看各个硬件设备都可以抽象成输入输出设备,人通过操作硬件(移动鼠标、敲击键盘等)将产生的数据输入MPU进行计算,然后返回控制信息并输出至相应的硬件操纵其行为(比如屏幕显示一定的画面、声音系统发出指定的声音等);

      c. 因此经过此抽象,整个微机体系的组成包含以下元素:各个I/O设备、各I/O设备相应的接口、存储器(内存)、MPU;

      d. 拓扑结构:

           i.   双总线结构:

                *1. 以CPU为中心的双总线结构:CPU以I/O总线和各个I/O设备相连同时以存储总线和存储器相连;

                *2. 以存储器为中心的双总线结构:存储器以以I/O总线和各个I/O设备相连同时以存储总线和CPU相连;

                *3. 现在一般采用后者,因为CPU内部及其复杂,因此其引脚多而连接复杂,而存储器内部非常规整,其引脚少而连接简单,因此后者可以大大减少CPU的引脚负载,降低整合整个体系的复杂性和成本;

           ii.  单总线结构:所有I/O设备、MPU和存储器都挂载在一条总线上,因此这种方式在同一时刻只能有一个设备占用总线传输数据;

      e. 主机(微机)就是指总线系统中除去接口的部分(MPU、内存及其支持部件),而计算机就是指以上的总线系统(包括接口);


4.   机器语言以及相关概念:

       a. 是机器指令的集合(实体,0101码)以及一组使用机器指令的规则(逻辑、抽象,人脑思维);

       b. 机器指令:用二进制编码,是MPU唯一能识别的指令,实际中使用模拟电路实现的高低电频来驱动计算机的电子器件;

       c. 目标程序:用机器语言直接描述的程序;

       d. 机器指令的构成: 

            i.   操作码在前、操作数在后;

            ii.  操作码指定操作或运算的类型,比如加、减、移动、存放等;

            iii. 操作数:在机器指令中操作数就是操作数的地址,CPU根据此项寻找到操作数所在单元,再将操作数从相应的存储单元中找出;

        e. 机器指令和机器的关系:

             i.   由于不同的MPU其内部硬件设计和结构不同,需要用不同的高低电频序列来驱动,因此对应了不同的机器语言指令集;

             ii.  MPU指令集(即机器指令)往往具有较好的向下兼容性,比如Pentium指令集包含了80x86指令集;

        f.  机器语言特点:

             i.   描述了数据在机器内部的流动(指令往往是指定一个数据从寄存器流向内存或者从内存流向其它地方等);

             ii.  要求使用者对机器内部结构非常熟悉;

             iii. 因此编写十分复杂,难于记忆、理解、交流,调试维护相当难;


5.   汇编语言的基本概念:

       a. 汇编指令:机器指令符号化的指令,与机器指令存在一一对应的关系;

       b. 指令助记符:用于表示机器指令中的操作码(即指令功能),用简单易懂的英文缩写表示;

       c. 符号地址:用于表示操作数,比如用AL表示CPU寄存器地址等;

       d. 汇编语言的完整组成:

            i.   汇编指令:a.中已经讲过

            ii.  伪指令:汇编编译器中特有的指令;

                 注意区分汇编指令和伪指令:汇编指令和机器码有一一对应关系,是控制机器的指令,属于机器特有,而伪指令是操纵编译器行为的指令,是编译器特有的,例如mov指令就是汇编指令,就可以直接操作CPU、内存等,而END指令就是伪指令,可以直接操纵编译器,让编译器编译到END就不再编译,因此汇编指令是硬件层面上的指令,而伪指令是软件层面上的指令(汇编程序是一种典型的软件);

            iii. +、-、*、/等符号:属于编译器的符号,由编译器识别,不属于汇编指令;

       e. 与汇编有关的两个术语:

            i.   汇编:将汇编源程序翻译成相应的目标程序(机器语言)的过程;

            ii.  汇编程序:完成汇编任务的程序;


6.   汇编语言的特点:

       a. 与机器(具体来讲是MPU)有密切联系:这是由汇编语言是机器指令符号化(一一对应)决定的,机器语言和MPU密切相关,所以汇编语言也与MPU密切相关,不同MPU会对应不同的汇编语言,因此通用性和可移植性差,但是能最直接有效地控制机器,只是高级语言所办不到的;

       b. 执行效率高:汇编所得的程序在时间和空间上都非常高效(运行时间短,目标程序小),原因一是汇编语言是机器指令的符号化,简单、直接、不累赘,而是能充分利用机器系统的许多特性(面向底层,面向机器);

       c. 源程序繁琐:因为汇编语言面向机器,不像高级语言那样具有通用性,而必须考虑具体机器的具体细节,还有就是不支持高级的运算(比如连续、个操作数的运算,只能一次两个一次两个的运算等);

       d. 调试维护困难、移植更困难:面向机器造成的,有时为了追求效率导致源程序结构不清晰;  


7.   汇编语言的使用场合:

       a. 对软件的执行时间以及空间限定非常严格:比如制导,要求计算时间非常快,还有就是一些小型单片机,内存非常小,只有几百k,不允许使用分配空间很大的高级语言编写;

       b. 大型软件中需要提高性能的部分:在执行频率非常高的子程序中嵌入汇编程序;

       c. 软件需要直接有效地控制硬件:设备驱动、嵌入式等;

       d. 没有合适的高级语言场合;


8.   指令、数据、总线简介:

       a. 指令和数据在存储设备中都是二进制数据,本质上没有任何区别,一条二进制数据既可以理解为指令也可以理解为数据;

       b. 只有通过总线类型来区分指令和数据;

       c. CPU对存储器读写的过程:

            i.   CPU从数据总线读取命令,并将其分解控制信息和地址信息,比如将mov ax,bx分解成控制信息mov和地址信息ax、bx;

            ii.  通过地址总线将目标存储单元的地址信息发出;

            iii. 通过控制总线将控制信号发出(读还是写,或者是移动、中断等等控制信号);

            iv.  通过数据总线传输数据,如果是读的话就从相应地址处将数据通过数据总线传给CPU,而写的话是将CPU中的数据通过数据总线传到存储器的相应地址处;


9.   总线宽度:

       a. 地址总线:

            i.   所有存储单元都是以字节为单位的;

            ii.  地址总线中的地址和每一个存储单元相对应,即每一个地址都对应一个字节;

            iii. 地址总线宽度所表示的二进制组合的数量就是其可控制的存储单元的数量;

            iv. 宽度就代表的寻址能力,如果宽度为16位,就表示其可以寻址2的16次方(即64K,1K表示2的10次方)个存储单元的空间,因此其寻址能力是2的16次方个字节,即64KB;

       b. 数据总线:

            i.   其宽度直接对应数据的二进制位数,因此用数据总线计算数据容量时以位(Bit)计,注意和地址总线区分开来;

            ii.  宽度就代表CPU和其它设备之间一次数据传送量的大小,比如数据线宽度为32位,就以为着其一次性可以传送32位(即4字节大小)的数据;

       c. 控制总线:宽度就代表CPU对外部器件的控制能力,如果宽度为n,则意味着CPU可以产生2的n次方中不同的控制信号;


10.   接口和外设:

       a. 前面讲过了,MPU是计算和控制的中心,所有硬件都需要和MPU进行交流,因此必须要通过某种方式将它们连接在一起(之前也讲过,即双总线、单总线结构);

       b. 将所有和MPU连接的功能设备(硬件)都称为外围设备,简称外设,严格定义中内存也算外设,磁盘就更不用说了,也必然属于外设;

           注:严格来讲,只有CPU才算计算机,其它和它连的一切都只能算外设;

       c. 在连接中将外围设备(不包括内存)都抽象成I/O设备;

       d. 由于微机体系整合中采用总线模式(即总线中不提供任何和外设有关的特性,一律用统一的形式控制,通俗点说就是无视各种外设的特性,采用唯一、统一的规则进行控制),而各种外设又是多种多样的,而设备中控制的是模拟信号,而总线系统中控制的是数字信号,所以必须通过接口实现外设和MPU的信息交换;

           注:外设中只有I/O设备和总线系统之间有接口,接口是针对外设和总线系统之间的,内存和MPU包含在总线系统中,因此内存没有所谓的接口;

                  总的来讲,精确地说:

                  i.   总线系统包含各种I/O设备的接口、内存和MPU,而总线系统就是计算机;

                  ii.  微型计算机是指MPU、内存及其支持部件;

                  iii. 接口是I/O设备和微机的桥梁,而且接口和微机共同组成总线系统,或者说总线将它们连接整合在一起;

                  iv.  而I/O设备、接口、微机和其它支持部件共同组成平时我们常说的“主板”;


11.   微机应用:

       a. 内容是将微机和外设进行整合连接,通过微机的计算和控制使这一整体能完成特定的功能,比如科学计算、数据采集、图像处理等,根据这些特定功能都能设计相应的微机应用系统;

       b. 其核心技术就是接口技术:

           i.   其内容是,外设和微机都已经存在了,然后设计接口将它们整合在一块,比如造了一台显示仪,设计接口将其和80x86CPU微机相连,完成控制功能;

           ii.  两个方面的设计:

                *1. 硬件方面的设计:接口电路的设计,完成D/A、A/D转换(模电、数电);

                *2. 软件方面:设计控制接口电路的驱动程序;

        c. 接口技术的特点:

            i.   综合性:设计软硬件综合技术;

            ii.  复杂性:不仅要对微机结构和指令系统非常了解,也要对外设的原理和特性非常了解;

            iii. 总的来说是软硬结合以硬为主,机电结合以电为主(特别是模电),多技术学科交叉,实践性很强;

你可能感兴趣的:(汇编与接口)