第二章微处理器_第1页
第二章微处理器_第2页
第二章微处理器_第3页
第二章微处理器_第4页
第二章微处理器_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

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

文档简介

第2章微处理器2023/2/6>>微机原理<<2本章要点8086微处理器的内部结构、编程结构、引脚及功能8086/8088的编程结构以及存储器组织80286、80386、80486及Pentium系列微处理器主要特点2023/2/6>>微机原理<<32.18086/8088微处理器

2.1.1简介8086

CPU的一般性能特点如下。(1)16位的内部结构,16位双向数据信(2)20位地址信号线,可寻址1MB存储单(3)较强的指令系统。(4)利用第16位地址总线进行I/O端口寻址,可寻址64K个I/O端口。(5)中断功能强,可处理内部软件中断和外部中断,中断源可达256个。(6)单一的+5V电源,单相时钟频率5MHz。2023/2/6>>微机原理<<42.18086/8088微处理器

2.1.2内部结构8086CPU总线接口部件BIU执行部件EU2023/2/6>>微机原理<<52.18086/8088微处理器

2023/2/6>>微机原理<<62.18086/8088微处理器

1.执行部件EU

执行部件EU负责指令的译码和执行,包括ALU(算术逻辑单元)、寄存器组、EU控制器等,主要进行8位及16位的二进制运算,其中ALU完成8位或16位的二进制运算,16位暂存寄存器可暂存参加运算的操作数,EU控制器进行时序控制和取指令控制,4个通用寄存器(AX、BX、CX、DX)4个专用寄存器(基址指针寄存器BP、堆栈指针寄存器SP、源变址寄存器SI、目的变址寄存器DI)分别用来存放一些数据或地址信息标志寄存器为PSW存放ALU的运算结果特征。2023/2/6>>微机原理<<72.18086/8088微处理器

2.总线接口部件BIU1)功能

负责与存储器及I/O接口之间的数据传送操作。具体来看,就是完成取指令,指令排队,配合执行部件的动作,从内存单元或I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。2)组成段寄存器:16位寄存器(DS、CS、ES、SS、CS为代码段寄存器;DS为数据段寄存器;ES为附加段寄存器;SS为堆栈段寄存器。16位指令指针寄存器IP:用来指向下一条要取出的指令代码。2023/2/6>>微机原理<<82.18086/8088微处理器

20位地址加法器:将16位逻辑地址变换成存储器读/写所需的20位物理地址。6字节指令队列缓冲器:预存6字节的指令代码。总线控制逻辑:发出总线控制信号。实现存储器读/写控制和I/O读/写控制。它将8086CPU的内部总线与外部总线相连,是8086CPU与外部打交道不可缺少的路径。3)特点8086CPU的指令队列大小为6个字节,在执行指令的同时,可从内存中取出后续的指令代码,放在指令队列中,可以提高CPU的工作效率。2023/2/6>>微机原理<<92.18086/8088微处理器

3.工作过程1)首先在代码段寄存器CS中的16位段基地址的最低位后面补4个0,加上指令指针寄存器IP中的16位偏移地址,通过地址加法器产生20位物理地址。2)EU从指令队列中取走指令,经指令译码后,向BIU申请从存储器或I/O端口读写操作数。3)指令指针寄存器IP由BIU自动修改,指向下一条指令在现行代码段内的偏移地址。

由于EU和BIU这两个功能部件能相互独立地工作,在大多数情况下,取指令所需的时间“消失”了(隐含在上一指令的执行之中),大大减少等待取指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。2023/2/6>>微机原理<<112.18086/8088微处理器

2.1.3编程结构8086CPU中有14个16位的寄存器,按用途分为四类1.数据寄存器组2023/2/6>>微机原理<<122.18086/8088微处理器

2.段寄存器组3.其它寄存器组2023/2/6>>微机原理<<132.18086/8088微处理器4.指针和变址寄存器5.标志寄存器通用寄存器分为数据寄存器与指针和变址寄存器两组。数据寄存器包括4个16位的寄存器AX、BX、CX和DX,一般用来存放16位数据,故称为数据寄存器。其中的每一个又可根据需要将高8位和低8位分成独立的两个8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8位数据,它们均可独立寻址、独立使用。指针和变址寄存器包括指针寄存器SP、BP和变址寄存器SI、DI,都是16位寄存器,,一般用来存放地址的偏移量。这8个16位通用寄存器都具有通用性,从而提高了指令系统的灵活性。但在有些指令中,这些通用寄存器还各自有特定的用法.表:通用寄存器的特定用法寄存器操作寄存器操作AX字乘,字除,字I/OCL变量移位,循环移位AL字节乘,字节除,字节I/O,查表转换,十进制运算DX字乘,字除,间接I/OAH字节乘,字节除SP堆栈操作BX查表转换SI数据串操作指令CX数据串操作指令,循环指令DI数据串操作指令(1)数据寄存器 累加器AX(Accumulator)基址寄存器BX(Base)计数寄存器CX(Count)数据寄存器DX(Data)这四个16位寄存器可分为高8位(AH、BH、CH和DH)与低8位(AL、BL、CL和DL)可分别寻址、独立操作。

16位和8位可以拆开或组合。例如:AX=1234H(16位)AH=12H(高8位),AL=34H(低8位)例如:BL=78H,BH=56H(8位)BX=5678H(16位)注意:不允许两个不同的寄存器拆开或组合,例如:AH和BL直接组合。MOVAL,58HMOVAX,1234H;AL=34H,58H被覆盖(2)指针寄存器和变址寄存器:(16位) 堆栈指针寄存器SP(StackPointer)基址指针寄存器BP(BasePointer)源变址寄存器SI(SourceIndex)目的变址寄存器DI(DestinationIndex)SP用来确定欲读写堆栈的地址,BP用来存放在现行堆栈段的一个数据区的“基地址”。SI、DI用于变址操作,存放变址地址。注意:以上4个16位的寄存器不能拆成8位使用。通用寄存器的隐含用法:隐含用法:在一些指令中只能使用一个特定的寄存器,其它寄存器不能使用。a、AX、AL:16位、8位累加器AX在16位乘除指令中用作累加器,运算前存放被乘数或被除数,运算后存放结果。AL在8位乘除指令中用作累加器,运算前存放被乘数或被除数,运算后存放结果。AX在16位I/O指令中作为数据寄存器用来传输16位数据。AL在8位I/O指令中作为数据寄存器用来传输8位数据。AL还在BCD、ASCII码数据运算时用作累加器。例如:AL*BL→AXAX/BL→AL(商),AH(余)INAL,端口;OUT端口,AXb、BX----在间址寻址中用作间址寄存器,在基址寻址中用作基址寄存器。例如:MOVAX,[BX];将BX指示的内存单元中的内容传送至AX寄存器中。(寄存器间址寻址)例如:MOVAX,[BX+1000H];将BX+1000H指示的内存单元中的内容传送至AX寄存器中。(基址寻址)

c、CX----在循环操作中用作循环次数计数器。例如:MOVCX,100;循环次数100送CX寄存器L:………………LOOPL;CX-1→CXCX≠0转L,继续循环CX=0结束循环d、CL----在循环移位指令中用作移位次数计数器。例如:SHLAX,CL;对AX中的内容左移位CL位。

e、DX----在16位乘运算得到32位积时存放高16位积,在32位被除数中存放高16位。例如:AX*BX→DX,AX(32位)DX,AX(32位)/BX→AX(16位商),DX(16位余)DX在I/O指令中用作间址寄存器例如:MOVDX,2000HINAL,DX;将2000H端口中的内容输入到AL寄存器中。

f、SP-----用作堆栈栈顶指示器,指示堆栈栈顶单元的地址,专用于堆栈的栈顶地址。g、BP-----用作堆栈数据段的基址寄存器,也称为堆栈的附加指针寄存器。h、SI、DI----可用在寄存器间址寻址的间址寄存器(8086共有BX、SI、DI三个)在变址寻址中用作变址寄存器(SI、DI二个)在数据串指令中SI用作源串间址寄存器,DI用作目的串间址寄存器。

2、指令指针IP和标志寄存器FR指令指针IP(InstructionPointer) 指向当前需要取出的指令字节存放的地址。IP指向的是指令地址的段内地址偏移量. 程序员不能对IP进行存取操作,程序中的转移指令、返回指令以及中断处理能对IP进行操作。IP类似与PC寄存器,管理程序的执行顺序。3、标志寄存器16位寄存器,只用了9位,有7位未用。D15D0

OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为0标志寄存器FR(FlagRegister)

定义了9位6位状态位 CF、AF、ZF、SF、OF、PF3位控制位IF、DF、TF中断允许增量单步结果有进/借位结果有半进/借位结果为零1结果为负结果溢出奇/偶(1)状态位:CF、PF、AF、ZF、SF、0F进位标志CF----反映运算结果向更高位是否有进/借位加减运算后有进位/借位时CF=1,否则CF=0对于8位运算,CF=D7CY(加)CF=D7CY(减--求机器负数后的补码加)对于16位运算:CF=D15CY(加)CF=D15CY(减--求机器负数后的补码加)CF标志的用途:用于运算时的进/借位。用于无符号数运算后判定是否有溢出。用于移位操作时接收移出的信息位。CF标志可在运算后自动产生,也可以用指令直接设置。奇偶校验标志PF:反映运算结果中“1”的个数为奇或者为偶

运算结果中“1”的个数为偶数,PF=1运算结果中“1”的个数为奇数,PF=0PF=D7⊕D6⊕‥‥⊕D0-------8位PF标志可用于数据传送后的奇偶校验。辅助进位标志AF----反映运算后的结果是否有半进位/借位

8位:D7C------进位/借位

D3CY--------半进位/借位

16位:D15C------进位/借位

D7CY--------半进位/借位

8位时

AF=

D3CY

(加)

AF=D3CY

(减--求机器负数后的补码加)

AF在BCD码运算(8位)时可用作十进制调整的条件零标志ZF-----反映运算结果是否为零

结果为0,ZF=1 结果非0,ZF=08位:ZF=D7+D6+‥‥+D016位:ZF=D15+D14+‥‥+D0

ZF可用于判定二个数是否相等,相等的时候它们相减的结果为零。ZF还可用作计数器的计数次数是否减为0,当减为0的时候表示计数到,例如:循环次数计数符号标志SF:反映运算结果是否为负运算结果为正,SF=0

运算结果为负,SF=1SF=最高位8位时SF=D7

、16位时SF=D15

SF在有符号数运算时才有意义。

SF也可在无符号数比较大小时判定两个数的大小,A、B两个数相减后结果SF=0,A>B,SF=1,A<BSF还在有符号数比较大小时与OF标志一起判定两个数的大小。溢出标志OF:反映有符号数运算后的结果是否有溢出运算结果无溢出0F=0运算结果有溢出0F=1OF=D7CY⊕D6CY(8位)OF=D15CY⊕D14CY(16位)有符号数运算时:正数加正数结果为正---无溢出;结果为负---有溢出负数加负数结果为负---无溢出;结果为正---有溢出正数加负数或负数加正数-------无溢出0F⊕SF可以用于判有符号数比较大小以上的6个状态标志在运算指令运算后由EU自动的设置在FR中(CF也可以直接用指令设置),常用作指令的转移或执行的控制条件,影响或控制后续指令的执行,特别是CF、ZF、OF、SF。例如:JZL;运算结果为0,转L执行JNZL;运算结果非0,转L执行CPU的不同指令对状态标志的影响是不一样的,有的指令执行后全部影响6个标志,有的影响部分,不影响的保持原态,也有的一个都不影响,对不影响的指令执行后就不可以使用条件转移指令。(2)控制位方向标志DF:用于串操作时设置串指针的修改方向

DF=0,增量修正(字节串:指针+1;字串:指针+2)

DF=1,减量修正(字节串:指针-1;字串:指针-2)串操作:串传送、串比较、串搜索、从串中取、向串中存中断允许标志IF:设置是否允许CPU响应外部的可屏蔽中断请求INTR

IF=1(开中断),允许CPU响应外部的可屏蔽中断请求INTRIF=0(关中断),禁止CPU响应外部的可屏蔽中断请求INTR,此时用在CPU工作在不允许其他部件干扰CPU运行的情况时。陷阱标志TF:用于设置CPU运行为单条执行指令的方式TF=1:单步运行,CPU每执行一条指令后就自动进入单步中断,暂停执行。用户可单条跟踪指令的执行情况,用于单步调试程序。TF=0,连续正常的运行程序。IF、OF可以用指令直接设置,TF可用指令间接的设置。以上设置后在CPU执行指令时就可按照设置的方式执行指令,所以特别注意不能设置出错。4、段寄存器(SegmentRegister)内存中通常存放着三类信息:(1)代码(指令)—指示微处理器执行何种操作;(2)数据(字符、数值)—程序处理的对象;(3)堆栈信息—被保存的返回地址和中间结果等。8086采用存储器分段管理的方式,解决20位内存地址和16位地址计算能力的矛盾。 8086程序把1M字节的存储空间看成为一组存储段,各段的功能由具体用途而定,分别为代码段、堆栈段、数据段和附加段。段的起始地址由称为“段寄存器”的4个16位寄存器决定,这4个段寄存器为:(1)代码段寄存器CS(CodeSegment)指向当前的代码段,指令由此段中取出;(2)堆栈段寄存器SS(StackSegment)指向当前的堆栈段,堆栈操作的对象就是该段中存储单元的内容;(3)数据段寄存器DS(DataSegment)指向当前的数据段,通常用来存放程序变量(存储器操作数);(4)附加段寄存器ES(ExtraSegment)指向当前的附加段,通常也用来存放数据,以及一些专用指令的操作数。2023/2/6>>微机原理<<422.18086/8088微处理器2.1.4引脚和功能2023/2/6>>微机原理<<431)地址总线和数据总线(21条)AD15~AD0:分时复用的地址数据线,双向,输入/输出,三态,在总线周期T1状态,作为地址线,A15~A0输出存储器或I/O端口的地址信号。在T2~T4状态,D15~D0用作双向数据线。当CPU响应中断,以及系统“保持响应”时,AD15~AD0浮空置为高阻状态。A19/S6~A16/S3:地址/状态复用引脚,输出,三态。在T1期间,作地址线A19~A16用。对存储器进行读写时,高4位地址线由A19~A16给出。在T2~T4期间作为S6~S3状态线用。S3与S4状态线的特征如表2.2所示。S5用来表示当前中断允许标志位IF的状态。IF=1,允许响应可屏蔽中断请求;IF=0,禁止。S6在T2~T4期间状态恒为“0”,以表示CPU当前连在总线上。当系统总线处于“保持响应”时,A19/S6~A16/S3引脚线均为高阻状态。2023/2/6>>微机原理<<44BHE/S7:高8位允许/状态复用引脚,输出,三态。在T1状态作用,该引脚为0时,表示高8位有效。2)控制和状态线(两种工作模式下含义相同的线,10条)RD:读选通,输出,三态。READY:准备就绪,输入,高电平有效,表示存储器或端口准备就绪,允许进行一次数据传送。INTR(InterruptRequest):可屏蔽中断请求,输入,高电平有效。TEST:测试,输入,低电平有效。NMI(Non-MaskableInterrupt):不可屏蔽中断请求线,输入,上升沿有效。RESET:系统复位,输入,该信号必须保持4个时钟周期的高电平才有效。CLK:时钟;Vcc:+5V电源线;GND:接地;MN/MX:最小/最大模式选择,输入。2023/2/6>>微机原理<<45BHE/S7:高8位允许/状态复用引脚,输出,三态。在T1状态作用,该引脚为0时,表示高8位有效。3)控制和状态线(在“最小模式”系统,8条)M/IO:存储器或输入/输出控制,输出,三态WR:写信号,输出,三态。INTA:中断响应,输出,响应INTR,用来对外设的中断请求做出响应。ALE(AddressLatchEnable):地址锁存允许DT/R(DataTransmit/Receive):数据发送/接收,输出,三态。DEN(DATAENABLE):数据允许信号输出端,输出,三态。HOLD(HoldRequest):总线保持请求,输入。HLDA(HoldAcknowledge):总线保持响应,输出。2023/2/6>>微机原理<<463)控制和状态线(在“最大模式”系统,8条)S2、S1、S0 :总线周期状态信号,输出。RQ/GT0、/GT1(Request/Grant):总线请求/允许,输入/输出,三态。LOCK:总线锁定信号,输出,三态。QS1、QS0:指令队列状态,输出。

8086CPU采用40脚的芯片。但8086地址线20条,数据线16条,还有若干控制线及电源线,它们合计大于40脚。解决的办法:1、采用地址/数据引脚分时复用,一脚双功能。2、按工作方式不同,一脚双功能。8086CPU的时钟频率有三种:5MHZ(8086)8MHZ(8086-1)10MHZ(8086-2)8086根据所连的存储器和外设规模的不同,使它们可以在两种模式下工作:系统最小模式:为单处理器系统,只有一8086/8088CPU。系统最大模式:为多处理器系统,系统由主CPU8086/8088,协处理器8087,I/O处理器8089组成。

CPU时序概念:三种周期

*指令周期(InstructionCycle)执行一条指令所需要的时间称为指令周期,不同指令的指令周期是不等长的。

*总线周期(BusCycle)8086CPU与存储器或I/O交换信息总是通过总线进行的。CPU的每一个这种信息输入、输出过程需要的时间称为总线周期,一个指令周期由一个或若干个总线周期组成。 *时钟周期(ClockCycle)

执行指令的一系列操作都是在时钟脉冲CLK的统一控制下一步一步进行的,时钟脉冲的重复周期称为时钟周期,时钟周期是CPU的时间基准,是CPU处理动作的最小单位由计算机的主频决定,8086CPU的总线周期至少由4个时钟周期组成,分别以T1、T2、T3和T4表示。TW是在时间不够时插入的等待时钟。指令周期:执行一条指令所需要的时间。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。T状态(时钟周期):CPU处理动作的最小单位。T1T2T3TWT4总线周期

而当系统规模较大时,要求有较强的驱动能力,这样就需要两个获两个以上的微处理器。其中有一个是主处理器8086或8088,其它的处理器称为协处理器,它们协助主处理器工作。例如8088便通过总线控制器8288来形成各种控制信号。如图所示,为8086CPU和8088CPU的引脚信号图。共有40条引脚线,这些引脚线用来输出或接收各种信号:地址线,数据线,控制线和状态线,电源线和定时线。

由于8088微处理器是一种准16位机。其内部结构基本上与8086相同,其信号也与8086基本相同,只是有一些引脚的功能有所不同,在这里,我们将以8086为例,具体介绍一下最小模式下和最大模式下各位引脚功能,如出现功能不同的引脚再具体讲解。

一、8086的引脚功能说明 8086的40条引脚信号按功能可分为4部分─地址总线、数据总线、控制总线以及其它(时钟与电源)。引脚定义:01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7HIGH(SSO)MN//MX/RDHOLD(/RQ//GT0)

HLDA(/RQ//GT1)/WR(/LOCK)M//IO(/S2)DT//R(/S1)/DEN(/S0)ALE(QS0)/INTA(QS1)/TESTREADYRESET8086/80881、地址总线和数据总线(1)数据总线DB:用于CPU与内存或I/O接口之间交换信息。三态,双向。地址总线AB:用于CPU传送内存或I/O接口的地址信息。三态,单向。(2)AD15-AD0:地址/数据分时复用引脚,双向,三态。T1时刻:AD15-AD0功能是16位地址总线A15-A0,输出访问存储器或I/O的地址信息。T2---T4时刻:AD15-AD0功能是16位数据总线D15-D0,与存储器和I/O设备交换数据信息。地址/数据总线复用,分时工作,一脚双功能。(3)A19/S6-A16/S3:地址/状态总线分时复用,输出,三态。T1时刻:A19/S6-A16/S3功能是A19-A164位地址总线,与A15-A0组成20位的地址输出访问存储器或I/O。T2---T4时刻:A19/S6-A16/S3功能是S6-S34位CPU工作状态输出供外部测试用。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。见表2-10。

S4、S3组合所对应的段寄存器情况

S4S3段寄存器

00当前正在使用ES01当前正在使用SS10当前正在使用CS11

当前正在使用DS(4)8086CPU访问存储器的时候用A19---A020位地址,最大可访问1MB的存储空间。

8086CPU访问I/O端口的时候用A15---A016位地址,最大可访问64KB的I/O空间,此时A19---A16无效为0000.(5)、/S7:高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出信号,表示高8位数据线D15-D8上的数据有效。实际应用中用作存储器高8位存储体(奇地址体)的选择信号,所以它也属于地址信息。地址线A0用作存储器低8位存储体(偶地址体)的选择信号在T2、T3、TW和T4状态时,此引脚输出S7状态信号。S7是一个无效的状态信号。BHE、A0组合:BHEA0总线使用情况

00D15---D8,D7—D0(奇、偶地址体有效,传送16位)

01D15---D8(奇地址体有效,传送高8位)

10D7---D0(偶地址体有效,传送低8位)

11无效(奇、偶地址体无效,不传送1)8086双重总线、分时复用,21条引脚:AD0~AD15,A16/S3~A19/S6,/S7。传送了42个信号,大大减少了CPU的引脚。T1:A19-----A0,T2---T4:D15---D0,S6---S3,S7 2、控制总线—同工作方式有关的控制信号,有的是输入也有的是输出线。 8086的第33脚是MN/:最小/最大方式控制线,用来控制8086的工作方式。当MN/接+5V时,8086处于最小方式,由8086提供系统所需的全部控制信号,用来构成一个小型的单处理机系统。

当MN/接地时,8086处于最大方式,系统的总线控制信号由专用的总线控制器8288提供,用来构成一个多处理器或协处理器系统。最小系统是一个单处理器系统,系统的规模小,由CPU直接产生系统总线的控制信号。最大系统是一个多处理器系统,系统规模大,CPU不直接产生系统总线的控制信号,系统增设了一片总线控制器8288,在CPU控制总线时8288有效,CPU将访问总线的状态信号送入8288,8288译码后产生系统总线的控制信号。8086的控制信号一部分与最大、最小方式有关,双重功能。一部分位公共的,不分最大最小方式。

(1)受最小、最大影响的信号线(双重功能)

第26---28脚,三引脚功能分别为最大方式:—总线周期状态信号(三态、输出)表示8086外部总线周期的操作类型。

共可产生8种总线操作状态指示,8288译码后可产生相应的控制信号,

状态信号的编码

S2S1S0CPU操作过程8288产生信号

000发中断响应信号INTA001读I/O端口IORC010写I/O端口IOWC011暂停无

100取指令MRDC101读存储器MRDC110写存储器MWTC111无作用无最小方式下: 、、。MOVIN/OUT为存储器/IO访问控制信号(输出、三态),=1时用于区分CPU访问的是存储器,=0时访问的是I/O端口。可用于存储区译码或I/O译码选择控制。ABM/IO存储器译码EN

I/O译码EN存储器I/O端口M/IO还可以与RD、WR组合产生访问存储器的读写和访问I/O的读写控制信号。M/IO=1RD=0组合产生MEMR(存储器读)M/IO=1WR=0组合产生MEMW(存储器写)M/IO=0RD=0组合产生IOR(I/O读)M/IO=0WR=0组合产生IOW(I/O写)DT/R:数据收发器发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT/R=1,发送数据----写操作;DT/R=0,接收数据--读操作。M/IORDWRMEMRMEMWIORIOWDEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。数据收发器由多个双向三态门组成专门用于控制数据传送的部件。DEN在总线周期T2----T4有效=0,在此期间数据收发器开门,CPU可以传送数据信息,DT/R可以控制数据传送的方向。AD15—AD0DENDBDT/R数据收发器第30、31脚最大方式的功能为:RQ/GT0、RQ/GT1:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。最小方式的功能为:HOLD:总线请求信号,输入,高电平有效。HLDA:总线请求响应信号,输出,高电平有效。以上均用于总线请求与总线响应过程的控制。总线请求与总线响应过程共分为三个阶段:请求---允许----释放A.请求:需要使用总线的部件向CPU产生总线请求信号送入CPU.B.允许:CPU响应后产生允许信号通知请求部件。同时CPU放弃总线,所有三态线进入高阻状态。请求部件收到允许信号后就可以控制总线进行总线操作了。C.释放:请求部件使用总线结束后释放总线并通知CPU,CPU收到后收回总线继续操作。:请求/允许总线访问控制信号(双向)。最大方式时:RQ/GT0接协处理器8087RQ/GT1接协处理器8089要在一根线上实现三个阶段的控制采用的是三个负脉冲。

第一个:由请求部件送入CPU,表示请求使用总线。第二个:由CPU送个请求部件,表示CPU已经允许并放弃总线,请求部件收到后可以使用总线。第三个:由请求部件送给CPU,表示总线已使用结束并释放总线,CPU收到后可收回总线。注意:RQ/GT0的级别比RQ/GT1高。最小方式时HOLD、HLDA用于DMA控制器,由于2条线只用于一个部件,所以可采用电平方式HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发HOLD=1高电平的请求信号。HLDA:总线请求响应信号,输出,高电平有效。当HLDA=1有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。请求部件可以使用总线完成所需的操作。请求部件使用总线结束后将HOLD=0。表示使用结束并已释放总线。CPU收到后将HLDA=0并收回总线。第24—25脚:最大时的功能是QS1、QS2:指令队列状态信号,输出。

QS1QS2含义

00无操作

01将指令首字节送入指令队列

10队列为空

11将指令其余字节送指令队列最小时功能为:ALE和ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A19-A0,分时使用AD15-AD0地址/数据总线。ALEA19—A16AD15—AD0AB

BHE

DENDB地址锁存器数据收发器D15—D0A19—A0BHEALE信号在T1时刻有效,此时地址锁存器输入开门,CPU产生的地址信息→地址锁存器→AB.在T1结束时,ALE由1→0,锁存器此时锁存CPU产生的地址信息。T2—T4时刻:ALE=0无效,地址锁存器输入关门。而DEN=0有效,数据收发器允许工作,CPU传送数据信息。T2—T4时刻由地址锁存器继续输出地址信息。系统利用地址锁存器和数据收发器实现了地址/数据分时复用。INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。(4)第29脚:最大方式的功能:LOCK总线封锁信号,三态输出,低电平有效。CPU执行的指令很重要不允许CPU响应响应总线请求时,可在指令前加入前缀LOCK,例如:LOCKMOVAX,1234H,CPU执行时可产生LOCK=0,用于封锁其它控制器请求总线。最小方式的功能:WR:写信号,三态输出,低电平有效。WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。(2)、不受MN/MX影响的控制总线─读信号,三态输出,低电平有效。RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。M/IO=1RD=0组合产生MEMR(存储器读)M/IO=1WR=0组合产生MEMW(存储器写)M/IO=0RD=0组合产生IOR(I/O读)M/IO=0WR=0组合产生IOW(I/O写)

READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。CPU在T3结束后进入T4,CPU在T3结束后完成读写进入T4后,总线复位,本次操作结束。被访问的存储器或IO端口在总线周期T3时未准备好传送数据时可设置READY=0,表示未准备好,CPU在T3结束后不进入T4,此时对应的时钟称为等待时钟TW,相当于自动插入等待时钟,直到READY=1为止。当被访问的部件可以完成数据传输时,被访问的部件将使READY=1(高电平),8086CPU结束TW进入T4继续运行。

(3)、INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,当INTR=1,并且IF=1(允许中断),CPU在当前指令结束后即可响应中断,进入中断服务响应周期,在中断响应周期中可产生两个INTA(中断响应信号),在第二个INTA时,中断源送入类型号→CPU,CPU由此进入中断服务程序执行进行中断服务。CLKT1T2T3T4T1T2T3T4第一中断响应周期第二中断响应周期ALEINTAAD7-AD08086中断响应周期的时序图(4)、NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。响应后不执行中断响应周期,直接产生类型号,CPU进入中断服务程序执行处理NMI中断。NMI中断级别高于INTR,用于处理紧急情况。例如:内存奇偶校验错、I/O校验错、协处理器出错、电源掉电等。(5)、TEST:等待测试信号,输入,低电平有效。在CPU执行某条指令后需等待外部的部件完成操作并回送一个信号到TEST后CPU才可执行下条指令,此时可在该指令后设置一条等待指令WAIT,CPU执行WAIT指令时,每隔5个时钟周期对TEST进行一次测试,若TEST=1,CPU继续等待,直到TEST=0,CPU结束等待状态执行下条指令。(6)、RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期CPU进入复位。复位后:标志寄存器FR、指令指针IP、段DS、SS、ES为0,CS=FFFFH。指令队列清空。复位后CPU从CS*10H+IP=FFFF0H处开始取第一条指令执行启动系统。3、其它信号:(1)CLK:主时钟信号,输入。由该脚送入8086/8088的时钟信号,频率为5MHZ,占空比为1:3。TT=200ns

2/3

1/3(2)VCC:电源输入端,8086/8088采用单+5V电源。(3)GND:地线。1、20引脚为地线。二、8088的引脚与8086的不同之处8088是准16位处理器,内部结构与8086相同。8088与8086引脚不同之处有:(1)地址/数据分时复用:8086AD15—AD0共16条。8088AD7—AD0共8条,A15—A8为单一功能的地址线。(2)8088无BHE/S7引脚,8088DB为8位,存储器不用分体,该脚功能改为SS0.(3)8086的M/IO在8088中改为IO/M。2023/2/6>>微机原理<<872.18086/8088微处理器2.1.5存储器组织1.存储器地址空间和数据存储格式(1)8086的存储器以字节为单位组织,具有20条地址总线,可寻址的存储器地址空间容量为1MB。每个字节对应一个唯一的地址,地址范围为0~220(即00000H~FFFFFH)。2023/2/6>>微机原理<<882.18086/8088微处理器8086系统将其内存贮器分成两个部分,每一部分为512KB。一部分叫偶存贮体,其内存单元的地址码都是偶数,数据总线接CPU数据总线的低8位D7—D0;另一部分叫奇存贮体,其中内存单元的地址码都是奇数,数据总线对应接CPU数据总线的高8位D15—D8。每个存贮体有19条地址线,两个存贮体的全部地址线对应与CPU的19条地址总线A1~A19相联。地址线A0作为偶存贮体的片选信号,作为奇存贮体的片选信号。23540H=0010001101010100000034H23541H=0010001101010100000112H发地址=0010001101010100000同时选中奇偶体的2个单元(A0=0选偶体。BHE=0选奇体)D15—D8=12HD7—D0=34HD15—D0=1234H(16位)2023/2/6>>微机原理<<892023/2/6>>微机原理<<902023/2/6>>微机原理<<912.18086/8088微处理器(2)数据存储格式:8086有16根数据线,可以进行16位或8位运算。8位二进制数组成一个字节,二个字节组成一个字。存储器内两个连续的字节,定义为一个字,一个字中的每个字节,都有一个字节地址,每个字的低字节存放在低地址中,高字节存放在高地址中。字的地址指低字节的地址。各位的编号方法是最低位为位0,一个字节中,最高位编号为位7,一个字中最高位的编号为位15。2.18086/8088微处理器2.存储器的分段为了使8086CPU能寻址到外部存储器1MB空间中任何一个单元,采用了地址分段方法(将1MB空间分成若干个逻辑段),每段不超过64KB。段与段能连续排列。也能部分重叠,完全重叠,断续排列。段数也没有一定限制。一个存储单元可以只属于某一段,也可以属于多个互相重叠的段。最终将寻址范围扩大到1MB。2.18086/8088微处理器3.存储器的物理地址形成逻辑地址:“段地址:偏移地址”物理地址=段地址×10H+段内偏移地址8086系统存储器的组织及物理地址的形成1、8086/8088系统存储器的组织

8086/8088是16位的微处理器,有20位地址线,可以访问1MB的内存空间,地址编号为00000H—FFFFFH.

在组成存储系统时,总是使偶地址单元的数据通过AD7

~AD0传送,而奇地址单元的数据通过AD15~

AD8传送,所有的操作可以是按字节为单位也可以是按字为单位来处理的,但8086/8088系统中的存储器是以8位(一个字节)为单位对数据进行处理的。因此每个字节用一个唯一的地址码表示,这称为存储器的标准结构。

需要说明的是,在存储器中,任何连续存放的两个字节都可以称为一个字。存放时采用小数端方式,低字节存放在低地址单元,高字节存放在高地址单元。其低位字节可从奇数地址开始,这种方式称为非规则方式,奇数地址的字称为非对准字。其高位字节可从偶数地址开始,这种方式称为规则方式,。将偶数地址的字称为对准字。对准字可以在一次访问中实现16位读写。非对准字必须用二次访问才可以实现16位读写。例如:1234H存放在2000H单元(对准字---偶地址字)(2000H)=34H2000H(2001H)=12H2001H书写:(2000H)=1234H2000H为字地址,2001H是隐含的。34H12H例如:5678H存放在2003H单元(未对准字---奇地址字)(2003H)=78H2003H(2004H)=56H2004H书写:(2003H)=1234H2003H为字地址,2004H是隐含的。78H56H例如:(2000H)=41H(2001H)=42H这里2000H、2001H为字节单元,CPU每次访问一个单元中的8位数据。存储单元为字单元还是字节单元是通过数据段定义时决定的,定义后必须按属性访问,但可以通过重新指定属性的方式按所需的属性访问。在考虑执行速度时应该采用对准好字。8086存储器的分段结构

(1)为什么要分段由于8086/8088有20条地址线,可以寻址多达220(1M)字节,而8086/8088内部数据通路和寄存器均为16位,所以编程中的地址只能为16位。所以必须引入分段的方法,把1M字节的存储器分为任意数量的段,其中每一段最多可达寻址216(64K)字节,程序中就可以用16位的方式进行访问了。

(2)分段8086CPU把1M字节的存储器空间划分为任意的一些存储段,一个存储段是存储器中可独立寻址的一个逻辑单位,也称逻辑段,每个段的长度为64K字节。8086CPU中有四段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基址,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段。

一个存储段是存储器的一个逻辑单位,其长度可达64K字节,每段第一个字节的位置称为“段起始地址”。对段起始地址的要求是:最好能被16整除(起始地址为××××0H)。段寄存器中存放了与段起始地址有关的16位“段基值”(SegmentBasevalue),几个段可以相互重叠,也可指向同一个64K字节空间。例如:地址从30000H作为段起始地址的存储区域,3000H作为段基址,30000H位段起始地址,访问31000H单元的地址可以为:3000H:1000H3000H为段基址,1000H为段内偏移地址。30000H3000H:0000H1000H

(偏移量)

31000H3000H:1000H{采用分段后,每段的最大空间只有64K。对大于64K的信息可以采用多段存放,从一段到另一段访问时需要同时改变段基址和段内偏移地址(共32位),称为段间访问。例如:3000H:1000H4500H:0500H

对存储空间小于64KB的,为了节省存储空间可以采用分段相互重叠和全部重叠的方法,把不用的空间用作其他段使用。例如:部分重叠完全重叠段1、段2段2段1段1、段2对于段内访问:可以只需要修改段内偏移地址就可以在64KB的范围内访问多个单元,段基址不用改变。例如:2500H:0100H0150H

(3)物理地址与逻辑地址在具有地址变换机构的计算机中,有两种存储器地址:一种是逻辑地址(LogicalAddress)

—允许在程序中编排的地址。包括:段地址(16位),段内偏移地址(16位)。一种是物理地址(PhysicalAddress)

—信息在存储器中实际存放的地址(20位)。8086系统中,对给定的任一存储单元而言有两部分逻辑地址;“段基值”—决定所在段第一个字节的位置;“段内偏移量”(Offset)—该存储单元相对于该段起始单元的距离。“段基值”存放在段寄存器(CS、SS、DS、ES)中。“段内偏移量”由SP、BP、SI、DI、IP、BX和直接地址以及上述寄存器和直接地址的组合而形成。

8086/8088CPU中有一个地址加法器,它将段寄存器提供的段地址自动乘以10H即左移4位,然后与16位的偏移地址相加,并锁存在物理地址锁存器中。如图所示。物理地址=段基址*16+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BP、SP等。段寄存器值偏移量+物理地址16位4位16位20位存储器物理地址的计算方法

CS0000

IP代码段

DS或ES0000

SI、DI或BX

SS0000

SP或BP数据段堆栈段存储器段寄存器和偏移地址寄存器组合关系8086系统中逻辑地址的来源可归纳如表所示。注:EA(EffectiveAddress)为有效地址,反映操作数的段内偏移地址。指令的物理地址=CS*10H+IP堆栈栈顶物理地址=SS*10H+SP操作数物理地址=DS*10H+EAEA(有效地址)由寻址方式产生,包括:直接偏移地址、由BX、SI、DI寄存器产生的间接地址(包括:直接间址、基址、变址等)源数据串物理地址=DS*10H+SI

目的数据串物理地址=ES*10H+DI堆栈区内数据物理地址=SS*10H+BP可替换的段基址又称为段超越或段跨越。实现的方法:在寻址方式前加‘段寄存器名:’例如:MOVAX,[BX];用BX间接寻址的隐含段是DS,寻址的物理地址=DS*10H+BX如果现在用BX间址访问的段是SS,指令就要写成:MOVAX,SS:[BX];寻址的物理地址=SS*10H+BX2023/2/6>>微机原理<<1132.18086/8088微处理器2.1.6输入输出组织8086/8088CPU共有20条地址线,对存储器和I/O端口的寻址采用独立编址的方式,低16条用来给I/O编址,所以能寻址的I/O空间为64K(216)个,端口号取值范围:0000H~FFFFH。两个端口编号相邻的8位端口可组成一个16位端口。8086/8088CPU用地址线的低16位加上部分控制线完成对I/O端口的存取。2023/2/6>>微机原理<<1142.18086/8088微处理器2.1.7系统配置

1.最小模式下的系统配置

——是单微处理器系统。除8086CPU以外,系统包括:存贮器、I/O接口时钟发生器8284,地址锁存器8282和数据收发器82862023/2/6>>微机原理<<1152.18086/8088微处理器2023/2/6>>微机原理<<1162.18086/8088微处理器

2.最大模式下的系统配置

——是由多个微处理器/协处理器构成的多机系统,CPU引脚MN/接地(GND)。在最小模式的配置上,增加了总线控制器(8288),总线裁决器(8289)。2023/2/6>>微机原理<<1172.18086/8088微处理器2023/2/6>>微机原理<<1182.18086/8088微处理器3.最大方式时序与最小方式时序的区别(1)控制信号ALE、DEN和DT/(2)命令信号、、、

温馨提示

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

评论

0/150

提交评论