微机原理与汇编语言程序设计(微机原理篇).doc_第1页
微机原理与汇编语言程序设计(微机原理篇).doc_第2页
微机原理与汇编语言程序设计(微机原理篇).doc_第3页
微机原理与汇编语言程序设计(微机原理篇).doc_第4页
微机原理与汇编语言程序设计(微机原理篇).doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与汇编语言程序设计(微机原理篇) 第一章 微型计算机概论 本章主要介绍微型计算机系统的基本概念、组成、功能、工作原理、特点及计算机内的信息表示和运算,包括微处理器、微型计算机和微型计算机系统的定义、微处理器的发展历程、微型计算机的分类、计算机的运算基础等。1.1 微型计算机简介微型计算机是计算机设备的一种,相对于其他类型的计算机而言有着体积小、重量轻、价格低、使用灵活、用途广泛等特点,是人们使用最为广泛的一种计算机设备。1.1.1 微处理器、微型计算机和微型计算机系统 很多人对于“计算机”这个概念比较模糊,常常把微处理器、微型计算机和微型计算机系统混为一谈,其实它们有着明确界限的,如图1.1所示。 图1.1 微型计算机系统、微型计算机与微处理器微处理器是指由一片或几片大规模集成电路组成的中央处理部件,包括运算器、控制器和一定数量的寄存器。它具有数学运算、逻辑判断、地址计算等功能,是微型计算机的核心。微型计算机是指以微处理器为基础,配以内存储器和输入输出接口电路和辅助电路构成的一个相对独立的电路系统。这个电路系统可以是一个独立的集成电路,称为单片机;也可以是一块电路板,称为单板机;还可以是多块以一定方式连接在一起的电路板,常称为“个人计算机”(Personal Computer)。微型计算机系统则是指微型计算机在配以相应的外围设备(如键盘、鼠标、显示器、光驱、硬盘等),以及电源、机箱等硬件基础上,安装必要的软件构成的系统,这个系统应具有数据处理、数据存取、数据传输等基本功能。人们理解的计算机往往只注重硬件,较少注意软件的存在,实际上离开了软件计算机什么事都做不了。需要注意的是,不要把这里的微处理器与单片机混为一谈,这里所说的微处理器是我们常见的通用CPU(如Interl X86系列),仅仅包括运算器、控制器和寄存器构成的集成电路,它无法直接与输入输出设备交换程序和数据而工作。单片机虽然也是集成电路形式,但是由于单片机内集成了接口电路、内存储器甚至A/D、D/A转换器等功能部件,使得单片机可以直接与外部存储器、输入输出设备等进行程序和数据交换,可以独立工作,因此单片机不是简单的微处理器,它被看作是一种微型计算机。单片机中集成接口和功能部件的不同常常使其具有一定的专用性。1.1.2 微型计算机的发展由于微处理器是微型计算机的核心,它决定了微型计算机的处理能力,因此人们往往以微处理器的发展状况来衡量微型计算机的发展水平。世界上第一个微处理器是1971年Interl公司推出的Inter4004微处理器,它集成了2300个晶体管,能实现4位运算,工作频率最高为740kHz。微处理器在经过了30多年的发展后,现在已经实现了集成度高达数亿晶体管,具备64位数据处理能力,工作频率高达几GHz的多内核微处理器。微处理器发展过程中,根据微处理器位宽的不同,可以将其划分为5代。第一代(19711973年)是4位微处理器和低档8位微处理器时期。典型产品包括:1971年10月的Iterl 4004(4位微处理器);1972年3月的Interl 8008(8位微处理器)集成3500个晶体管。第二代(19731978年)是8位微处理器时期。典型产品包括:1973年的Iterl8080,集成600个晶体管;1974年3月的MC6800;1975年的Zilog的Z80;1976年的Iterl 8085,集成9000个晶体管。第三代(19781983年)是16位微处理器时期。典型产品包括:1978年的Iterl 8086,首枚具有X86架构的CPU,集成2.9万个晶体管;1979年的Zlog Z8000;Motorola的MC68000;1982年的Interl 80286。第四代(19832001年)是32位微处理器时期。典型产品包括:1983年Zlog的Z80000;1984年7月Motorola的MC6820;1985年的Iterl 80386,集成27.5万个晶体管,时钟最高40MHz;Interl公司以后生产的80486,Pentium(数据线宽度开始成为64位),Pentium Pro,Pentium MMX,Pentium II,Pentium III,Pentium 4;AMD 公司1995年以后开始生产的K5,K6,Athron,Duron等。第五代(2001年以后)是64位微处理器时期。典型产品包括:2001年的Interl64位安腾微处理器,2002年安腾2微处理器(IA-64架构,用于服务器);2003年9月,AMD公司推出用于桌面平台的Athron 64系列微处理器;2004年8月,Interl 公司推出Pentium 4F系列微处理器;2005年5月,AMD公司推出双核64位微处理器Athron 64 X2;2005年7月Iterl公司推出64位微处理器Pentium D;2007年1月,Iterl 公司推出64位4核微处理器Core 2(酷睿2);2007年10月AMD公司推出64位四核微处理器Phennom X4(羿龙)。微处理器的发展正如摩尔定律所描述的那样,每18个月单片集成电路上的晶体管数量就会增加一倍,而且性能提高一倍。但是随着微处理器集成度的进一步增加,人们已经深入到原子量级进行集成电路设计了,再按照摩尔定律的规律发展会越来越困难,这促使人们去寻找新的思路和途径,去进一步提高微处理器的性能,比如设计多核微处理器,通过加大并行数据处理的能力提高总体运算能力。需要注意的是,不要把摩尔定律看作是一个客观规律,它只是对半导体技术发展的一种预测,可以看作是人们在半导体设计和研究领域为自己设定的一个目标。这个目标是否能够实现并不完全取决于客观事物本身,更多是需要通过科研工作者不懈的努力才能达到。从目前来看,随着半导体技术的快速发展,一些工艺水平已经接近物理极限,摩尔定律所给出的目标已经越来越难以达到了,可能在不久的将来摩尔定律所预测的指标会成为一个理想,而不再能够真正被实现了!1.1.3 微型计算机的分类微型计算机的主要分类方式有两种:一种是按照CPU的字长进行分类,所谓字长就是CPU在单位时间内(同一时钟)能一次处理的二进制数的能力,字长用“位”来表示,一位表示一个二进制bit(比特),有字长多少位就表示该CPU能够一次处理多少bit信息;另一种是按微型计算机的组装形式和系统规模分类。1按CPU字长分类 根据处理数据字长的不同微型计算机一般可以分为以下5类。 4位微型计算机:CPU字长为4位,单次数据处理能力为4位(由于功能太弱已经逐渐被淘汰)。 8位微型计算机:CPU字长为8位,单次数据处理能力为8位, 在一些简单控制领域(如电梯、家用电器等)使用。 16位微型计算机:CPU字长为16位,单次数据处理能力为16位,由于生产成本的不断下降,正在逐渐取代8位的微计算机,用于一些简单控制领域。 32位微型计算机:CPU字长为32位,单次数据处理能力为32位,功能强大,主要应用于通信设备、多媒体处理设备、智能仪器等方面。 64位微型计算机:CPU字长为64位,单次数据处理能力为64位,是目前功能最强的微型计算机系统,主要用作PC机、游戏机等设备。目前微型计算机已经进入了64位时代,多核多线程的64位微型计算机系统已经成为个人计算机的主流。2按微型计算机的组装形式和系统规模分类 微型计算机根据其规模可分为三类。 单片机:将CPU、RAM、 ROM及I/O接口电路集成在一块集成电路芯片上,以芯片的形式出现的微型计算机。提供电源后可以独立工作,也可以连接一定的外围部件构成较复杂的系统。这是目前使用量最大的一类微型计算机。常见的单片机有Interl51系列,Amel AVR系列,Motorola的MC系列等。 单板机:在一个电路板上集成了CPU、存储器、I/O接口电路和一定的输入输出设备,以单块电路板形式出现的微计算机。提供电源后可以独立工作,也可以与外围输入输出设备进行连接构成更加复杂的系统。常见的单板机有X86架构的PC104系统,ARM单板机系统等。 个人计算机:根据中国计算机学会主编的英汉计算机辞典的解释,所谓“个人计算机”(Personal Computer,PC), 是指“由微处理器芯片装成的、便于搬动而且不需要维护的计算机系统。”通常我们所说的个人计算机是指台式个人计算机和笔记本个人计算机,现在主流的是X86系列个人计算机和苹果公司的MAC系列个人计算机。由于早期个人计算机价格十分昂贵,所以通常是单位或少数个人购买的设备。但是随着电子技术的飞速发展和社会的不断进步,个人计算机价格不断下降,已经真正成为每个人可以拥有的“个人计算机”。现在个人计算机在商业、家庭生活、科学教育、工业生产、国防军备等各个领域发挥着不可替代的作用。1.2 微型计算机组成 我们目前使用的计算机都是按照1940年冯诺依曼提出的体系结构设计实现的,微型计算机也不例外,这种设计结构被人们称为冯诺依曼结构,其设计思想主要包括以下三点。 以二进制形式表示指令和数据。 程序和数据事先存放在存储器中,计算机工作时能高速地从存储器中取出指令并加以执行。 由运算器、控制器、存储器、输入设备和输出设备5大部件组成计算机系统。虽然经过了60多年,也有不少关于非冯.诺伊曼体系结构的计算机研究成果出现,但目前冯.诺伊曼结构仍然是计算机的主流系统结构。微型计算机由微处理器、输入/输出(I/O)接口和存储器通过一定的公共线路(总线)连接在一起组成。其基本结构如图1.2所示。 图1.2 微型计算机基本结构1.2.1 微型计算机组成部件微型计算机是由微处理器(MPU)、输入/输出接口(I/O)和内存储器(MEM)三部分组成。1微处理器微处理器是计算机的核心部件,由大规模/超大规模集成电路构成,在微处理器集成了运算器、控制器和一定数量的寄存器组。其中运算器又称为基本算术逻辑单元(Arithmetic Logic Unit,ALU)主要负责算术或逻辑运算以及移位循环等操作;控制器又称控制单元(Control Unit,CU),它是微机的指挥中心,用于完成指令读取,译码发出控制命令等操作;寄存器组(Register Set,RS)也叫寄存器阵列(Register Array,RA),是一组CPU内部的存储单元,只不过每个存储单元有固定长度、固定名称和相对固定的用途。寄存器可以分为通用寄存器和专用寄存器两类,通用寄存器用于临时存放运算的数据,而专用寄存器则用于存放一些特定的地址或状态参数,寄存器的访问速度与CPU同步。在微处理器中各组成部分通过片内总线实现信息交换,对计算机使用者而言这种片内总线是透明的,不需要了解片内总线结构的细节,只需要使用相应机器语句就可以实现一定的功能。2输入/输出接口输入/输出接口是微型计算机的重要组成部分,它包括输入接口和输出接口两部分。由于计算机需要和外界交换各种数据,这些交换通过输入/输出设备来实现,而不同输入/输出设备具有不同的接口特性,如电气特性、功能特性、时序特性等。这些特性的不同决定了输入/输出设备需要多样化的连接方式,并且在实际使用中,输入/输出设备的数量可以随需求增减,因此输入/输出设备无法与微处理器通过系统总线直接连接,需要通过一定的接口电路与CPU进行间接连接,这些接口电路统称为输入/输出接口。所谓输入/输出接口就是微型计算机与输入/输出设备之间的通道。这个通道按照一定的规则完成微型计算机与输入/输出设备的数据交换。在微型计算机中输入/输出接口通常是由专用集成电路构成,通过微型计算机的系统总线与微处理器交换数据,输入/输出接口电路是本课程要重点讨论的内容之一。3存储器存储器是微型计算机的记忆核心,微型计算机中所有的数据和程序都是通过存储器保存的。微型计算机中的存储器主要分为两类:一类称为内存储器,另一类称为外存储器。 内存储器由半导体器件构成,存储容量较小,通过微型计算机系统总线与微处理器连接,可以以很高的速度与微处理器进行数据交换。但是通常内存储器在断电后除特殊情况外,不再保存数据或程序。外存储器通常是由光、磁记录装置构成的设备,存储容量大,需要通过输入/输出接口与微处理器进行数据交换,数据交换速率较低,在断电后外存储器仍然可以保存数据,直到被修改或擦除。微型计算机中通常会同时配备内存储器和外存储器,外存用于永久存储数据和程序,内存储器用于数据处理过程中临时存放数据或程序。但是,在单片机或单板机系统中可以用专用的内存储器来永久存放数据和程序,而不配备外存储器设备。关于存储器有以下几个基本概念。 位(bit):一个二进制信息,它是二进制信息的最小单位(0或1),常用字母“b”表示。 字节(Byte):由8位二进制信息组成,字节是微型计算机中分配地址的基本单位,通常用字母“B”表示。 字(Word):计算机中作为一个整体来处理的一组二进制数,是字节的整数倍。通常与计算机内的寄存器、算术逻辑单元宽度一致。目前为表达方便,将字定义为16位,而双字定义为32位。字常用字母“W”表示,双字用“DW”表示。 存储器容量:通常以字节为单位表示,在内存中一个字节占用一个寻址地址,因此,人们常说的1G/2G内存,实际上是应该具有1G字节/2G字节存储容量的内存。在外存中,为了与内存表示一致,也以字节为单位表示容量,如160G硬盘,指的是能存储160G字节的硬盘。1.2.2 微型计算机三总线结构计算机中的部件需要与处理器、控制器进行数据交换,并在处理器和控制器的统一管理和调度下共同完成数据处理任务,因此一定的连接方式必不可少,不同计算机采用的连接方式可以有所不同。在微型计算机中采用总线结构连接微处理器、输入/输出接口、内存储器等部件,它们之间的信息传递通过总线进行。所谓总线,就是计算机中各功能部件间传送信息的公共通道,它是微型计算机的重要组成部分。总线结构使微机结构简单、易于维护和扩展。总线按照功能不同一般分为三类:数据总线(Data Bus,DB)地址总线(Address Bus,AB)和控制总线(Control Bus,CB)。. 数据总线(DB):微型计算机中所有的内存与输入/输出接口都是通过一组数据线与微处理器或其它控制部件进行数据交换的,这一组数据线被称为数据总线。根据微型计算机数据处理能力的不同,数据总线可以分为8位、16位、32位、64位等。. 地址总线(AB):微型计算机中与微处理器连接的内存和输入/输出接口数量巨大,为了使微处理器能够准确访问所有内存单元和输入/输出接口,每个内存单元和输入/输出接口都编有地址,微处理器通过一组地址线告知内存或输入/输出接口要操作的地址,从而准确地访问内存中的数据或输入/输出接口数据。这一组用于提供地址的线路称为地址总线。处理器地址总线的数量决定了微处理器可以访问的内存数量或输入/输出接口的数量。例如:一个微处理器地址总线为10根,则其最多能够给出210(1024)个地址,也就是说最多在该微处理器上可以连接1024个内存单元或输入/输出接口。. 控制总线(CB):微型计算机中所有的部件都是在微处理器的控制和调度下运作的。为了控制这些部件工作,需要微处理器提供一组特定功能的线路,这组线路称为控制总线。控制总线通常包括读、写、等待、使能、测试、响应等多种控制信号,利用这些信号,微处理器可以管理微型计算机中的各个部件,按一定的时序协调工作。 1.3 微型计算机工作原理微型计算机是一个数据处理设备,具备了数据处理的条件,但是如果没有对数据处理过程的描述,微型计算机就不可能完成任何有效的数据处理工作。也就是说,微型计算机只是完成数据处理的必要条件,如同算盘是一个计算工具,但如果不知道算法口诀,没有办法利用它进行正确计算。那么这种对数据处理过程的描述是如何实现,又是如何让计算机按照它所描述的过程进行数据处理的呢?这是下面微型计算机工作原理要讨论的内容。1.3.1 微型计算机基本工作原理微型计算机是一个由时钟驱动的数字电路系统。微处理器在一个或几个时钟信号驱动下,完成一次操作,一系列的操作完成一定的数据处理任务。对于同一个微型计算机而言,时钟的快慢将决定完成一次操作时间的长短,也就决定了其处理数据的速度。不过受微处理器电路特性的限制,时钟频率往往只能在一定范围内调整。微型计算机的微处理器在时钟的驱动下,逐一读取特定地址开始的程序(所谓程序就是描述数据处理过程的指令序列),按程序指定的动作控制微机从硬盘或其它存储装置中装载操作系统程序到内存。操作系统程序装入内存后,微处理器转到操作系统程序所在的内存地址开始逐一执行程序,由操作系统对微机进行控制,实现人机交互,完成各种应用功能。1.3.2 微型计算机基本工作流程微型计算机要逐一执行程序中的指令,实现程序要完成的任务,负责完成这一过程的核心部件是微处理器,那么微处理器又是如何完成指令的执行呢?微处理器对指令的执行一般分为以下三个步骤。 取指令:微处理器从存储器中将指令读取到微处理器内部,这是执行该指令的前提。读取指令首先要确定指令所在的地址,这个地址由微处理器内部的指令指针寄存器存放。在开机或复位时,该指针寄存器指向某个固定地址,以后每读取一条指令自动修改该寄存器指向下一条指令地址。 分析指令:也称为指令译码,微处理器通过分析读取的指令了解指令的功能和操作的对象等,从而为下一步执行做好准备。执行指令:根据指令分析的结果,微处理器发出一系列控制信号,指挥各部件完成该指令的功能,这样一条指令的执行就结束了。接着微处理器读取下一条指令进入下一个指令周期。微处理器就这样周而复始地执行程序中的指令并在指令控制下实现所需的功能。例如,有两个数求和的指令序列如下: MOV AL,2000H ;从内存中读取一个字节的数据到寄存器AL中 ADD AL,1OH ;将读取到AL中的数与10H相加,加的结果存放在AL中 OUT 20H,AL ;将AL中的计算结果输出到20H端口该指令序列在内存中存放情况如下: 2000:0000 A00020 MOV AL,2000H 2000:0003 0410 ADD AL,10H 2000:0005 E620 OUT 20H,AL 指令地址 指令机器码 指令汇编语言代码 设指令指针寄存器初始值为CS:IP=2000H:0000H,指向第一条指令。处理器首先根据该地址读取第一条指令 MOV AL,2000H(指令二进制值为A00020,读取后CS:IP将自动修改为2000H:0003H)。接着微处理器对读得的指令进行分析译码,分析译码后根据指令功能,读取DS:2000H地址处的一个字节数据到AL寄存器。第一条指令完成后读取下一条指令,此时指令指针为CS:IP=2000H:0003H,读取的指令为ADD AL,10H(指令二进制值为0410,读取后CS:IP将自动修改为2000H:0005H),该指令被分析译码后交给运算器进行加法运算并将结果存在AL寄存器中。第二条指令完成后接着读取第三条指令,此时指令指针为CS:IP=2000H:0005H,读取的指令为OUT 20H,AL(指令二进制值为E620,读取后CS:IP将自动修改为2000H:0007H),该指令被分析译码后将由微处理器将AL的数据传送给20H端口。通过循环往复地读指、分析和执行,一段程序就被处理完了。微处理器通常设计成取指令、分析指令、执行指令分别连续进行的方式。比如微处理器中的读指令部件只负责将指令连续的读到指令缓冲区中,分析部件只需要从指令缓冲区中取出指令逐一分析,执行部件根据分析结果完成相关操作,通过连续的流水执行提高微处理器的整体运行效率。 习题和思考1.1 什么是微型计算机系统,它与微型计算机之间的区别是什么?1.2 什么是微处理器,它与微型计算机之间的关系是什么?1.3 单片机与单板机有什么不同?1.4 请收集相关资料,说明单片机与PC机中的CPU的异同?1.5 简述冯.诺伊曼计算机体系结构的基本思想。1.6 请画出微型计算机的基本结构框图,并说明各部分功能。1.7 请说明微型计算机的基本工作流程,解释为什么CPU工作频率越高,微机处理数据的速度越快?1.8 思考为什么在计算机中不以bit(比特) 为单位分配地址,而是以字节为单位分配地址?1.9 试说明位、字节、字、字长、存储单元地址和存储容量的概念及相互关系。 第二章 微处理器系统结构 本章主要介绍微处理器的基本结构,包括寄存器结构、功能结构、存储器结构、输入/输出结构、总线结构、引脚信号等,说明8086/8088微处理器的基本时序,分节描述从8086到Pentium等80X86系列CPU的特点,重点介绍Interl8086/8088CPU。 2.1 微处理器的基本功能和结构微处理器是微型计算机的核心部件,也称为中央处理单元,简称CPU(Central Processing Unit)。它负责微型计算机中部件的协调,完成指令的执行和数据处理工作。其功能主要体现在4个方面。 指令控制:也称为程序顺序控制,使计算机中的指令或程序严格按照规定的顺序执行。 操作控制:将程序指令所产生的一系列控制信号分别送往相应的部件,从而控制这些部件按指令要求完成规定的功能。 时间控制:使计算机中各类控制信号严格按照时间上规定的先后顺序进行操作,以完成时序控制和总线操作。 数据加工:是指对数据进行算术运算或逻辑运算等操作,或对其它信息进行处理。微处理器的基本结构通常包括控制器、运算器、寄存器组等部件。运算器(Arithmetic Logic Unit,ALU):又称算术逻辑单元,它是计算机的核心功能部件,负责完成算术运算、逻辑运算及移位循环等功能。. 控制器:(Control Unit,CU):是计算机工作的指挥中心,负责按照一定顺序自动读取程序中的指令,对指令进行译码并产生相应控制信号,指挥各部件协同工作。寄存器组(Register Set,RS):是CPU中暂存数据和指令的逻辑部件,具有固定名称,固定长度,以及相对固定的功能,通常根据各寄存器功能的不同分为通用寄存器和专用寄存器。寄存器中进行存取操作要比内存中的存取操作快得多,因此主要起到数据准备、调度和缓冲作用。 2.2 微处理器的主要性能指标 微处理器的性能指标关系到微型计算机的性能,微型计算机的很多技术指标都与处理器相关。微处理器的主要性能指标包括以下几个部分。 频率。包括主频、外频、倍频。主频是微处理器的工作频率,反映微处理器工作节奏的快慢;外频是指系统总线的工作频率,它反映外部设备的工作速度;倍频是指微处理器工作频率对系统总线工作频率的倍数。三者之间的关系可以用下式表示: 主频=外频倍频 前端总线。前端总线(Front Side Bus,FSB)指主板芯片组中的北桥芯片与CPU之间传输数据的通道,因此也称为CPU的外部总线。北桥芯片负责CPU与内存之间的数据交换工作,因此,提高CPU与北桥之间的通信能力对于提高系统性能起着关键性的作用。在PIII出现之前这个总线的频率与外频是相同的。但是自从P4问世之后,前端总线频率与外频发生了变化,CPU与北桥芯片的数据传输开始采用QDR(Quat Data Rate,4次数据传输)技术, 于是FSB变成外频的4倍,从而缓解了CPU与外部数据交换的瓶颈,使系统总体性能得到很大提升。 地址总线宽度。描述微处理器可以访问物理存储空间的指标。微处理器通过地址总线表达其访问数据所在的地址,地址总线越多说明该微处理器可以给出的物理地址数越多,可以连接的物理内存就越大。如20根地址线可以访问220共1MB的物理内存空间,而32根地址线则可以访问232共4GB的物理内存空间。 数据总线宽度。描述微处理器与外界交换数据的能力指标。微处理器每一根数据线表示一个比特数据,数据线越多则表示每一次与外界交换的数据位数就越多,交换速度就越快。 高速缓存级数和容量。高速缓存(Cach)是设置在微处理器内部的一种存储器。由于其存取速度要比内存高一个数量级,可以达到与微处理器部件同频的工作速度,因此利用高速缓存可以提高处理器的工作效率。如果高速缓存达到一定的容量,将会对系统性能有很大的提升。但是由于高速缓存的制造成本较高,因此,并不是所有CPU内部的高速缓存都与处理器以相同速度工作。通常高速缓存被分成两级,一级容量较小能够与处理器同频工作,称为一级缓存(L1 Cache);另一级容量较大,比处理器频率稍低但比内存速度快,成为二级缓存(L2 Cache)。利用二级缓存的容量优势和一级缓存的速度优势,能够有效地提高系统存储器访问速度。 生产工艺。CPU生产工艺主要是指材料和制造技术。目前生产CPU主要是在半导体圆片上采用光刻技术加工各种电路和元器件,其精度一般用微米(m)或纳米(nm)表示。精度越高表示生产工艺越先进,可以在相同面积的硅片材料上生产出更多的元件,集成度就越高,这样生产出的CPU工作频率可以做得越高,功耗也会更小。一般来说“生产工艺”中的数据越小,表明CPU生产技术越先进。现在的PC平台使用的微处理器生产工艺为0.0350.09m。 其它。包括特殊指令扩展、超线程、流水线、乱序执行、动态执行,以及新一代CPU的双核、多核等体系结构方面的技术。当前,体系结构对现代微处理器性能的影响已经超过工艺对计算机性能的影响,成为现代微处理器设计的重要技术指标。 2.3 Interl 8086/8088微处理器8086微处理器是Interl公司于1978年推出的16位微处理器,属于Interl公司的第三代微处理器。与第二代8位微处理器相比除了数据总线和寻址空间的扩大外,更重要的是在8086/8088微处理器中开始实现流水线处理技术,大大提高了微处理器的整体性能。8088CPU是8086 CPU的简化版,其内部数据总线为16位,而外部数据总线只有8位,8086内部、外部数据总线均为16位。2.3.1 Interl 8086/8088 CPU的基本特点8086/8088微处理器采用了40引脚的双列直插(Double In-LinePackger,DIP)封装,片内集成了2.9万个晶体管,采用单电源+5V供电,工作主频为510MHz,数据总线宽度为16位(8088外部总线宽度为8位),地址总线宽度为20位,可寻址空间达到1MB(220B)。内部数据总线宽度为16位,寄存器数据宽度为16位,运算部件宽度16位,因此是一款典型的16位微处理器芯片。其有以下主要特点。 将取指令部件与指令执行部件分开,使它们可以并行工作,从而实现并行流水线,提高系统运行速度; 对内存空间分段管理,利用16位段基址和16位段内偏移地址实现对1MB空间的寻址; 具有两种工作模式,分别支持单处理器工作和多处理器工作; 基本指令执行时间为0.30.6m。2.3.2 Interl 8086/8088 微处理器内部组成结构8086微处理器从功能上可以划分为两个逻辑部件,即执行部件(Execution Unit,EU)和总线接口部件(Bus Iterface Unit, BIU),这两个部件相对独立地工作。其内部组成结构如图2.1所示。 图2.1 8086微处理器内部结构图1.执行部件EU执行部件包含一个16位的算术逻辑单元ALU,8个16位的通用寄存器,1个16位的状态寄存器,1个数据暂存寄存器和执行部件控制电路。EU的主要功能是从BIU的指令队列中取出指令,经指令译码器译码后执行指令规定的全部功能。执行结果或执行时所需要的数据 ,由EU向BIU发出控制命令,对内存或I/O端口进行读/写操作。EU中各部件有如下功能。 算术逻辑单元(ALU):用于算术、逻辑运算,或根据指令寻址方式计算寻址单元的16位偏移地址,并将其送到BIU中形成物理地址,实现对内存的访问。 标志寄存器FLAG:这是一个16位的寄存器,它的每一位可以存放CPU的一个状态或控制标志。在8086中实际使用了其中的9位,用于描述进位、溢出、符号等状态或控制信息,这些信息反映了CPU最近一次运算的结果。 数据暂存寄存器:协助ALU完成运算,暂存参加运算的数据。如从内存读入的数据。 通用寄存器:用于存放参与运算的数据或数据在内存中的偏移地址。 EU控制电路:包括控制、定时或状态逻辑,主要负责接收从BIU指令队列取来的指令,经指令译码后形成定时控制信号,对EU各部件实现特定的控制操作。2总线接口部件BIUBIU内部包括4个16位的段地址寄存器、1个16位的指令指针寄存器、1个6字节的指令队列缓冲器以及一个20位的地址加法器和总线控制逻辑。BIU的主要功能是根据指令指针寄存器和代码段寄存器的值计算出代码所在地址,并根据这一地址自动读取该地址中的指令存放到指令队列缓冲器中;根据EU的请求,进行地址计算并与存储器或I/O设备进行数据访问。BIU中各部件有如下的功能。 指令队列缓冲器。该队列可以存放最多6字节的指令,按“先进先出”原则进行存取操作。BIU根据CS:IP值计算出指令所在地址,根据这一地址读取指令放入指令队列缓冲器;EU则按顺序从指令队列缓冲器中取出指令并译码执行。当队列出现1-2字节的空间且EU未要求进行总线操作,则BIU自动从内存单元顺序读取指令到该队列中,直到填满指令队列。如果执行到转移指令,BIU将自动清空该队列,并从新的地址单元取出指令送EU执行,然后读取后续指令填满指令队列。BIU 在收到EU的数据存取操作请求时,优先进行数据存取操作。 地址加法器。地址加法器的功能是完成20位地址计算。由于8086内部寄存器均为16位,而物理地址却有20位,因此需要进行适当的运算来得到访问数据的地址,地址加法器完成这一功能。 段地址寄存器,简称段寄存器。在8086中内存空间采用分段方式进行管理,同一时刻有4个当前段,每一个段的基地址存放在一个段地址寄存器中。当EU请求访问一个内存单元时将给出一个偏移地址,把这个偏移地址加上段寄存器的值可以得到实际访问的内存地址。 指令指针寄存器。指令指针寄存器用于存放BIU要取出的下一条指令的段内偏移地址。程序本身不能直接对IP进行修改,但可以使用专用的指令改变它的值,从而改变程序的流程。 总线控制电路与内部通信寄存器。总线控制电路用于产生外部总线操作时的相关控制信号,是连接CPU外部总线与内部总线的中间环节,而内部通信寄存器用于暂存总线接口单元BIU与执行单元之间交换的信息。计算机的运行过程包括取指、译码、执行这三个步骤。为了说明8086CPU的流水线方式,可将这一过程简化为取指和执行两个步骤。在没有流水线的CPU中,指令的执行过程如图2.2所示。可以看到由于指令必须先取到CPU中再执行,因此这两个操作总是串行的,程序运行过程中有一半的时间系统总线处于空闲状态,系统资源利用率不高。在8086微处理器中,设置了EU和BIU两个部件,分别完成取指令和执行指令的操作,虽然单个指令仍然需要取指令再执行,但从指令流角度看,取指令和执行指令可以同时进行,如图2.3所示。由于充分利用了取指令和执行指令的并行关系,使系统总线总处于忙状态,系统的总体效率得到提高。从节奏看,图2.2中的方式执行6条指令需要12个步骤的时间完成(每条指令需要取指令和执行指令两个步骤,并占用两个步骤的时间),而图2.3中的方式执行6条指令只需7个步骤的时间就可以完成(每条指令仍然需要2个步骤,但多数时候只占用一个步骤时间)。完成同样的工作第二种方式需要的时间只是第一种方式的58,显然第二种方式速度要快得多。如果进一步将指令的执行过程分为取指、译码、执行,并分别用一个部件去完成其中之一项任务,从而形成三级流水线,则系统的并行性可以得到进一步提高。现代高性能CPU甚至将这一流水线级数提高到10级以上,通过提高系统的并行性,达到提高CPU处理性能的目的。 图 2.2 微处理器的程序执行过程 图2.3 8086 微处理器的指令执行过程 指令队列(Instruction Queue)。指令队列是一个内部存储器组,按照队列的操作规则FIFO(First In First Out,先进先出)运行。地址部件只负责将取到的指令放入该队列,而执行部件只负责从队列中取出指令执行,从而执行部件和地址部件可以单独运行。2.3.3 8086/8088 微处理器的寄存器结构微处理器中寄存器起着临时存放数据或地址的作用,寄存器的访问速度远高于内存,使用寄存器可以减少内存访问次数,大大提高系统运行速度。在8086 中共有14个16位的寄存器。大致可以分为通用寄存器、控制寄存器和段寄存器三类。如图2.4所示。 图2.4 8086 微处理器内部寄存器结构1.通用寄存器 8086微处理器中设置了8个通用寄存器,用于存放数据或地址。使用通用寄存器既 可以减少对内存的频繁访问,又可以减小指令长度,提高存储效率。通用寄存器按其功能可以分为两类:一类主要用于存放数据,称为数据寄存器;另一类主要用于存放数据在内存中的地址,称为地址指针和变址寄存器。数据寄存器包括4个16位的寄存器AX、BX、CX、DX。这4个16位的寄存器每一个都可以拆开成为两个独立的8位寄存器使用,分别用高字节和低字节表示,即AH、AL,BH、BL,CH、CL,DH、DL。数据寄存器按16位使用时主要用于存放数据,也可以临时用于存放地址,但是按8位使用时只能存放数据。地址指针和变址指针也有4个16位的寄存器,其中SP、BP被称为地址指针寄存器,SI、DI被称为变址寄存器。地址指针和变址寄存器都用于存放数据在内存段中的偏移地址。这4 个寄存器在使用时有一定的区别,我们将在第三章作深入的讨论。表2.1给出了8个通用寄存器在指令中的常用方法。2段寄存器8086具有20位地址线,可以寻址1MB存储空间,但在8086微处理器中并没有存放20位地址的存储单元,所有的寄存器都只有16位长,因此不可能从寄存器中直接得到20位访存地址。8086微处理器的地址采用了一种分段式的管理模式来实现存储空间的管理,即1MB空间分为若干个不大于64KB的段,每个段有两部分描述:一部分是段地址(Segment Address)或者称为基址,另一部分是段内偏移地址(Offset Address)。内存地址采用“16位段地址:16位偏移地址”的方式表达,称为逻辑地址(Logic Address)。段地址用于表示一个段在1MB空间中的起始位置。由于在8086中能够保证段的起始地址值最低4位为0,因此20位的段起始地址,只需要用高16位表示即可。段内偏移地址是一个16位值,它是一个相对地址,表示一个数据的地址与段基址的“距离”,其范围为0216-1,即最大可达64K。当CPU要访问某个数据时,就根据该数据的16位段地址和16位偏移地址计算出该数据实际的20位地址,用计算出的地址访问存储器得到相应数据。20位地址的计算公式为: 16位段地址16+16位偏移地址=20位实际存储空间地址20位的存储空间地址称为物理地址。公式中的“16位段基址16”从数值上等于将16位段地址左移4位,并在最低位补4个0,得到20位的段基址。 表2.1 通用寄存器的常用方法寄存器名寄存器长度和名称常 用 功 能 AX16位累加器字乘、字除,字I/O操作 BX16位基址寄存器查表操作 CX16位计数器数据串计数,循环计数 DX 16位数据寄存器 字乘,字除,间接I/O操作 SP16位堆栈指针寄存器堆栈操作 BP16位基址寄存器数据串操作 SI16位源变址寄存器数据串操作 DI16位目的变址寄存器数据串操作 在8086微处理器中可以有4个不同的当前段(程序当前正在使用的段),它们是代码段、数据段、堆栈段和附加段。分别用CS,DS,SS和ES段寄存器存放其段基址。代码段寄存器(Code Segment,CS): 用于存放当前代码段的起始地址,CPU将从该段中读取指令执行。数据段寄存器(Data Segment,DS):用于存放当前使用的数据起始地址,CPU执行程序的数据将存放在该段。堆栈段(Stack segment,SS):用于存放程序使用的堆栈的起始地址,CPU执行程序时使用的堆栈数据将存放在该段。附加数据段(Extra Segment,ES):用于存放另一个存储空间的基址,通常附加数据段被作为另一个数据段使用。比如要完成一个地址空间上数据搬移到另一个地址空间时,就可以让DS指向源数据所在地址基值,而让ES指向目标地址基值。虽然数据在内存中的地址需要由两个寄存器来表示,但是在程序中通常只需给出16位的偏移地址即可,段基址一般以默认方式给出。如指令的默认操作是在代码段,数据的默认操作是在数据段,堆栈的默认操作在堆栈段。表2.2给出了CPU访问内存的不同操作使用的默认段寄存器。3控制寄存器8086 微处理器的控制寄存器包括两个16位寄存器,一个是指令指针寄存器IP,另一个是标志寄存器FLAG。指令指针寄存器IP是一个16位的寄存器,主要用于存放CPU待执行的下一条指令在内存的偏移地址。CPU工作时BIU将根据CS:IP值从内存中读取指令到指令队列,并自动更新IP到下一条指令偏移地址。计算机之所以能够按照一定的指令序列执行下去,最重要的就是这个IP寄存器能够随着操作的进行不断被修改,使之总是指向下一条需要执行的指令,这样CPU就能够不断地按照人们编写好的程序去完成相关的工作。 表2.2 各类指令的默认段CPU访存类型 默认段 可指定段偏移地址取指令 CS 无 IP堆栈操作 SS 无 SP串操作(源地址) DS CS,ES,SS SI串操作(目的地址) ES 无 DI通用数据访问 DS CS,ES,SS有效地址EA特殊数据访问 SS CS,ES,SSBP+(变址+偏移地址)标志寄存器FLAG也是一个16位的寄存器,每一位表示CPU的一种标志。在8086微处理器中实际只使用了其中的9位,6位表示CPU的当前状态,称为状态标志;3位表示对CPU工作状态的设定,称为控制标标志。当CPU执行一条指令后会根据该指令执行的结果来判断下一步执行哪一条指令,这就需要通过查看标志寄存器中的各标志位,实现相关判断并决定下一步的走向。8086各标志位在FLAG寄存器中所在位置如图2.6所示。15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0OFDFIFTFSFZFAFPFCF 图2.6 8086 微处理器标志寄存器各标志位功能见表2.3。 表2.3 标志寄存器各标志位说明标 志 位名 称说 明功 能CF(Carry Flag)进位标志CF=1最高位产生进位或借位CF=0最高位无进位或借位表示数值运算结果是否产生进位或借位PF(Parity Flag)奇偶标志PF=1低8位有偶数个1PF=0低8位有奇数个1检查通信时传送的数据是否正确AF(Auxiliary Carry Flag)辅助进位标志AF=1低4位有进位或借位AF=0低4位无进位或借位辅助进行BCD码运算调整ZF(zero Flag)零标志ZF=1 运算结果为零ZF=0 运算结果不为零判断运算结果是否为零或相等SF(Sign Flag)符号标志SF=1运算结果符号为负SF=0运算结果符号为正利用运算结果进行数值判断等OF(Overflow Flag)溢出标志OF=1有符号数运算产生溢出OF=0运算结果未产生溢出有符号数运算是否出错TF(Trap Flag)跟踪标志TF=1CPU单步运行TF=0CPU正常运行跟踪程序进行调试IF(InterruptEnable Flag)中断允许标志IF=1CPU接受外部中断IF=0CPU不接受外部中断控制可屏蔽中断DF(Direction Flag) 方向标志DF=1操作地址递减DF=0操作地址递增控制指令操作方向说明:CF、PF、AF、ZF、SF、OF为状态标志,TF、IF、DF为控制标志。状态标志的值由指令执行后的结果决定,控制标志的值由特定指令设置或清除.。这些标志值由CPU控制器自动对它们进行检查和判断,并根据检查的结果决定程序下一步的执行。需要说明的是,不是所有的指令执行结果都会对状态标志产生影响,不同指令对不同标志位产生的作用具体请参阅指令系统。2.3.4 8086/8088微处理器引脚及功能8086/8088微处理器采用双列直插式封装,共40个引脚,其引脚分布和名称如图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论