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

2019-04-23 20:33

BX(base)为基址寄存器。常用来存放访问内存时的基地址。

CX(count)为计数寄存器。在循环和串操作专用做计数器。

DX(data)为数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址。 另外,在做双字长乘除法运算时,DX与AX配合,存放一个双字长数(32位),其中DX存放高16位数据,AX存放低16位数据。

②地址指针寄存器SP、BP

SP(stack pointer)为堆栈指针寄存器。它在堆栈操作中存放栈顶偏移地址,永远指向堆栈的栈顶。

BP(base pointer)为基址指针寄存器。一般也常用来存放访问内存时的基地址。但要注意BP是和SS段寄存器配对使用的(而BX通常是和DS段寄存器配对使用的)。

作为通用寄存器,SP和BP也可存放数据,但更经常地用于存放内存单元的偏移地址(两者的默认段寄存器都是SS)。

③变址寄存器SI、DI

SI(source index)为源变址寄存器,DI(destination index)为目标变址寄存器,主要在变址寻址方式中作为索引指针。

(2)段寄存器CS、SS、DS、ES

CS(code segment)为代码段寄存器,SS(stack segment)为堆栈段寄存器,DS(data segment)为数据段寄存器,ES(extra segment)为附加数据段寄存器。段寄存器用于存放段基址,即段起始地址的高16位。

(3)控制寄存器IP、FLAGS

IP(instruction pointer)为指令指针寄存器,用以存放指令的偏移地址。CPU取指总以CS内容为段基址,以IP内容为段内偏移地址。当CPU取走一个指令代码后,IP内容自动加1,指向指令代码的下一个字节。用户程序不能直接访问IP。

FLAGS为标志寄存器或程序状态字(program status word PSW)。它是16位寄存器,但只使用了其中9位。这9位包括6个状态标志,如P.46图2-19所示。

状态标志记录了算术和逻辑运算结果的一些特征,具体如下:

△CF(corny flag)进位标志位。当进行加(减)法运算时,如最高位有进(借)位,则CF = 1,否则CF = 0。

△PF(parity flag)奇偶标志位。当算术或逻辑运算结果中,低中“1”的个数.8.位.为偶数时,PF = 1,为奇数时,PF = 0。

△AF(auxiliary flag)辅助进位标志位。在加(减)法操作中,由低半字节向高半字节进位(或借位)发生时,AF = 1,否则AF = 0。该标志通常用于对BCD码算术运算的结果进行调整(详见3.3.2)。

△ZF(zero flag)零标志位。当运算结果为0时,ZF = 1,否则ZF = 0。

△SF(sign flag)符号标志位。当运算结果的最高位为1时,SF = 1,否则SF = 0。 △OF(overflow flag)溢出标志位。当算术运算结果超出了带符号数的范围,即产生溢出时,OF = 1,否则OF = 0。注意,8位带符号数的范围是-128~+127,16位带符号数的范围是-32768~+32767。

需要强调的是,不同指令执行结果对状态标志位的影响是不相同的,具体将在指令系统中作介绍。

控制标志位用于设置控制条件。控制标志一旦被设置后,便对其后的操作产生控制作用。具体如下:

△TF(trap flag)跟踪标志位(也称陷阱标志位)。当TF = 1时,使CPU处于单步执

行指令的工作方式。这种方式便于对程序进行调试。每执行一条指令后,自动产生

16

一次单步中断,从而使用户能逐条地检查程序执行的结果。

△IF(interrupt-enable flag)中断允许标志位。当IF = 1时,CPU能够响应外部的 可屏蔽中断;当IF = 0时,则不响应外部可屏蔽中断请求。但此标志对外部非屏蔽中断请求,或内部产生的中断不起作用。8086/8088有两条指令STI和CLI专门用于设置和消除IF标志。 △DF(direction flag)方向标志位。DF = 1,使串操作按地址减1方式进行,而DF = 0,使串操作按地址加1方式进行。

2.2.4 8088的外部引脚及其功能

8088和8086 CPU都是具有40个引脚的集成电路芯片,采用双列直插式封装。P.42图2-15是8088的引脚图,8086与之基本相同。8088的许多引脚具有双重定义和功能,采用分时复用方式(解释)工作,即在不同的时刻,这些引脚上的信号是不同的。

8088有最大和最小两种工作模式,通过在MN/MX输入引脚上加上不同的电压来进行选择。当MN/MX= 1时,8088工作在最小模式。此时,所构成的微机中只包括一个微处理器8088,系统总线由8088的引脚直接引出生成,系统所用芯片最少。当MN/MX= 0时,8088工作在最大模式。在此模式下,构成的微机中除有8088 CPU外,还可外接数字协处理器8087,构成多微处理器系统。在最大模式下,系统总线要由8288共同生成(见后详细介绍)。P.42图2-15中括号内的管脚信号用于最大工作模式。

1.最小模式下的引线

最小模式下,8088的引线分为三类。

第一类为数据、地址、状态线,它们包括:

△A16~A19/S3~S6,地址、状态复用引脚,三态输出。在8088 CPU执行指令的过程中,在总线周期的T1时刻,从该4个引脚送出地址的最高4位A16~A19。在T2、T3、T4时刻,这4个引脚送出状态信号S3~S6,在这些状态信息里,S6恒等于0,S5指示中断允许标志位IF的状态,S4、S3组合指示CPU当前正在使用的段寄存器,其编码表参见P.42表2-2。

△A8~A15,地址输出,三态。CPU寻址内存或I/O接口时,从这8个引脚送出地址A8~A15。

△AD0~AD7地址数据分时复用的双向信号线,三态。当ALE = 1时,这些引脚上传输的是地址信号。当DEN= 0时,这些引脚上传输的是数据信号。 第二类为控制线,它们包括:

△IO/M,输入输出端口/存储器控制信号,三态。用来区分当前操作是访问存储器还是访问I/O端口。当IO/M= 1,访问I/O端口。当IO/M= 0,访问存储器。

△WR(write line),写信号输出,三态。当WR= 0时,表示CPU正在对存储器或I/O端口进行写操作。 △DT/R(data transmit/receive),数据传送方向控制信号,三态输出。用于确定数据的传送方向。DT/R= 1,CPU向存储器或I/O端口发送数据;当DT/R= 0时,CPU从存储器或I/O端口接收数据。此信号用于控制总线收发器8286/8287的传送方向(见2.3.4)。 △DEN(data bus enable),数据总线允许信号,三态输出,低电平有效。当DEN= 0,表示总线上有有效数据,它在每次访问内存或I/O端口以及在中断响应期间有效。它常用作数据总线驱动器的片选信号。 △ALE(address latch enable),地址锁存允许信号,三态输出,高电平有效。当ALE = 1时,表示地址线上有有效地址。因此,它常作为控制信号,将A0~A19锁存到地

17

址锁存器。

△RD,读选通信号,三态输出。当RD = 0时,表示CPU正在对存储器或I/O端口进行读操作。

△READY,“准备好”信号输入引脚,高电平有效。接收内存或I/O设备的响应信号。当READY = 1时,表示存储器或I/O设备已准备好,CPU可以进行数据传送。若存储器或I/O设备没准备好,使READY = 0 。CPU在T3周期采样READY信号,若其为低,CPU会自动插入等待周期TW(1个或多个)直至READY变为高电平后,CPU才脱离等待状态,完成数据传送过程。

△INTR,可屏蔽中断请求输入信号,高电平有效。CPU在每条指令的最后一个周期采样该信号,以决定是否进入中断响应周期。该中断请求信号可以软件屏蔽。

△TEST,测试信号输入引脚,低电平有效。当CPU执行WAIT指令时,每隔5个时钟周期对此引脚进行一次测试。若为高电平,CPU继续处于空转状态进行等待,直到引脚变为低电平,CPU才结束等待状态,继续执行下一条指令。

△NMI,非屏蔽中断请求输入信号,上升沿触发。该引脚上的中断请求信号不能用软件

TEST屏蔽,CPU在当前指令结束后立即进入中断过程。

△RESET,系统复位输入信号,高电平有效。为使CPU完成内部复位过程,该信号至少在4个时钟周期内保持有效。复位后,CPU内部寄存器状态如P.44表2-3所示(作说明)。当RESET返回低电平后,CPU即重新启动。 △INTA(interrupt acknowledge),中断响应信号输出,低电平有效。它是CPU对中断请求信号INTR的响应。在响应过程中,CPU在INTA引脚上连续送出两个负脉冲,用作外部中断源中断向量的读选通信号。

△HOLD(hold)总线保持请求信号输入,高电平有效。当HOLD = 1,表示某一总线主控设备(如DMA控制器)要占用系统总线。通过此引脚向CPU提出请求。 △HLDA(hold acknowledge),总线保持响应信号输出,高电平有效。这是CPU对HOLD请求的响应信号。当CPU收到有效的HOLD信号后,就会对其作出响应。此时,CPU将停止执行程序,使其数据、地址、控制总线处于高阻状态。同时,由此引脚输出一个有效的HLDA,表示CPU已放弃对总线的控制权。当CPU检测到HOLD变为低电平后,就立即使HLDA变低,CPU收回总线控制权,继续执行其程序。

△SS0,系统状态信号输出。它与IO/M和DT/R信号决定了最小工作模式下,当前总线周期的状态。三者组合所表示的微处理器操作状态见P.44表2-4(解释)。 △CLK,时钟信号输入引脚。8088的标准时钟频率为4.77MHz,时钟的占空比为33%。 第三类为电源线,只有2根线: △VCC,5V电源输入引脚。 △GND,地线。

2.最大模式下的引线

当MN/MX引脚为低电平时,8088工作在最大模式之下。此时P.42图2-15引脚图中除带括号的引线外,其他引线作用与最小模式完全相同。下说明带括号的引线:

△S2、S1、S0(status),总线周期状态信号输出,三态。这三个信号连接到总线控制器8288的输入端,8288对之译码后可产生系统总线所需的各种控制信号。S2、S1、S0的不同组合其对应的操作状态见P.45表2-5(解释)。

△RQ/GT1,RQ/GT0(request/grant),总线请求/总线响应信号。两个引脚均具有双向功能。既为总线请求输入,也为响应输出。RQ/GT0比RQ/GT1具有更高的优先权。

18

该两个引脚的功能类似于最小工作模式下的HOLD和HLDA信号。决定CPU是否控制系统总线。

△LOCK,总线封锁信号输出。低电平有效。该信号有效时,CPU锁定总线,不允许其他总线控制设备申请使用系统总线。LOCK信号由前缀指令“LOCK”产生,LOCK指令后面一条指令执行完后,LOCK信号即失效。

△QS1,QS0(queue status),指令队列状态输出。根据该状态信号,可了解指令队列的操作状态。QS1 ,QS0的编码如P.45表2-6所示(解释)。

△HIGH,在最大模式下始终为高电平输出。

此外,在最大模式下,RD不再使用。

2.2.5 8088/8086的存储器组织

1.物理地址和逻辑地址

8088/8086有20条地址线,可寻址的最大内存容量为1MB(2),其中每一个内存单元都有一个20位的地址,称为内存单元的物理地址。前已介绍,8088/8086内部寄存器都只有16位,而访问内存往往会通过寄存器间接寻址。显然,如不采取特殊措施,是无法访问1MB的存储空间的。8088/8086采用了将地址空间分段的方法来解决此问题,即将1MB的存储器空间分为若干个64KB的段,然后用段基地加上段内偏移来得到存储器的物理地址,以实现访问物理存储器。

段基址和段内偏移(偏移地址)又称为逻辑地址。通常写为XXXXH:YYYYH形式。其中XXXXH是段基址,YYYYH是偏移地址。物理地址和逻辑地址之间的关系为:

物理地址 = 段基址×16 + 段内偏移(偏移地址)

例:逻辑地址为3A00H:12FBH,对应的物理地址是3B2FBH。

由于8088/8086CPU中有4个段寄存器,所以,可同时访问4个存储段。段与段之间可以重合、重叠、紧密连接和间隔分开(画图说明)。

分段寻址的好处是允许程序在存储器内重定位(浮动)。可重定位程序是一个不加修改就可以在任何存储区域中运行的程序,只要程序中不使用绝对地址访问存储器,就可把一个程序作为一个整体移到一个新的区域。

在DOS中,程序载入到内存时由操作系统来指定段存储器的内容,以实现持续的重定位。

2.段寄存器的使用

段寄存器的设立不仅使8088存储空间能扩大到1MB,而且为信息按其特征分段存储带来了方便。

在存储器中,信号按特征可分为程序代码、数据、堆栈等。程序段用来存放程序的指令代码;数据段用来存放数据;堆栈用来传送参数,保存数据和状态信息。有时某种类型的段还可能有多个,通过修改段寄存器内容,可将这些段设置在存储器的任何位置上,这些段可相互对立,也可部分或完全重叠。

8088/8086对不同的访问内存类型所使用的段寄存器和相应的偏移地址的来源有一些具体的约定,详见P.50表2-7(作解释)。

根据表2-7,可知:

·访问存储器时,其段地址可由“默认”段寄存器提供,也可由指定的段寄存器提供。 ·当指令中没有“指定”使用一个段寄存器时,就由“默认”的段寄存器来提供访问内存的段地址。大多数情况下,都用“默认”段寄存器。

·1、2、4这三种类型的内存访问只能用“默认”段寄存器。3、5、6这三种类型的内

20

19

存访问,允许在指令中指定使用另外的段寄存器,使之可灵活地访问不同的内存段。 ·DS、ES和SS的段基地设置可用传送指令完成,但用户程序中不允许设置CS,CS一般由操作系统进行设置。另外宏汇编语言中的伪指令ASSUME及JMP、CALL、RET、INT和IRET等指令可改变和影响CS的内容(以后会讲到)。

·更改段寄存器的内容意味着内存段的移动。这意味着无论是程序段、数据段,还是堆栈段都可以超出64KB的容量,都可以用重新设置段寄存器内容的方法来扩大段,且各内存段都可在这个存储空间中浮动。

·表中前四类内存操作,其偏移地址均由一个16位的指针寄存器(IP、SP)或变址寄存器(SI、DI)提供,而后两类内存操作,则须根据不同的寻址方式来计算偏移地址。

2.2.6 8088/8086的工作时序

微处理器是按照一定的时序来工作的。一条指令的执行需要若干个总线周期,而一个总线周期又由若干个时钟周期构成。

微处理器在运行过程中是按照一个统一的时钟一步一步地执行每一个操作的。每个时钟脉冲的持续时间称为一个时钟周期。显然,时钟周期越短,CPU执行的速度就越快。 在8088 CPU中,CPU与内存、接口都通过总线来进行通信,这种通过总线来进行读、写的过程称为一个总线周期。一个总线周期将包括多个时钟周期。典型的总线周期如P.51图2-20所示(解释)。

8088在最小工作模式下的时序(最大工作模式下,大致相同)简单介绍如下:

8088读-总线周期和写-总线周期时序图分别入P.52图2-21和图2-22所示(具体分析)。

需要指出的是:在某些情况下,当内存和接口的速度较慢,使得在4个时钟周期里不能完成读、写操作。此时,可通过时钟产生器8284(见P.65图2-32)产生一个低电平信号送到8088的READY端,8088 CPU在每个总线周期的T3开始处都要检测READY的状态。若READY为低电平,则CPU不执行T4,而是在T3之后插入一个等待时钟周期TW(图中未画出)。以等待存储器或I/O端口完成读、写操作(在TW周期中还不断检测READY状态),直到某个TW开始时,READY已变为高电平,才执行T4时钟周期,以达到可靠地读写内存或I/O端口的目的。

CPU的读或写,是在T4开始时刻,也即在RD或WR信号的后沿(即上升沿)进行的,这时数据线上的数据已达稳定状态,以保证读写的有效进行。

2.3 系统总线

2.3.1 概述

微型计算机自诞生以来一直采用总线结构。CPU通过总线读取指令,并实现与内存和外设交换信息。在CPU、内存与外设性能确定的情况下,总线通信的速度是制约计算机整体性能的关键。

在计算机三十多年的发展过程中,总线技术之所以能得到迅速发展是由于采用总线结构后,在系统设计、生产、使用和维护上有很多优越性,概括起来有以下几个方面:

·便于采用模块结构设计方法,简化系统设计; ·各厂商便于生产与之兼容的硬件板卡和软件; ·便于系统的扩充与升级;

20


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

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

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

马上注册会员

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