《微型计算机原理与接口技术》教案1(5)

2019-04-23 20:33

·便于故障诊断和维修。

总线是一组信号线的集合,是计算机系统各部件之间传输数据、地址、控制信息的公共通路。它由一组导线和相关的控制驱动电路组成。在微型计算机系统中常把系统总线看成一个独立部件。

1.总线的分类

(1)按相对于CPU的位置划分,可分为片内总线和片外总线。

在CPU内部,算术逻辑部件ALU、寄存器、控制部件及地址形成部件之间传输信息所用的总线称为片内总线;而通常所说的总线则是指片外总线,是CPU与内存和I/O接口之间进行通信的通路。片内总线可称为内部总线或内总线(internal bus),而把片外总线称为外部总线或外总线(external bus)。

(2)按总线的层次结构分,可分为CPU总线、系统总线和外设总线。

CPU总线包括数据线、地址线、控制线,一般是指从CPU引脚上引出的连接线,用来实现与其他芯片之间的连接。

系统总线也称为I/O通道总线,也同样包括数据线、地址线和控制线,用来与存储器和扩充插槽上的各种扩展板卡相连接。系统总线有多种标准(见下介绍),以实用于各种系统。CPU总线一般要通过专用的控制电路在空间上、时间上进行重组,才能转换成系统总线。 外设总线是指计算机主机与外部设备接口的总线,实际上是一种外设的接口标准。目前在微机上流行的接口标准有:IDE(integrated disk electronics)、SCSI(small computer system interface)以及USB(universal serial bus通用串行总线)、IEEE(美国电气与电子工程师协会)1394四种。前两者主要用作硬盘、光驱等设备接口,后两种新型的外设总线可以用来连接多种外部设备。

2.系统总线

微型计算机上的系统总线有ISA、MCA、EISA、PCI、AGP等多种标准。

ISA(industry standard architecture)工业标准线,是美国IBM公司为推出PC/AT微机而制订的一种总线标准,也称AT总线。

MCA(micro channel architecture)微通道总线结构,是IBM公司专为其PS/2系统开发的总线标准(未有效推广)。

EISA(extended industry standard architecture)扩充工业标准线,是在ISA总线基础上为32位CPU设计的。

PCI(peripheral component interconnect)外设互连总线,是Intel公司联合IBM、DEC、Apple、Compaq、Motorola等百余家PC工业界主要公司,于1992年提出的一种高性能的32/64位标准总线。

目前,微机系统中最常见的只有ISA和PCI两种,而前者正逐步淘汰,使PCI总线几乎独占鳌头。

3.单总线结构和多总线结构(简讲)

2.3.2 总线技术(略讲)

2.3.3 常见系统总线简介

2.3.4 8088系统总线

1.最小模式下的系统总线

21

最小模式下(MN/MX引脚接高电平),CPU仅支持少量设备组成的单处理器系统,系统总线构成如P.65图2-32所示。

?20条地址线,用3片8282(或用74LS245)锁存器构成。

?8条双向的数据线,用1片8286(或用74LS245)双向总线驱动器构成。

?CPU本身产生全部总线控制信号(DT/R、DEN、ALE和IO/M)和命令输出信号(DR、 、INTA)并提供请求访问总线的控制信号(HOLD、HLDA),以满足总线主控设备(如8257DMA控制器等)的总线保持请求。

WR上述最小模式下的系统总线,在实际应用中,还应考虑以下两个问题:

(1)若8088 CPU控制总线的驱动能力不够,可加上总线驱动器74LS244进行驱动。 (2)因没对系统总线形成器件(8288、8286)作进一步控制,系统总线尚不能进DMA传送。

2.IBM PC的系统总线和最大模式下的系统总线

在最大模式(MN/MX引脚接低电平)下,增加一个8288总线控制器,就使CPU能支持系统总线上的多个处理器,P.66图2-33位最大模式的组成框图。

在最大模式下,由总线控制器提供所有总线控制信号和命令。

·CPU的部分引脚进行了重新定义(如S2、S1、S0),以支持多处理器工作方式。 ·8288总线控制器使用CPU S2、S1、S0三个引脚输出的状态信号来产生总线周期所需的全部控制和命令信号(参见P.45表2-5,并作解释)。 ·地址总线和数据总线仍分别由三个8288地址锁存器,及一个8286双向总线驱动器构成。 ·当系统总线形成之后,内存及各接口就可以直接与系统总线相连,从而构成所需的微型计算机系统(如IBM PC)。 ·三总线归纳如下: 地址信号线:A0~A19 数据信号线:D0~D7

控制信号线:MEMR、MEMW、IOR、IRW。

在图2-33系统中仍未解决DMA传送问题,解决方案总的原则是,在进行DMA传送时, 一定要保证总线形成电路所有输出信号都呈高阻状态,即让CPU放弃对总线的控制权。

2.4 新型CPU简介(暂略)

22

第3章 指令系统及汇编语言程序设计

本章以8088/8086为例,介绍微型计算机的指令系统,之所以采用8088/8086的指令系统作范例有以下几个方面的原因:

·指令的兼容性。8088/8086的指令系统是所有80X86系列CPU指令系统的基础,80286、80386,乃至pentium等新型CPU指令系统都是在此基础上进行扩充。用8088/8086指令系统编写的程序可毫无改动地在80286、80386、80486及pentium等CPU上运行。

·应用的广泛性。在现有的微机系统中,绝大多数都是80X86系列的CPU。 ·资料易于寻找。给应用开发及教学带来方便。

3.1 概 述

控制计算机完成指定操作的命令称为指令。不同的计算机具有各自不同的指令,其所有指令的集合,即为该计算机的指令系统。

指令系统不仅定义了一台计算机的指令集,而且还定义了使用这些指令的规则。为能使用汇编语言编写程序,必须对机器的指令系统非常熟悉。

8086和8088的指令系统是相同的,为叙述方便,通称为8086指令系统。 8086 CPU的指令系统共包括92种基本指令,按其功能分为六大类: ·数据传送类; ·算术运算类;

·逻辑运算和移位类; ·串操作类; ·控制转移类; ·处理器控制类。

P.94表3-1给出了上述六大类中常用指令的助记符,有关指令的格式、执行的操作及其功能将在本章第3节中详细介绍。

3.1.1 指令的基本构成

8086指令的长度在1~7个字节之间,包括操作码(指令码)和操作数。操作码确定指令进行何种操作,一般占1~2个字节。操作数确定操作的对象,一条指令的操作数最多有两个。一条指令的长度除与操作码有关外,还与指令中操作数的多少及操作数的类型有关。操作数越多,类型越复杂,其指令长度也就越长。

8086指令的一般格式如下:

操作码 [操作数],[操作数]

操作码用便于记忆的助记符来表示,操作数可以是双操作数(源操作数和目标操作数),也可以是单操作数,有个别指令没有操作数或隐含操作数。8088/8086指令系统的操作数有立即操作数、寄存器操作数和存储器操作数三类。

1.立即操作数

·所谓立即数是指具有固定数值的操作数(即常数)。 ·立即数可以是字节(8位)或字(16位),当其分别代表无符号数和带符号数时,各自取值范围如P.95表3-2所示。

23

·在指令中,立即数操作数只能作为源操作数,而不能作为目标操作数。

2.寄存器操作数

·寄存器操作数存放在8086 CPU的8个通用寄存器或段寄存器中,即可作为源操作数也可用作目标操作数。 ·通用寄存器中的AX、BX、CX、DX可作为4个16位寄存器用来存放16位操作数,也可作为8个8位寄存器AH、AL、BH、BL、CH、CL、DH、DL用来作为字节操作数。而SI、DI、BP、SP只能存放字操作数。

·段寄存器用来存放当前操作数的段基地址。在传送数据时,段寄存器可作为源操作数或目标操作数(注意代码段操作数一般不作为目标操作数,虽允许这样做)。另需特别注意:不允许将立即数直接送段寄存器,也不允许在两个段寄存器间直接传送数据。

·仅有个别指令将标志寄存器FLAGS作为指令的操作数。

3.存储器操作数

·存储器操作数可以是字节、字或双字,分别放在1个、2个或4个存储单元中。 ·存储器操作数既可作为源操作数,也可作为目标操作数。但一般说来,不允许源操作数和目标操作数同时为存储器操作数。

·存储单元有20位的物理地址,有段基地址和偏移地址两部分构成。所以要找到一个存储器操作数,必须首先确定操作数所在的段。一般来说,在没有特别指定的情况下,CPU采用默认的段寄存器来确定操作数所在的段。段寄存器使用的一些基本约定如P.96表3-3所示(作解释,特别说明“段超越”)。

·各存储器段往往用指向它的段寄存器来表示。如一个数据段基址由DS来指明,这个段可称为DS段。倘若段基址既在DS中,又在ES中,则该段既可称为DS段,也可称为ES段。 ·存储器操作数的偏移地址可通过不同寻址方式由指令给出。

3.1.2 指令的执行时间

了解指令的执行时间在一些特定场合(如延时、中断、控制等)是十分重要的。 一条指令的执行时间包括取指令、取操作数、执行指令及传送结果等几个部分,单位用时钟周期数来表示。

不同指令执行时间有较大差别。P.96~97表3-4列出了部分常用指令的执行时间及访问存储器的次数(作说明)。

存取操作数的时间与采用的寻址方式有关。寻访寄存器操作数需要时间最短,立即操作数次之,存储器操作数指令的执行速度最慢(例见P.98)。这是因为前两者不需访问内存,因此执行速度很快,而访问存储器要由BIU计算出所在单元的20位物理地址,然而再执行有关读写操作,所以所需时间大大增加。为寻访存储器操作数,在计算物理地址时,先需计算偏移地址,各种寻址方式,计算偏移地址所花的时间,如P.98表3-5所示。若有段超越的情况,则需再加2个时钟周期。

3.2 8086的寻址方式

所谓寻址方式,主要是指获得操作数所在地址的方法。寻址方式一般是指针队员操作

24

数而言的。

在8088/8086系统中,寻址分为两种不同的类型。一类是寻找操作数的地址,另一类是寻找要执行的下一条指令的地址。后者主要在程序转移或子程序调用中发生,待以后介绍。本节主要讨论针对操作数的8种寻址方式。

3.2.1 立即寻址(immediate addressing)

立即寻址方式中,源操作数是一个立即数。它作为指令的一部分紧跟在操作码之后,存放在内存的代码段中。这里的立即数可以是8位或16位的整数。若为16位数,存放于两个单元,规定低8位在低地址单元存放。

例见P.99例3-1(详细说明)。

3.2.2 直接寻址(direct addressing)

直接寻址方式中,指令的操作码后面直接给出操作数的16位偏移地址。该地址与指令的操作码一起存放在内存的代码段,也是低8位在前,高8位在后。操作数本身若非使用段超越,默认存放在数据段DS中。

例见P 99例3-2(详细说明)。

需要注意,为使直接寻址与立即寻址相区别,指令系统规定偏移地址必须用括号括起来。

若操作数不是存放在DS段,则在指令中要用段超越符号加以说明。例见P.100例3-3。 在汇编语言中,可以一个符号来表示操作数的偏移地址,通常称为符号地址。例见P.100用BUFFER代替偏移地址1200H,但BUFFER必须在程序的开始处予以定义(详见第4章)。

3.2.3 寄存器寻址(register addressing)

寄存器寻址方式中,操作数在CPU内部的寄存器。它们可以是数据寄存器(8位或16位),也可以是地址指针(SP、BP),变址寄存器(SI、DI)或段寄存器。

例见P.100例3-4。

3.2.4 寄存器间接寻址(register indirect addressing)

与寄存器寻址方式不同,在寄存器间接寻址方式中,寄存器的内容不是操作数,而是操作数的偏移地址,操作数本身在存储器中。

存放存储器地址的寄存器称为地址指针。寄存器间接寻址方式可用的寄存器只允许是SI、DI、BX和BP这4个,简称为间址寄存器。一般情况下,如偏移地址在SI、DI和BX中,则以DS为段寄存器,如偏移地址在BP中则以SS为段寄存器。同样,也允许段超越。

为与寄存器寻址有所区别,规定用作间址的寄存器必须加上方括号。

例见P.101例3-5及P.102例3-6。

3.2.5 寄存器相对寻址

寄存器相对寻址中,操作数也存放在存储其中。把指令中规定的间址寄存器的内容加上指令中给出的一个8位或16位的地址位移量,构成操作数的偏移地址。段寄存器的确定仍如上寄存器间接寻址。由于位移量也可看作一个相对值,故把这种带位移量的寄存器间接寻址方式称为寄存器相对寻址。

例见P.102例3-7。

寄存器相对寻址常用于存取表格内容或一维数组中的元素。可把表格中的起始地址作为位移量,表中数据序号(或元素的下标值)放在间址寄存器中(反之亦然),即可存取表

25


《微型计算机原理与接口技术》教案1(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014年上期华湘学校二年级数学学科期末质量监测试卷分析评价报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: