版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8086/8088的主要特性:Intel8086/8088采用高速运算性能的HMOS工艺制造,内含29000个晶体管,封装在标准的40引脚双列直插式塑封管壳内。采用+5V电源供电。
内部总线:
16位
数据总线:8086:16位(称为16位CPU)
外部数据总线:
8088:8位(称为准16位CPU)
地址总线:20位,可直接寻址1MB存储空间。
寻址方式:7种基本的寻址方式(细分为24种)提供了灵活的操作数存取方法。
第2章Intel8086/8088微处理器1
指令系统:100条基本指令。数据传送位算数运算字节指令类型:逻辑运算数据类型字串处理指令字节串控制转移字串处理器控制BCD数
时钟频率:8088:4.7MHz;8086:5MHz;
8086-2:8MHz。
中断功能:可处理内部软硬件和外部硬件中断,可管理的中断源多达256个。
工作模式:支持单处理器、多处理器两种模式。22.18086/8088的编程结构
所谓编程结构:从程序员和使用者的角度来看的CPU结构。这种结构与CPU内部的物理结构和实际布局有区别,8086/8088CPU内部分为两个部分:1.总线接口部件
BIU(BusInterfaceUnit)2.执行部件EU(ExecutionUnit)38086的编程结构执行部件(EU)总线接口部件(BIU)标志运算寄存器ALUDSSSES输入/输出控制电路IPCS内部暂存器20位地址加法16位指令队列缓冲器8位16位CHDHDISPBPSIBHAHDLCLALBL通用寄存器123456外部总线执行部分控制电路42.1.1、总线接口单元
BIU(BusInterfaceUnit)(1)功能:负责与M、I/O端口之间传送数据或指令代码。具体讲:总线接口部件要从内存取指令送到指令队列;
CPU执行指令时,要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件;或把执行部件的操作结果传送给指定的M或I/O口。5(2)组成6字节(8086)或4字节(8088)的指令队列,指令指针寄存器IP:IP为一个16位的寄存器,
20位的地址加法器(16d段地址+偏移地址=物理地址),段寄存器:CS、DS、SS、ES,总线控制逻辑: 处理器与外界总线联系的转接电路。包括三组总线:20位地址总线,16位(8086)或8位(8088)双向数据总线,一组控制总线。6(3)三点说明
指令队列8086的指令队列为6个字节,8088的指令队列为4个字节。不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中,使BIU具有预取指令的功能,是一种先进先出(FIFO)的数据结构。
工作过程中,只要有2个字节(8086)或1个字节(8088)为空,则BIU自动取指填充指令队列。
指令执行顺序顺序程序执行:指令队列中的指令代码按顺序存放。执行转移指令:BIU清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后再从新单元(转移的目标地址)开始重新填满队列。(分支惩罚)7
内存单元的物理地址PA的产生过程如图2.2所示
图2.220位物理地址的产生过程82.1.2、EU(ExecutionUnit)执行单元(1)、功能:负责指令的译码和执行。(2)、组成:16位的运算器ALU:包括数据的算数/逻辑运算和偏移地址的运算;16位的标志寄存器(PSW):9个标志位,其中6个条件(状态)标志位用于存放结果状态;暂存器:辅助ALU完成各种运算,暂存参与运算的数据;通用寄存器组:数据寄存器AX、BX、CX、DX,专用寄存器:BP、SP、SI、DI;EU控制电路:接收从总线接口单元的指令队列中取来的指令代码,对其译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作。9
由此可见,8086/8088取指部分与执行部分是分开的。在一条指令的执行过程中可以取出下一条(或多条)指令,指令在指令队列中排队;在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。8086/8088微处理器:
BIU和EU分开,取指和执行可以重迭,大大减少了等待取指所需的时间,提高CPU的利用率。重迭操作技术:一方面提高了整个执行速率,另一方面降低了与之相配的存储器的存取速度的要求。
对于8080与8085及较早的8位微处理器:程序执行由取指令和执行指令的循环来完成,每条指令执行完后CPU必须等待到下条指令取出来后才能执行。102.1.3、
寄存器
(1)、功能:用来存放运算过程中所需要的操作数地址、操作数及中间结果。(2)、组成:通用寄存器:8个16位的通用寄存器,分为通用数据寄存器和通用地址寄存器;
通用数据寄存器分别是AX、BX、CX和DX,它们通常可以用来存放16位的数据。这4个寄存器又可以分为8个8位寄存器来使用,分别是AH、AL、BH、BL、CH、CL、DH和DL,只能存放8位数据。通用地址寄存器分别是BP、SP、SI和DI,也因为其特殊用途被分别称为基址指针、堆栈指针、源变址寄存器、目的变址寄存器。这组寄存器主要存放的内容是某一段内偏移量,通常用来形成操作数地址。BP和SP与SS联用,为访问当前堆栈段提供方便。SI和DI通常与DS联用,为访问当前数据段提供段内偏移量。
表2.1列出了8086/8088通用寄存器的特殊用途。11寄存器名
特
殊
用
途
隐含性质
AX,AL在I/O指令中作数据寄存器在乘法指令中被乘数或乘积,在除法指令中存放被除数或商
不能隐含隐含
AH在SAHF、LAHF指令中,分别作为源和目的操作数寄存器
隐含
AL在XLAT指令作累加器
隐含
BX在间接寻址中作基址寄存器在XLAT指令作基址寄存器
不能隐含隐含
CX在循环指令和串操作指令中作计数器
隐含
CL在移位指令中作移位次数寄存器
不能隐含
DX在字乘法/除法指令中存放乘积高位/被除数高位或余数在I/O指令中作间接寻址寄存器
隐含不能隐含
SI在间接寻址中作变址寄存器在串操作指令中作为源变址寄存器
不能隐含隐含
DI在间接寻址中作变址寄存器在串操作指令中作为目的变址寄存器
不能隐含隐含
BP在间接寻址中作基址指针
不能隐含
SP在堆栈操作中作堆栈指针
隐含
表2.1寄存器的特殊用途12段寄存器:CS:代码段寄存器,用于存放正在或正待处理的一般代码段的起始地址的高16位,即一般代码段的段基址。DS:数据段寄存器,用于存放正在或正待处理的一般数据段的起始地址的高16位,即一般数据段的段基址。ES:附加数据段寄存器,用于存放正在或正待处理的附加数据段的起始地址的高16位,即附加数据段的段基址。SS:堆栈数据段寄存器,用于存放正在或正待处理的堆栈数据段的起始地址的高16位,即堆栈数据段的段基址。指令指针IP:IP指令指针,它的内容始终是下一条待执行指令的起始偏移地址,与CS一起形成下一条待执行指令的起始物理地址。“CS:IP”的作用是控制程序的执行流程。IP一般会自动加1(逻辑加1、实际随指令长度变化)移向下一条指令实现顺序执行;若通过指令修改CS或IP的值,则可实现程序的转移执行。13程序状态字PSW;16位程序状态字PSW,它有3个控制标志(IF、DF、TF)和6个状态标志(SF、PF、ZF、OF、CF、AF)。控制标志是用于控制CPU某方面操作的标志,状态标志是部分指令执行结果的标志。PSW寄存器的具体格式如图2.3所示:IF:中断允许标志,用于控制CPU能否响应可屏蔽中断请求,IF=1能够响应,IF=0不能响应。DF:方向标志,用于指示串操作时变址寄存器是增量变化还是减量变化,DF=1向地址减小的方向变化,DF=0向地址增加的方向变化。TF:单步中断标志,TF=1程序执行当前指令后暂停,TF=0程序执行当前指令后不暂停。SF:符号标志,指令执行结果的最高二进制位是0还是1,为0,则SF=0。代表正数;为1,则SF=1,代表负数。14
PF:奇偶校验标志,用来表示指令执行结果的低8位中1的个数是奇数还是偶数,若为奇数个“1”则PF=0,若为偶数个“1”则PF=1。ZF:零标志,用来表示指令执行结果是否为0,若为0则ZF=1,否则ZF=0。OF:有符号数的溢出标志,用来表示指令执行结果是否超出有符号数的表示范围,若超出则OF=1,否则OF=0。我们可以通过是否出现以下四种情况之一来判断溢出:正加正得负,正减负得负,负加负得正,负减正得正。若出现以上情况则OF=1,否则OF=0。CF:进位/借位标志(无符号数的溢出标志),用来表示指令执行结果的最高位是否有向更高位进位或借位,若有则CF=1,同时也代表无符号数溢出;若无则CF=0,也代表无符号数无溢出。AF:辅助进位/借位标志,低4位二进制是否有向高位进位或借位,若有则AF=1,否则AF=0,其主要用于BCD修正运算。
在调试程序DEBUG中,提供了测试标志位的方法,它用符号来表示标识位的值。表2.2说明了各标志位在DEBUG中的符号表示。(TF在DEBUG中不提供符号)15表2.2PSW中标志位的符号表示
162.2.18086/8088的工作模式
2.2
8086/8088的工作模式和引脚功能最小模式:单处理器模式
是指系统中只有8086或8088一个微处理器,所有总线控制信号均由CPU直接产生,因此,系统的总线控制逻辑被减到最少。最小模式用在规模较小的8086/8088系统中。最大模式:多处理器模式
是指系统中包含两个或多个微处理器,其中主处理器是8086或者8088,其余处理器称为协处理器,系统的总线控制信号主要由总线控制器产生,系统的总线控制逻辑相对复杂一些,最大模式用于中、大型的8086/8088系统。
178086GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND8086引脚图VCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8088GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND8088引脚图VCCA15A16/S3A17/S4A18/S5A19/S6SSO
(HIGH)MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET2.2.28086/8088的引脚功能
引脚图如下,其中带括号的引脚功能为最大模式下的功能。
188086引脚可分为5类:1、地址线(20位):AD0~AD15,A16~A19。其中AD0~AD15为地址/数据复用引脚,故为双向、三态;A16~A19为地址/状态复用引脚,输出、三态。此外,AD0还作为低8位数据选通信号使用。
据此得出:直接寻址能力=220=1MB2、数据线(16位):AD0~AD15,与低16位地址分时复用,双向、三态。
8088的AD0~AD8,与低8位地址分时复用19QS1QS0含
义00110101无操作从指令队列的第一个字节取走代码队列空除第一字节外,还取走了后续字节的代码3、状态线:
QS1、QS0:指令队列状态信息(用于最大模式),输出。
这两个信号的不同组合指出了本总线周期的前一个时钟周期中指令队列的状态,以便外部对CPU内部指令队列动作的跟踪。表2.3QS1、QS0的代码组合及对应的含义
20无源状态111写内存011读内存101取指令001暂停110写I/O端口010读I/O端口100中断响应000总线操作类型S0S1S2表2.4S2、S1、S0的代码组合及对应的总线操作类型
S2、S1、S0:总线周期状态信息(用于最大模式),输出。
这三个信号的不同组合指出了本总线周期所进行的数据传输过程的类型。最大模式系统中的总线控制器就是利用这几个状态信号来产生对存储器和I/O端口的控制信号的。21
S6—S3:地址/状态复用引脚,输出。
其中,S6:表示当前8086是否与总线相连,S6=“0”表示当前8086连在总线上,由于在8086总线操作其间,它总是与总线相连的,故在每个总线周期的T2、T3、Tw和T4状态S6≡“0”。S5=IF标志。S4、S3:它们的组合指出当前正在使用哪个段寄存器。S4S3含义00当前正在使用ES01当前正在使用SS10当前正在使用CS或未使用任何段寄存器11当前正在使用DS表2.5S4、S3的代码组合及对应的含义
22BHE/S7:高8位数据总线允许/状态复用引脚,输出。
信号和AD0组合起来指出当前数据总线上的数据将以何种格式出现,这两个信号的代码组合及对应的数据格式见表2.6。
AD15~AD8AD7~AD0
从奇地址开始读/写一个字(共占用两个总线周期,第一个总线周期将低8位数据送AD15~AD8,第二个总线周期将高8位数据送AD7~AD0)1
00
1AD15~AD8从奇地址单元或端口读/写一个字节10AD7~AD0从偶地址单元或端口读/写一个字节01AD15~AD0从偶地址开始读/写一个字00所用数据线
数据格式AD0BHE表2.6和AD0的代码组合及对应的数据格式
23说明:
对于8088,该引脚为:系统状态输出信号,用于8088的最小模式(在最大模式中SSO≡“1”),它与8088的另外两个信号共同决定当前总线周期的操作类型,输出。
表2.7的代码组合及对应的含义
244、控制线:
ALE:地址锁存信号,输出,用于最小模式。
RD:读控制信号,输出,三态,用于最小模式。WR:写控制信号,输出,三态,用于最小模式。DEN:数据允许信号,输出,三态,用于最小模式。M/IO:存储器或I/O操作选择信号,输出,三态,用于8086最小模式。当M/IO=“1”时表明该总线周期是对存储器进行读/写操作,反之,当M/IO=“0”时表明该总线周期是对I/O端口进行读/写操作。DT/R数据收/发控制信号,输出,三态,用于最小模式。当DT/R=“0”时,CPU从总线读入数据,反之,当DT/R=“1”时,CPU向总线写出数据。INTA:中断响应信号,输出,用于最小模式。RESET:复位信号,输入。READY:准备好信号,输入。NMI:非屏蔽中断请求信号,输入。25INTR:可屏蔽中断请求信号,输入。
MN/MX:工作模式选择信号,输入。
若使8086工作在最小模式,则MN/MX应接“1”,否则,MN/MX接“0”。
CLK:时钟信号,输入。
TEST:测试信号,输入,用于多处理器系统。
该信号与WAIT指令配合使用,当CPU执行WAIT指令时,处于空转状态,并检测引脚,只要TEST=“0”则立即结束等待,继续执行后续指令。
HOLD:总线请求信号,输入,用于最小模式。
HLDA:总线响应信号,输出,用于最小模式。
这两个信号总是配对使用,当其它总线主设备要占用总线时,通过HOLD向8086发出一个高电平的总线请求信号,若这时总线未被封锁,则8086通过HLDA线输出一个高电平表示响应,然后,把总线控制权交予该设备。当该设备使用完总线时,将HOLD线变为低电平,表示撤消总线请求信号,则8086也将HLDA线变为低电平,收回总线控制权。
265、供电线:VCC:+5V直流工作电压。
GND:接地端。RQ/GT1:总线请求/总线允许信号,双向,三态,用于最大模式。
RQ/GT0:总线请求/总线允许信号,双向,三态,用于最大模式。
这两个信号的作用完全相同,其中每一个信号都相当于最小模式下的HOLD和HLDA一对信号的作用,即外部设备请求时为输入,CPU响应时为输出。
LOCK:总线锁定信号,输出,三态,用于最大模式。
该信号由LOCK前缀指令产生,有效时其它设备不能占用总线。27说明:
8088与8086除了内部指令队列长度不同外,在引脚上还有三点区别:
1、外部数据总线的宽度不同。
8086的外部数据总线为16位(AD15—AD0);8088的外部数据总线为8位(AD7—AD0)。
2、第28引脚不同。
8086的第28引脚为M/IO,即该引脚信号为高电平,表示对存储器操作,为低电平则是对I/O端口操作;8088的第28引脚为M/IO,即该引脚信号为高电平,表示对I/O端口操作,为低电平则是对存储器操作。
3、第34引脚不同。
8086的第34引脚为BHE/S7,其功能已如前述;8088的第34引脚为SSO,在最小模式下的功能已如前述,在最大模式该引脚恒为“1”。
282.2.38086/8088的最小模式
1、
8086/8088最小模式的典型配置
MN/MX引脚接高电平(或直接接+5V)时,系统工作于最小模式,即单处理器模式,它适用于较小规模的应用。其中:8284A为时钟发生器:为CPU提供CLK、READY、RESET信号8282为地址锁存器:形成20位地址线A19~A16,AD15~AD08286为数据总线收/发器:形成16位数据线AD15~AD029
图2.58086最小模式的典型系统结构30该CPU系统以8086为核心,外部晶体振荡器产生的振荡信号经8284分频后,作为主频信号CLK提供给8086,同时,外部来的准备好信号READY和复位信号RESET也经8284A整理后送往8086。
8086的20位地址信号A19~A16,AD15~AD0,以及高位字节允许信号,在地址锁存信号ALE控制下经8282锁存后输出,即为地址总线。
8086的16位数据线AD15~AD0在8286的控制下可以进行双向数据传送,即为数据总线。传送方向由数据收/发控制信号来选择,是否允许传送由数据允许信号控制。其它控制信号均由8086直接输出,即为控制总线。如此,就形成了以8086为核心的三总线结构的CPU系统。
工作原理说明:312、主要外围芯片的功能时钟发生器及其与CPU的连接:时钟发生器8284A的引脚功能及其与8086/8088的连接如图2.6所示。图2.68284A的引脚功能及其与8086/8088的连接
CPU32地址锁存器及其与CPU的连接:地址锁存器可使用8282、8283或74LS244、74LS273、74LS373等,它们的内部逻辑及引脚特性如图2.7所示。与8086/8088的连接见最大、最小模式CPU系统结构图。图2.78282、8283、74LS244的内部逻辑及引脚特性
33数据总线收/发器及其与CPU的连接:数据总线收/发器可使用8286、8287(或74LS245),它们的内部逻辑及引脚特性如图2.8所示。与8086/8088的连接见最大、最小模式CPU系统结构图。图2.88286、8287的内部逻辑及引脚特性
342.2.48086/8088的最大模式
1、8086/8088最大模式的典型配置
MN/MX引脚接低电平(或直接接地)时,系统工作于最大模式,
即多处理器模式,适用于中、大型规模的应用。其中8288为总线控制器。工作原理说明:
最小模式和最大模式的主要区别在于控制信号的产生,最小模式下的控制信号是由CPU直接产生的,而在最大模式,控制信号由总线控制器8288产生。引脚上,第24~第31(8088还有第34)引脚的功能在两种模式下是不同的。
35图2.98086最大模式的典型系统结构
362、多处理器系统
8086/8088的最大模式系统通常为多处理器系统,其中必有一个主处理器8086或8088,其余为协处理器。常用的8086/8088系列协处理器有数值协处理器8087和输入/输出协处理器8089。
图2.10典型多处理器系统结构
373、总线控制器、协处理器及其与8086/8088的连接
8288是20引脚的DIP芯片,采用TTL工艺。图2.118288的内部结构与外部引脚388288的引脚信号分为三组:一组为输入状态和控制信号,二组为命令输出信号,三组为输出的总线控制信号。现分别介绍如下。S2、S1、S0:总线周期状态,输入,来自CPU。CLK:时钟信号,输入,来自8284A。AEN:总线允许信号,输入,来自总线仲裁逻辑。
CEN:控制信号允许,输入,来自总线仲裁逻辑。
IOB:总线方式控制端,输入,来自外部硬件。ALE:地址锁存信号,输出,去锁存器。
MCE/PDEN:总线主模块/局部总线允许控制信号,输出,去系统其它部件。
DEN:数据允许信号,输出,去数据总线收/发器。
DT/R:数据收/发控制信号,输出,去数据总线收/发器。
INTA:中断响应信号,输出,去中断控制器。
39AIOWC:I/O端口提前写信号,输出,去I/O接口。IOWC:I/O端口写信号,输出,去I/O接口。IORC:I/O端口读信号,输出,去I/O接口。AMTC:存储器提前写信号,输出,去存储器。
MWTC:存储器写信号,输出,去存储器。
MRDC:存储器读信号,输出,去存储器。
8288与8086的连接关系见8086/8088最大模式典型系统结构图。8087引脚图见图2.12,它们在8086系统中的连接见图1.10。
40图2.128087引脚图
412.38086/8088的总线操作和时序
2.3.18086/8088总线周期的概念1、T状态:
相邻两个脉冲之间的时间间隔,称为一个时钟周期,又称T状态(T周期)。每个T状态包括:下降沿、低电平、上升沿、高电平。CLKT422、总线周期:
8086/8088中一个基本的总线周期由4个时钟周期组成,每一个时钟周期称为一个T状态。若存储器或外部设备跟不上CPU的速度,则在第三个时钟周期(称为T3)之后插入等待状态TW,直到数据传送完毕,才退出等待状态,结束总线周期。典型的总线周期波形见图2.13。图2.13典型的总线周期波形图432.3.28086/8088的典型操作和时序
1、系统的复位和启动操作
8086/8088的复位和启动是由引脚上的RESET信号触发的,触发时要求该信号至少维持4个时钟周期的高电平,如果是上电复位,则要求该信号至少维持50μs的高电平。无论何时,只要RESET一进入高电平,8086/8088CPU就会结束现行操作,开始复位,并且,只要RESET停留在高电平状态,CPU就维持在复位状态。复位时,各内部寄存器被设置为如下初值:见下页
44表2.8复位时各内部寄存器的初值寄存器名称初值标志寄存器(PSW)清零指令指针(IP)0000HCS寄存器FFFFHDS寄存器0000HSS寄存器0000HES寄存器0000H其它寄存器0000H指令队列空
45
复位时,代码段寄存器CS和指令指针IP的值分别被初始化成FFFFH和0000H。因此,8086/8088启动后从内存的FFFF0H处开始执行指令。一般在FFFF0H处放一条无条件转移指令,转移到系统程序的入口处,这样,系统一旦被启动,就会自动进入系统程序。
复位时,标志寄存器被清零,即清除了所有标志位,这屏蔽了所有从INTR引脚上来的可屏蔽中断请求。因此,系统在适当时候要通过指令来设置中断允许标志。
在时序上,RESET信号从高到低的跳变会触发CPU内部一个复位逻辑电路,经过7个时钟周期之后,CPU就被启动而进入正常工作,即从FFFF0H处开始执行程序。复位时序见下页图。
46图2.148086/8088的复位时序表2.98086/8088复位时总线信号的状态472、总线操作
读内存读内存读时序读时序读IO端口读IO端口最小模式最小模式
写内存写内存
写时序写时序
写IO端口写IO端口8086时序8088时序读内存读内存读时序读时序读IO端口读IO端口
最大模式最大模式写内存写内存写时序写时序写IO端口写IO端口
8086/8088在与存储器或I/O端口交换数据时需要执行一个总线周期,这就是总线操作。按照数据传输的对象,可分为存储器操作和I/O操作;按照数据传输的方向,可分为读操作和写操作。另有中断响应时序和复位时序48图2.158086最小模式下的总线读周期时序
1)8086最小模式下的总线读/写周期时序:49T3状态:被选中的内存单元或I/O端口将数据送到数据总线上,CPU通过AD15~AD0接收数据。TW状态:当存储器或外设的工作速度较慢,从而不能用基本的总线周期完成读操作时,系统自动插入等待状态。T4状态:在T4和前一个状态交界的下降沿处,CPU对数据总线进行采样,从而读入数据,同时撤消有关控制信号。至此,一个完整的读总线周期结束。
T1状态:CPU输出存储器单元或I/O端口的地址信息,并且从ALE引脚输出地址锁存信号,在ALE的下降沿将20位地址锁存到地址锁存器的输出端。BHE信号也在T1状态有效,表示高8位数据总线上的信息可以使用,该信号与地址一起被锁存。DT/R输出低电平,表示本总线周期为读周期。T2状态:地址信号消失,AD15~AD0变为高阻状态(也叫浮空),为读入数据作准备;A19/S6~A16/S3以及BHE/S7切换为状态信息;DEN引脚输出有效的低电平,使数据线选通;RD引脚输出低电平的读信号,送到被地址信息选中的存储器或I/O接口芯片。50图2.168086最小模式下的总线写周期时序
512)8086最大模式下总线读/写周期时序:
图2.178086最大模式下的总线读周期时序
图2.188086最大模式下的总线写周期时序
52图2.198086的中断响应总线周期
3、中断操作和时序
532.48086/8088的存储器组织和I/O组织2.4.18086/8088的存储器组织8086/8088CPU有20条地址线,可直接寻址1MB的存储空间。微机的存储器通常按字节组织排列成一个个单元,每个单元有一个唯一的地址码,这称为存储器的标准结构。若存放一个8位的数据(称为一个字节—1Byte),则可放在偶地址单元,也可放在奇地址单元;若存放一个16位的数据(称为一个字—1Word),这时有两种情况,低位字节放在较低的偶地址单元,高位字节放在较高的奇地址单元,称为规则字;相反,若将高位字节放在较低的偶地址单元,低位字节放在较高的奇地址单元,则称为非规则字。
1、存储器的标准结构54对于8086而言,存取一个规则字,只需要一个总线周期,而存取一个非规则字,就需要两个总线周期才能完成。
8086系统中,1MB的存储空间实际上被分成两个512KB的存储体或称为存储库,分别叫做高位库和低位库。高位库的数据线与8086CPU系统的高8位数据总线AD15~AD8相连,库中每个单元的地址均为奇数;低位库的数据线与8086CPU系统的低8位数据总线AD7~AD0相连,库中每个单元的地址均为偶数。BHE信号作为高位库的选择信号接到高位库的选择端;地址线A0作为低位库的选择信号接到低位库的选择端。如图2.20所示。所以,高8位数据总是对应奇地址,而低8位数据总是对应偶地址。
55
图2.208086存储器与总线的连接
562、
存储器的分段
8086/8088系统中1MB的存储单元按照00000H~FFFFFH来编址。但CPU的内部寄存器都是16位的,显然用寄存器不能直接对1M字节的内存空间进行寻址,为此引入了分段、物理地址和逻辑地址的概念。1)分段的实现:
8086/8088中将1MB内存分为若干个段(称为逻辑段),每个段最多包含64KB。段与段之间是相互独立的,可以分别寻址。规定每个段的首地址是一个可以被16整除的数(即段起始地址的低4位为0)。因此,可以取20位地址码中的高16位来表示段地址。前已指出,8086/8088CPU设置了4个段寄存器(CS、DS、SS、ES)。段的位置不受任何限制,段与段之间可以是连续的,可以是间断的,也可以是部分重叠的,甚至可以是完全重叠的。
57一个具体的存储单元可以只属于一个逻辑段,也可以同时属于几个逻辑段。只要给出它的段基址和段内的偏移地址就可以对它进行访问。图2.218086/8088的存储器分段示例
582)实际地址和逻辑地址:
实际地址(也称物理地址)是指CPU和存储器进行数据交换时所用的地址,对8086/8088来说,是用20位二进制或5位十六进制表示的地址码,是唯一能代表存储空间每个单元的地址。
逻辑地址是指产生实际地址所用到的两个地址分量:段地址和偏移量,它们都是用无符号的16位二进制或4位十六进制表示的地址码。段地址就是段寄存器的内容,即段起始地址的高16位;偏移量是段内某单元相对于段起始地址的距离。
3)实际地址的形成:
当CPU访问任何一个存储单元时,可由下式计算该单元的实际地址:实际地址=段地址×10H+偏移量这个地址的计算由20位地址加法器来完成。例如,某存储单元的段寄存器内容为2400H,段内偏移量为0053H,则其实际地址为:2400H×10H+0053H=24053H59
CPU与外部设备之间是通过I/O接口电路或接口芯片进行联络从而传递信息的。每个接口芯片上都有一个或几个用于寄存信息的寄存器,称为端口,这些寄存器和存储单元一样都有唯一确定的地址,称为端口地址。
2.4.28086/8088的I/O组织
对I/O端口有两种编址方式:
统一编址:指将I/O端口地址置于存储器空间中,和存储单元统一编址。其特点是可使用的指令多、寻址方式灵活,凡适用于存储单元的寻址方式都适用于I/O端口;但要占用存储空间,凡已编为I/O端口的地址,存储单元就不能再使用。覆盖编址:也称单独编址或独立编址。指将I/O端口单独编为一个地址空间,指令系统中设置专门的输入/输出指令。其特点是不占用存储空间,但寻址方式不如统一编址灵活。60
Intel8086/8088的I/O端口就是采用覆盖编址方式,它使用20位地址中的低16位地址A15~A0对I/O端口进行寻址,因此,最多可访问64K个8位I/O端口或32K个16位I/O端口,任何两个相邻的8位端口可以组成1个16位的端口。I/O端口的寻址方式也有两种:即直接寻址和DX间接寻址方式,详见指令系统部分。
612.5IBMPC/XT主机系统结构和工作原理IBMPC/XT是16位机时代最流行的微机系统,它以Intel8088CPU为核心。8088是8086微处理器的8位外部数据总线的变形,它不仅与8086兼容,而且与80286、80386、80486及Pentium都有较好的向上兼容性。
IBMPC/XT微机系统的硬件是一块约8.5英寸×12英寸的四层印刷电路板(主机板)、接口卡及其连接的外部设备。
主板上有四路电源:+12V、-12V、+5V和-5V。主机板与外部连接包括电源插头、一个连接键盘的5芯插座及一个连接扬声器的3针插座。其它外设均通过插在主机板扩展槽上的I/O适配器(接口卡)与主机系统相连。主机板上有8个62芯扩展槽,分别为J1~J8,当系统需要扩展时,可以在任何一个扩展槽上插上相应的适配器,如磁盘驱动器适配器、打印机适配器、串行通信适配器等。IBMPC/XT系统主机板元器件物理位置简化图见下页图2.22。
62图2.22IBMPC/XT系统主机板元器件物理位置简化图63
IBMPC/XT系统主板的电路原理框图图2.23IBMPC/XT系统主机板电路原理框图
64
IBMPC/XT系统主机板上的电路可划分为四大功能子系统:CPU子系统、I/O接口子系统、存储器子系统和PC总线子系统。2.5.1
CPU子系统
CPU子系统是整个机器系统的控制核心,负责管理全部的软、硬件资源,按规定时序完成要求的任务。它以8088微处理器为核心,配接必要的外围器件,它们包括时钟发生器8284A、地址锁存器74LS244、数据总线收/发器74LS245、总线控制器8288,需要时还可插入协处理器8087。其中,地址锁存器使用两片74LS373和一片74LS244对20位地址进行锁存,数据总线收/发器使用74LS245对数据读/写进行控制,并起到提高负载能力的作用。8088工作在最大模式,用Intel8288总线控制器对CPU执行指令时提供的状态信号建立相应的控制时序,产生控制命令的输出。
652.5.2
I/O接口子系统
I/O接口子系统是CPU子系统与相应外设的界面,负责管理键盘、扬声器、可屏蔽中断源等设备与CPU之间的协调工作。可用于扩展系统功能。它包括以下接口芯片和接口电路。1、接口芯片:
可编程并行接口芯片8255A-5:是一个具有3个8位并行端口的芯片,3个端口的作用分配为:端口A(PORTA)用作读取键盘的扫描码;端口B(PORTB)用作输出系统内部的一些控制信号;端口C(PORTC)用作读取系统配置开关的状态。66图2.248255A-5的外部连接
其中DIP为系统配置开关,其状态位置和系统配置之间的对应关系如下:67
开关1:OFF——普通工作方式,ON——循环自检方式。
开关2:OFF——系统中有8087,ON——系统中无8087。
开关4开关3系统板上的RAM容量
ONON64KONOFF128KOFFON192KOFFOFF256K开关6开关5显示器适配板的类型
ONON未插显示器适配板
ONOFF40×25型的彩色图形适配板
OFFON80×25型的彩色图形适配板
OFFOFF单色显示器适配板开关8开关7系统配备软盘驱动器个数
ONON1个软盘驱动器
ONOFF2个软盘驱动器
OFFON3个软盘驱动器
OFFOFF4个软盘驱动器68中断控制器8259A:
可管理8个中断源。在IBMPC/XT系统中,8259A用于管理可屏蔽中断。8个中断请求的使用情况如表2.10。
表2.10IBMPC/XT系统中,8259A各中断请求输入端的使用情况
69定时器/计数器8253-5:是一个含有3个16位定时器/计数器的集成芯片。通道0(CH0):作定时用,为系统实时时钟提供恒定的时间基准;通道1(CH1):为DMA的CH0产生DRAM刷新的定时信号;通道2(CH2):用作产生扬声器的基音调。
图2.258253-5在IBMPC/XT系统中的连接和使用70DMA控制器8237A-5:
是一片可以管理4个DMA通道,实现CPU不干预的I/O设备和内存之间进行直接高速数据传送的大规模集成电路芯片。4个通道的作用分配如下:通道0(CH0):用作DRAM刷新;通道1(CH1):为用户保留;通道2(CH2):给软盘驱动器使用,控制软盘与内存之间的数据传输;通道3(CH3):给硬盘驱动器使用,控制硬盘与内存之间的数据传输。以上接口芯片的片选信号是由一个以74LS138为核心的译码电路产生的。
71图2.26接口芯片的译码电路
当CPU控制总线时,,若此时A9=A8=0,则74LS138处于允许状态,它根据地址信号A7、A6、A5进行译码,在的某一端输出一个低电平信号,从而选中某一个接口芯片。地址低5位A4—A0作为对接口电路内部寄存器的选择信号。
DMACS去8237A-572
一般情况下,对接口电路内部寄存器的选择不需要用5位地址,这时在硬件连接上将较高位地址线悬空,而只用较低位,由于悬空的地址线可以为1也可以为0,于是,一个内部寄存器就对应了多个端口地址。表2.11接口芯片所对应的端口地址
732、接口电路IBMPC/XT系统中只有键盘和扬声器的接口在主板上,其余外设均通过插在扩展槽中的适配卡(适配器)与主机连接。·键盘接口电路:它通过主板后方的5芯DIN插座与键盘相连。该接口每当接收到一个完整的键盘扫描码时,就通过中断控制器8259A的中断请求端口向CPU发一次中断请求,以使CPU执行相应功能。·扬声器接口:在主板上有一个4芯的连接器(CN8),其中的两条线是扬声器的连接线,另外两条与电源指示灯相连。
74主板上的存储器子系统就是内存,用于存储程序和数据。IBMPC/XT系统中,存储空间分为3个区域:RAM区、ROM区和保留区。
2.5.3存储器子系统图2.27IBMPC/XT系统的内存分配751、RAM存储区
IBMPC/XT系统中,RAM最大容量为640KB。系统板上安装的RAM只有256KB,分为4个体,每个体由9片64K×1的动态RAM4164构成,其中8片用于组成每个单元的8位数据,第9片是奇偶校验位。系统板上也可以安装64KB、128KB或192KB的动态RAM,这些变动都可以按手册规定通过对DIP开关(SW4、SW3)的设置和系统板上的跨接线的设置来实现。4164存储器将在存储器一章介
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园教师信息化教学工具选择偏好-基于2023年微课制作比赛作品技术统计
- 人教版(2024)七年级下册英语 Unit 2 No Rules,No Order【单元卷·测试卷】
- 工程进度款拨付节点审核确认流程规范
- 四川省2025年度评标专家续聘复审考试(水利类)自测试题及答案解析
- 安全生产事故报告和调查处理实施细则
- 广播电视编辑记者资格考试(广播电视业务)能力提高训练试题库(娄底2025年)
- 二级学院年度预算编制管理办法
- 2025年铜仁市玉屏永昇国有资产投资管理有限公司招聘真题
- 【北京】2025年高考北京卷英语高考真题文档版(含答案)
- 2025-2030年美妆护肤团购特惠企业制定与实施新质生产力战略分析研究报告
- 针灸科质量控制工作制度
- 气管切开患者全程护理指南
- 中国肺大疱诊断与治疗指南(2025年版)
- 泌尿外科结石患者的疼痛管理
- 专科中心神经疾病建设实施方案
- 研学活动合同范本
- DB15∕T 3000-2023 心理援助热线服务流程
- 2024~2025学年江苏省泰州市兴化市统编版六年级下册期末毕业考试语文试卷
- 门窗厂安全生产管理制度
- 2025年中国品牌在东南亚市场的崛起报告-增长机遇及对区域竞争者的影响-欧睿国际
- 河道治理工程质量管理制度
评论
0/150
提交评论