计算机组成原理与汇编语言程序设计
完整的计算机系统由硬件系统和软件系统构成,二者相辅相成,缺一不可,3.计算机语言计算机语言是用户与计算机之间进行信息交流的工具。人们通过计算机语言来编写程序,指挥计算机工作。我们把计算机能直接识别的语言称为机器语言。它实际上是由计算机本身的指令系统构成的,这种语言的语句就是使计算机完成特定操作的各种指令。机器语言中的指令是用二进制代码来表示的,也叫机器码。早期的计算机上只能使用机器语言,因此用户必须用二进制代码表示的机器语言编写程序。很显然,二进制代码所表示的指令难记忆、难理解,编写工作量大而且容易出错,所以给编写程序、阅读程序带来了很多的困难。另外,机器语言是·种面向机器的语言,要求编程人员必须熟悉所使用的计算机硬件系统也就是掌握计算机的内部结构,因此,只有少数的专业人员可以使用机器语为了提高编写程序和阅读程序的效率,20世纪50年代初出现了符号程序设计语言,也就是汇编语言。它是在机器语言的基础上,用便于记忆的符号(称为助记符)代替二进制代码表示的操作码,例如ADD、SUB、MULDV分别表示加法、减法、乘法,除法操作,并允许使用符号表示指令以及数据的地址。但是,计算机不能直接识别汇编语言,因此用汇编语言编写的程序,计算机首先需要将它翻译成机器语言的程序,然后才能在计汇编语言程序机器语言程序(源程序)(目标程序算机上运行。这个转换(翻译)过程称为汇编,它是由称为汇编程序汇编程序的软件来实现的。其转换过程如图(完成汇编过程I-3所示。汇编语言是在机器语言的基础图I-3汇编语言的转换过程上实现的面向于机器的语言,它虽然比机器语言高级,但它仍然是与特定机器相关的语言。用这种语言编写的程序,改变机种程序就必须重写,也就是说程序的执行受机种的限制。同时这种语言与人们的传统解题方法还是相差甚远的。在人们的努力下,20世纪50年代末又出现了一种不是针对具体机种而是面向问题的计算机程序设计语言即高级语言。这种语言可以用于各种类型的计算机,不受机种的限制,而且使用计算机的人可以完全不必了解计算机的内部工作情况就可以使用它进行编程。如 BASIC语言、C语言、 PASCAL语言、 FORTRAN语言等。用高级语言编写的程序,也必须先将其转换成机器语言的程序才能执行,实现转换过程的方式有两种:编译方式和解释方式。其转换过程如图1-4所示。高级语言程序机器语言语言(源程序)目标程序)编译程序或解释程序图1-4高级语言程序转换为机器语言程序的过程编译方式是由编译程序也称为编译系统完成的。这种方式是将用户用高级语言编写的源程序中的全部语句转换成目标程序的机器语言程序,然后再执行机器语言程序。采用这种方式时,一个题目若要重复计算几遍,那么解决这个问题的源程序一经转换以后,只要源程序不变,就可以反复执行其机器语言的程序,不需要再经过转换的过程。所以,采用这种方式时,计算机执行程序的速度较快。但是,如果源程序有所改动,那么就需要重新终过转换的过程。 PASCAL、 FORTRAN采用的就是这种编译方式。解释程序又称为解释系统,由它完成解释方式的转换过程。解释程序采用的方法是按源程序语句的动态顺序逐句进行分析转换,也就是将源程序的条语句转换成机器语言后立即执行这条语句,然后再翻译执行下一条语句,如此重复直到程序结束。用这种方式实现转换的高级语言,初学者学习比较方便,而且比较容易掌握。如 BASIC语言采用的就是解释方式但是,也有的计算机语言是以汇编语言作为中间输出,如多数的C语言编译程序就是如此。由C语言程序转换成可执行程序的过程如图1-5所不,程序库C语言程序汇编语言目标执行(源程序中问输出程序C编译程汇编程序链接程F图I-5C源程序转换成可执行程序的过程首先由C编译程序读C语言源程序,并且把它变成汇编语,再由汀编程序将汇编语言的中间输出变成机器语言,即目标程序,最后出链接程序把目标程序和存放在程序库里的有关信息链接装配在一起,产生可执行的程序三、计算机系统的层次结构现代计算机系统是一个十分复杂的硬件、软件结合的整体。它们二者之间是相辅相成、缺一不可的。计算机系统的层次结构可用图1-6来表示层次结构图表示了计算机系统软件硬件的组成及相互之间的关系。没有软件系统的计算机称之为裸机,它只是具有了计算的可能,即使接上电源,也不能工作。从层次结构图外层向内层看,它表明了从用户提出任务到硬件的执行过程。通常根据给定的问题,用户使用某种高级语言编统操(指(裸机)统写程序,在操作系统的控制下,调用语言处理程序完成源程序转换成目标程序的过应程序程,目标程序是用机器语言描述的,最后用由硬件执行机器语言程序。从计算机的层次结构来看,操作系统是用户与计算机硬图1-6计算机系统的层次结构件的接口,是用户的工作平台,指令系统是裸机与软件的接口需要强调的是,现代计算机系统的硬件和软件之间的分界线并不明显软件与硬件具有逻辑等价性,即任何一种操作可用硬件完成,也可以用软件来完成;任何一条指令的执行可以用硬件来完成,也可以用软件来完成。随着大规模集成电路技术的发展,软件硬化的趋势倍受重视,明确划分软件和硬件之间的界线也就更加困难。计算机系统总的发展趋势是硬件和软件两者统一融合,在发展中互相促进第二节计算机的基本组成和工作过程计算机通常分为模拟计算机和数字计算机两大类。模拟计算机是以连续变化的模拟量(如温度、流量、电流和电压等)为操作对象。其运算速度很高,但是精度和通用性较差,所以模拟计算机常用来作为特殊用途的计算机。数字计算机以离散的数字和逻辑变量为操作对象,具有表示的数值范围广、运算精度高、“记忆”功能强和应用面宽等特点。由于数字计算机具有这些明显的优点,所以得到了广泛的应用。本书中简称的计算机就是这类计算机计算机的基本组成计算机是一种能够自动、快速、准确地实现信息存储、数值计算、数据处理和过程控制等多种功能的电子机器。尽管现代讨算机在规模、运算精度和价格上有很大的差异,但是其基本原理却是大体相同的。一般来说计算机是由运算器、控制器、存储器、输入设备和输出设备这五部分组成,如图输入运算器输出1-7所示。设备设备该图所示的计算机结构是按匈牙利籍数学家约翰冯.诺依曼(John控制器存储器Von neumann)于1946年首先提出的“存储程序”的概念组成的,所以也称为冯诺依曼机。可以说冯诺依图-7计算机的基本组成曼机奠定了现代计算机的基础。存储程序”就是把指令用代码的形式事先输入到计算机的主存储器中,即用同一装置存储记忆数据和执行运算的命令。这些指令按一定规则组成程序,当计算机被启动后,程序〔指令序列)就会控制计算机按规定的顺序逐条执行指令,自动完成预定的信息处理任务,这就是“程序控制”,合起来简称为“存储程序控制存储程序控制”是计算机能够自动工作的关键。在计算机中,基本上有两种信息在流动,一种是数据信息,另一种是控制信息。数据信息是计算机加工处理的对象,包括各种原始数据、中间结果以及程序;控制信息控制计算机的工作,是以指令代码为基础由控制器译码后变为的各种控制信号二、计算机基本部件的功能计算机是由运算器、控制器、存储器、输入设备和输出设备这五个基本部件组成的。下面讨论一下基本部件的功能。1.运算器(ALU— arithmetic logic unit)运算器是由电子线路构成的对数据进行加工处理的部件。运算器的主要功能是执行算术运算和逻辑运算,所以也称之为算术逻辑部件ALU,它的核心部件是加法器。除此以外,运算器还具有移位、比较等功能2.控制器(CU- -Control unit)控制器是计算机的控制中心,它统一指挥计算机的各部分协调地进行工作。它能根据事先给定的命令发出各种控制信号,使整个工作过程一步一步地进行。控制器的实现方式一般有两种,即组合控制逻辑器和微程序控制器。组合逻辑控制器的特点是以尽量少的逻辑门来完成所需的功能,这样可减少成本、降低功耗,但它导致了结构的非规则性,使各控制信号的组合逻辑之间存在着复杂的相互牵连的关系。微程序控制器克服了组合逻辑控制器设计繁琐、难以修改、维护困难等缺点,虽然其设计过程复杂,但有定的规律可循,尤其是可编程只读存储器的应用,为微程序控制器的设计提供了更大的灵活性和适应性,应用越来越广泛。但微程序控制器的速度因为受控制存储器的限制,不如组合逻辑控制器的速度快。运算器和控制器合起来称为计算机的中央处理器(CPUCentralProcessing Unit)或者简单称为处理器(处理机)。3.存储器( Memory存储器是计算机的记忆部件,它是用于存放程序和数据的装置。在计算机中程序是计算机操作的依据,数据是计算机操作的对象。存储器按其作用可分为内存储器和外存储器两种。内存储器又称为主存储器,一般简称为内存,它可以与CPU、输入设备和输岀设备直接交换或传递信息。现在的内存是由半导体大规模集成电路(LSⅠ)、超大规模集成电路(VLSⅠ)组成的,具有存取速度快、体积小集成度高等特点。从计算机使用的角度来看,内存容量越大越好,但由于受技术上的限制以及价格因素的影响,内存空间是受限制的,也就是说,计算机的内存不可能特别大外存储器又称为辅助存储器,一般简称为外存,它是为弥补内存容量不足而配置的大容量的存储器,主要用于存放CPU暂时不用的程序和数据外存的信息一般不能直接与CPU、输入设备、输出设备交换或传递,当CPU要使用外存中的程序或数据时,需要先把它们调入到内存中,然后再供CPU使用。外存储器具有存储容量大、成本低、数据能长期保存的特点,常用的外存储器有软磁盘、硬磁盘和光盘等。通常把运算器、控制器和存储器(内存)合称为计算机的主机。4.輪入设备( Input device)输入设备是计算机从外部获得信息的设备,它将人们熟悉的待处理信息转换为计算机能识别和接受的电信号送入计算机内部进行处理。最常用的输入设备有键盘、鼠标器和扫描仪等。5.输出设备( Output Device)输出设备把计算机内的信息转换成能为人或其他设备所接收和识别的形式(如文字、声音、图像和电压等),并提供给外界使用的部件。常用的输出设备有显示器、打印机、绘图仪等。输入输出设备是人与计算机直接对话的工具,是人、机联系的桥梁。输入设备和输出设备又称IO设备,而IO设备和外存储器又统称为计算机的外围设备计算机中各功能部件通过地址总线( Address bus)、控制总线( ControlBus)和双向的数据总线( Data Bus)联系在一起三、计算机的基本工作过程为讨论计算机的基本工作过存储体程,有必要先讨论一下存储器存储单元中央处埋器的结构00u1.存储器地址总线数据总线计算机为了实现自动计算的地址译码器功能,需要人把实现这个计算的步步命令即一条条指令通过输llll入设备预先存放到存储器中。存读写命令储器是由存储体、地址译码器和读写控制电路读写控制电路组成的,存储器的图1-8存储器的基本结构基本结构如图1-8所示。存储体是由储存信息的介质组成的,它的主要功能是存储以二进制代码表示的程序和数据。存储体被划分成许多相等的单元即存储单元,存储单元的每一位存储一位二进制数“0”或“1”。存储器是按地址访问各存储单的,为了区分不同的存储单元,需要给每个单元规定一个编号,这个编号般是按存储单元的顺序进行的,存储单元的编号称为存储单元的地址,存储单元所存放的数据称为存储单元的内容存储器中的不同存储单元,是由地址总线上送来的地址(二进制数)经过存储器中的地址译码器来确定的。由此可见,地址译码器的功能是将地址总线提供的地址码进行翻译,产生与地址码对应的存储单元的选通信号为与该单元交换信息创造条件。存储器的操作有两种,即“读”操作和“写”操作。存储器的“读”操作指的是把存储单元的内容经由数据总线取出的操作,即取数操作,而存储器的“写”操作指的是把数据经由数据总线送入存储单元的操作,即送数操作。实现哪一种操作是根据CPU通过控制总线发来的控制信号,由存储器的读写控制电路确定的。读”操作的具体过程为1)CPU给出要访问存储单元的地址,经由地址总线送入存储器的地址译码器。2)存储器的地址译码器对其进行译码,产生选通信号,即找到相应的存储单元。3)CPU发“读”控制命令,将存储单元的内容送至数据总线,完成“读”操作。“写”操作的具体过程为1)CPU给出要访问存储单元的地址,经由地址总线送入存储器的地址译码器2)存储器的地址译码器对其进行译码,产生选通信号,即找到存储单元)将要写入的数据送至数据总线,CPU发“写”控制命令,将数据送入存储单元,完成“写”操作。2.中央处理器图1-9是中央处理器的基本结构图。它包括算术逻辑部件、数据寄存器、地址寄存器、程序计数器、指令寄存器、指令译码器、微操作控制器以及内部总线等。ALu微操作控制器程序计数器指令译码器地址寄存器指令寄存器存储器数据奇存器图1-9中央处理器的基本结构图数据寄存器用于暂存由内存读出或向内存写入的一条指令或一个数据字。数据寄存器可以缓冲和补偿CPU与内存、外围设备之间在操作速度上的差距,对CPU与内存、外围设备之间的信息传送起中转站的作用指令寄存器用于存放从内存中取出的指令,为指令译码器提供操作码。指令译码器接收指令寄存器中的操作码字段,对指令的操作码进行译码,以识别出所要求的操作,向徽操作控制器发出具体操作的信号。微操作控制器的功能是根据指令译码器的输出去完成这条指令的动作。它的输入信号主要来自指令译码器、时序电路以及某些部件现有状态的反馈信号,其输出是一些指挥其他部件动作的一系列控制信号。程序计数器(PC)又称指令地址寄存器,存放着当前要执行指令的地址。计算机通常按顺序逐条执行存放在存储器中的指令,程序中的指令也是条条地顺序存放的,所以,一般情况下每执行一条指令程序计数器(PC自动加1,以指向下条指令的地址,保证指令的顺序执行。当遇到转移指令时,后继指令的地址由指令寄存器中的地址码部分获取,这时,将要执行的指令不是按顺序方式获取的,而是由转移指令来确定地址寄存器用来存放当前CPU要访问的内存单元的地址。由于内存和CPU之间存在着操作速度上的差异,因此必须使用地址寄存器对地址信息加以保持,直到内存的读或写操作完成为止。3.工作过程计算机的工作过程实际就是执行程序的过程,而程序是由若干条指令组成的,因此,执行程序的过程就是逐条地执行指令的过程。而执行每条指令又分成取指令过程(取指令操作码)和执行指令过程(进行具体的操作)所以计算机的工作过程就是不断地取指令和执行指令的过程。计算机执行程序过程的示意图如图1-10所丌存储器中存储的—系列指令指令周期指令1指令格式取出指令取操作码操作数指指令指令译(地址码)程序操作数读出[执捐令口指令执行行图1-10计算机执行程序过程的示意图计算机若要执行某个程序,该程序必须存放在内存储中。当计算机从停机状态进入运行状态的时候,首先将该程序的入口地址(第一条指令所在的地址)赋给程序计数器PC,然后计算机就进入取指阶段。在取指阶段,按照程序计数器PC所提供的地址,从对应的存储单元中取出指令,因为是取指阶段,所以再把从存储单元中取出的内容通过数据寄存器送至指令寄存器IR,同时改变程序计数器PC的内容,使其指向下…-条指令地址。指令译码器对指令的操作码译码,由徽操作控制器产生该指令对应的微操作命令序列,计算机就进入到指令的执行指令阶段。在执行指令阶段,计算机执行指令所规定的具体操作。一条指令执行完毕,就转到下一条指令的取指阶段如此周而复始地循环,直到遇到暂停指令为止。由于每条指令的取指阶段都是由一系列相同的操作组成的,所以称之为
暂无评论