版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章
80X86微处理器2-1
8086/8088微处理器的内部结构2-28086/8088CPU的工作模式及引脚功能2-38086/8088的存储器组织2-48086/8088的系统配置2-58086/8088的操作和时序主要内容问题:为什么选择8086/8088?以Intel8066/8088为CPU的IBMPC/XT/AT是最具有代表性的主流机型;许多设计思想、芯片连接、信号关系等是更高档微型机设计时参考对象和考虑因素,保持与之兼容简单、容易理解掌握重点8086CPU的编程结构,总线接口单元和执行单元的动作管理8086CPU的引线8086CPU基本总线周期各个T状态的作用存储器与I/O接口的读写时序难点8086的寄存器结构操作时序§2-18086/8088微处理器的基本结构基本情况
16/准16位CPU16/8位外部数据总线20位外部地址总线40根引脚5MHz(8086)、8MHz(8086-1)10MHz(8086-2)集成度2.9万3
m工艺1981年,IBM推出以8088为CPU的IBMPC8086/8088微处理器的基本结构
一、8086编程结构编程结构:从程序员和使用者的角度来看的结构。 这种结构与CPU内部的物理结构和实际布局有区别。
8086编程结构如下页图所示分两部分:1、总线接口单元BIU(BusInterfaceUnit)2、执行部件 EU(ExecutionUnit)8086/8088微处理器的基本结构执行部件总线接口部件通用寄存器四个专用寄存器SP:堆栈指针,其内容与堆栈段寄存器SS的内容一起,提供堆栈操作地址。
BP:基址指针:构成段内偏移地址的一部分.
SI:(SourceIndex):SI含有源地址意思,产生有效地址或实际地址的偏移量。
DI:(DestinationIndex):DI含有目的意思,
产生有效地址或实际地址的偏移量。算术逻辑单元ALU:主要是加法器。大部分指令的执行由加法器完成。标志寄存器:16位字利用了9位。标志分两类:状态标志(6位):反映刚刚完成的操作结果情况。控制标志(3位):在某些指令操作中起控制作用。四个段寄存器:CS、DS、SS、ESCS管理代码段;DS管理数据段SS管理堆栈段;ES管理附加段.16位的指令指针寄存器IP:IP中的内容是下一条指令对现行代码段基地址的偏移量,6字节的指令队列指令队列共六字节,总线接口部件BIU从内存取指令,取来的总是放在指令队列中;执行部件EU从指令队列取指令,并执行。1、总线接口单元
BIU(BusInterfaceUnit)(1).功能:负责与M、I/O端口传送数据。
具体讲:
总线接口部件要从内存取指令送到指令队列;
CPU执行指令时,要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件;或把执行部件的操作结果传送给指定的M或I/O口。8086/8088微处理器的基本结构(2).二点说明指令队列8086的指令队列为6个字节,8088的指令队列为4个字节。不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中,使BIU具有预取指令的功能,是一种先进先出(FIFO)的数据结构。指令执行顺序顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。执行转移指令:BIU清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后再从新单元开始重新填满队列。8086/8088微处理器的基本结构2、EU
(ExecutionUnit)执行单元
功能:负责指令执行。
接受从总线接口单元的指令队列中取来的指令代码,对其译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作。8086/8088微处理器的基本结构由此可见,8086/8088取指部分与执行部分是分开的。在一条指令的执行过程中可以取出下一条(或多条)指令,指令在指令队列中排队;在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。重迭操作技术:一方面提高了整个执行速率, 另一方面降低了与之相配的存储器的存取速度的要求。8086/8088微处理器的基本结构
执行指令3取指令3
执行指令2
取指令2
执行指令1
取指令1流水线操作
8086
执行指令2取指令2执行指令1
取指令1非流水线操作8085t0----------t1--------------t2------------t3-------------t4----------->T
在t0~t4时间间隔中,8085执行了2条指令。
在t0~t4时间间隔中,理想情况下,8086可执行3条指令8086/8088微处理器的基本结构返回8088的指令执行过程3、寄存器结构(1)通用寄存器组
AX、BX、CX、DX作为通用寄存器。
用来暂存计算过程中所用到的操作数,结果或其它信息。
访问形式: 可以用16位的访问;
或者可以用字节(8位)形式访问,
它们的高8位记作:AH、BH、CH、DH。 它们的低8位记作:AL、BL、CL、DL。8086/8088微处理器的基本结构AX——(Accumulator)作为累加器。 它是算术运算的主要寄存器,
所有I/O指令都使用这一寄存器与外部设备交换数据。 例: INAL,20H OUT30H,AXBX——Base用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基址。 例: MOVAX,[BX+03H]通用寄存器组可以由程序员任意使用,可用于任意用途,但在有些情况下,由系统规定了专门用途。8086/8088微处理器的基本结构CX——Count可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。 例: MOVCX,200HAGAIN: …… ……
LOOPAGAIN
;(CX)-1(CX),结果0转AGAINDX——Data可以作为数据寄存器使用。 一般在双字长乘除法运算时,
把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;
对某些I/O操作DX可用来存放I/O的端口地址(口地址
256)。 例: MULBX ;(AX)(BX)(DX)(AX)
例: INAL,DX8086/8088微处理器的基本结构(2)地址指针与变址寄存器
段起始地址
SP、BP、SI、DI四个16位寄存器。
主要存放某一个段内地址偏移量,用来形成操作数地址用于堆栈操作和变址寻址。
段内偏移地址
偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。 …BP,SP—指针寄存器,常与SS寄存器连用,访问堆栈段数据。SI,DI—变址寄存器,常与DS寄存器连用,访问数据段数据。8086/8088微处理器的基本结构(3)段寄存器
段寄存器:4个16位段寄存器CS、DS、SS、ES。 用来识别当前可寻址的四个段,不可互换的使用。CS——CodeSegmentRegister代码段寄存器 用来识别当前代码段(程序一般放在代码段)。DS——DataSegmentRegister数据段寄存器 用来识别当前数据段寄存器。SS——StackSegmentRegister堆栈段寄存器, 用来识别当前堆栈段。ES——ExtraSegmentRegister附加段寄存器, 用来识别当前附加段。8086/8088微处理器的基本结构(4)控制寄存器控制寄存器:IP、PSWIP—InstructionPointer指令指针寄存器
用来存储代码段中的偏移地址;
程序运行过程中IP始终指向下一次要取出的指令偏移地址。 IP要与CS寄存器相配合才能形成真正的物理地址。PSW—(ProcessorStatesWordProgram)
程序状态字寄存器,16位寄存器。 由状态标志FLAG、控制标志构成。 只用了其中9位,6位状态标志,3位控制标志。如下表示。8086/8088微处理器的基本结构状态标志:
用来记录程序中运行结果的状态信息作为 后续条件转移指令的转移控制条件。∴称为状态标志。状态标志包括6位:CF、PF、AF、ZF、SF、OF。①OF(OverflowFlag)溢出标志(一般指补码溢出)OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为 不溢出。 字节允许范围-128—+127, 字运算范围-32768—+32767。8086/8088微处理器的基本结构溢出的判断判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确其他情况下,则不会产生溢出8086/8088微处理器的基本结构状态标志:OF② SF(SignFlag)符号标志
SF=1:记录运算结果的符号为负。
SF=0:记录运算结果的符号为正。③ ZF(ZeroFlag)零标志
ZF=1:运算结果为0。
ZF=0:运算结果不为0。④ CF(CarryFlag)进位标志
CF=1:记录运算时从最高有效位产生进位值。
CF=0:记录运算时从最高有效位不产生进位值。8086/8088微处理器的基本结构状态标志⑤AF(AuxiliaryCarryFlag)辅助进位标志
AF=1:记录运算时第3位(半个字节)产生进位值。
AF=0:记录运算时第3位(半个字节)不产生进位值。
⑥PF(ParityFlag)奇偶标志
PF=1:结果操作数低8位中有偶数个1。
PF=0:结果操作数低8位中有奇数个1。用来为机器中传送信息时可能产生的代码出错情况提供检验条件。8086/8088微处理器的基本结构状态标志
控制标志:对控制标志位进行设置后,对其后的操作起控制作用。控制标志位包括3位:TF、IF、DF
。
跟踪(陷阱)标志TF、中断标志IF、方向标志DF。①TF(TrapFlag)跟踪(陷阱)标志位
TF=1,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。
TF=0,CPU正常工作,不产生陷阱。8086/8088微处理器的基本结构IF(InterruptFlag)中断标志位
IF=1,允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。
IF=0,关闭中断。CPU禁止响应可屏蔽中断请求。
IF的状态对不可屏蔽中断和内部软中断没有影响。③DF(DirectionFlag)方向标志位DF=1,每次串处理操作后使变址寄存器SI和DI减量,使串处理从 高地址向低地址方向处理。
DF=0,每次串处理操作后使变址寄存器SI和DI增量,使串处理从 低地址向高地址方向处理。
DF方向标志位是在串处理指令中控制处理信息的方向用的。8086/8088微处理器的基本结构控制标志:控制信息:由系统程序或用户程序根据需要用指令来设置的。状态信息:由中央处理器,根据计算结果自动设置的,机器提供了设置状态信息指令,必要时,程序员可以用这些指令来建立状态信息。8086/8088微处理器的基本结构标志:
运算结果最高位为0 ∴SF=0
运算结果本身≠0 ∴ZF=0
低8位中1的个数为奇数个∴PF=0
最高位没有进位 ∴CF=0
第三位向第四位无进位 ∴AF=0次高位向最高位没有进位,最高位向前没有进位,∴OF=0例1:执行两个数的加法,分析对标志位的影响。8086/8088微处理器的基本结构标志:运算结果最高位为1,SF=1;运算结果本身不为0,ZF=0;最高位向前无进位,CF=0
次高位向最高位产生进位,而最高位向前没有进位,OF=1;结果低8位含偶数个1,PF=1;第三位向第四位有进位,AF=1。在绝大多数情况下,一次运算后并不影响所有标志,程序也并不需要对所有的标志作全面的关注。一般只是在某些操作后,对其中某个标志进行检测。例2:执行两个数的加法,分析对标志位的影响。8086/8088微处理器的基本结构§2-28086的工作模式及引脚功能地址/数据线地址/数据线非屏蔽中断可屏蔽中断最小最大模式控制MN/MX=1,最小模式MN/MX=0,最大模式读信号总线保持请求信号总线保持响应信号写信号存储器/IO控制信号M/IO=1,选中存储器M/IO=0,选中IO接口数据发送/接收信号DT/R=1,发送DT/R=0,接收数据允许信号地址允许信号中断响应信号测试信号:执行WAIT指令,CPU处于空转等待;TEST有效时,结束等待状态。准备好信号:表示内存或I/O设备准备好,可以进行数据传输。复位信号8086工作模式和引脚功能外部特性表现在其引脚信号上,学习时请特别关注以下几个方面:指引脚信号的定义、作用;通常采用英文单词或其缩写表示信号从芯片向外输出,还是从外部输入芯片,或者是双向的起作用的逻辑电平高、低电平有效上升、下降边沿有效输出正常的低电平、高电平外,还可以输出高阻的第三态⑶有效电平⑷三态能力⑵信号的流向⑴引脚的功能8086工作模式和引脚功能AD15-AD0:地址/数据总线,双向、三态分时复用:减少引脚数量,但在时序上应保证二者严格分开T1:输出地址T3-T4:数据输入/输出
AD0常作为低8位数据的选通信号A19/S6-A16/S3:地址/状态总线,输出、三态T1:输出地址T2-T4:输出CPU的状态信息BHE/S7:高字节允许/状态复用引脚,输出、三态T1:输出BHET3-T4:输出S71、基本引脚8086工作模式和引脚功能NMI:非屏蔽中断输入,上升沿触发不受IF的影响,无法用软件屏蔽用于处理某类紧急情况固定中断类型号为2INTR:可屏蔽中断输入,高电平有效若IF=0,则INTR被屏蔽常用于外设的I/O操作注意:所有外设将共用该引脚,故对应中断类型号应由外设主动送给CPURD:存储器或I/O读,输出,三态READY:由存储器或I/O发来的状态信号,高电平有效CLK:时钟输入占空比33%,1/3高电平,2/3低电平为CPU和总线控制逻辑电路提供定时基准。常用INTEL8284A时钟发生器提供CLK信号。8086工作模式和引脚功能RESET:复位输入,高电平有效要求至少维持4个T状态的高电平当该信号到来时,CPU被初始化,除CS外,其它所有内部寄存器全部被清零系统复位时,CS被初始化为0FFFFH该信号可由按键、电源等不同方式产生TEST:当CPU执行WAIT指令时,将定期测试该引脚状态若状态为1,则CPU将停止取下一条指令而进入等待状态,重复执行WAIT指令直至TEST=0时,等待状态结束,CPU继续取下一条指令执行8086工作模式和引脚功能MN/MX:最小/最大模式控制输入最小模式:单CPU最大模式:多CPUVCC:+5V电源GND:地8086工作模式和引脚功能2、最小模式引脚什么是最小模式?
系统中只有8086一个CPU所有总线信号均由8086产生MN/MX引脚接+5V
WR:存储器或I/O写,输出,三态IO/M:IO控制或存储器控制选择,输出,三态ALE:地址锁存允许输出,三态用作地址锁存器控制T1时有效,以便锁存AD15-AD0上输出的地址8086工作模式和引脚功能DEN:数据允许输出,输出,三态DT/R:数据收/发控制,输出,三态系统DB为双向传输,其上可能连接很多的器件
为增加系统DB的驱动能力,可采用总线收发器DEN:收发器的使能控制DT/R:控制数据的传送方向
INTA:中断响应输出对外设INTR中断请求的回答当响应时,CPU发出两次INTA信号:第一次:通知外设中断响应已经得到允许第二次:外设往DB上放中断类型码
8086工作模式和引脚功能HOLD:总线保持请求
HLDA:总线保持响应除CPU可以控制总线外,还可能有其它的模块需要控制总线,如DMA控制器什么是DMA?直接存储器访问I/OCPUMEMDMAC8086工作模式和引脚功能当其它主控模块要求占用总线时,需利用HOLD向CPU提出总线请求
CPU若能让出总线,则在当前的T4输出HLDA响应,同时使自己的三总线浮空,让出总线另一主控模块收到HLDA,即可接管总线控制权,同时保持HOLD信号,直到使用总线完毕另一主控模块使用总线完毕后,失效HOLD信号,并还回总线CPU不断检查HOLD,当其失效时,表明另一主控模块将归还总线,CPU即可以收回总线的控制权8086工作模式和引脚功能3、最大模式引脚
什么是最大模式?系统中除8086外,还有其它的CPU所有CPU都需要产生自己的总线信号,故只有使用独立的总线控制器来统一管理需要产生总线信号的某个CPU向总线控制器提供自己的状态,由总线控制器来最终产生其总线信号MN/MX引脚接地8086工作模式和引脚功能3.最大模式下引脚信号及功能若将8086的MN/MX引脚接地便工作在最大模式。此时仅24—31引脚信号与最小模式不同,如下表所示。引脚编号最小模式最大模式2425262728293031QS1QS0S0S1S2LOCKRQ/GT1RQ/GT0INTAALEDENDT/RM/IOWRHLDAHOLD
两种模式下8086的24~31引脚信号表8086工作模式和引脚功能S0、S1、S2:总线周期状态输出提供给总线控制器,产生系统总线控制命令参见S0、S1、S2编码与总线周期表QS0、QS1:指令队列状态输出在PC机中,提供给8087协处理器
参见QS1和QS0编码与队列状态表LOCK:总线封锁以避免其它主控模块占用总线LOCK指令前缀设置,并保持到LOCK前缀后的一条指令执行完毕8086在两个中断响应周期之间,LOCK信号也自动变为有效电平,以防其它部件占有总线。8086工作模式和引脚功能RQ/GT0、RQ/GT1:总线请求/允许类似于最小模式中的HOLD/HLDA可供其它主控模块向8086发送总线使用请求,并返回允许响应二线均为双向,且有一定优先级8086工作模式和引脚功能·8088地址复用线为8条,即AD7-AD0而AD15-AD8为单一的地址线。思考题1、从功能上看8086/8088CPU内部由哪两部分组成?主要功能是什么?2、总线接口部件主要由哪几部分组成?3、何谓状态标志,何谓控制标志,二者有何区别?4、复位信号RESET到来后,8086/8088CPU的内部状态有何特征?系统从何处开始执行指令?5、什么是分时复用总线,以AD15~AD0说明复用总线的功能是怎样实现的?6、试说明最大模式和最小模式的区别?7、AX,BX,CX,DX能用来存放偏移地址吗?哪些可以?哪些不可以?8086工作模式和引脚功能1、8086/8088存储器的分体结构2、存储单元的地址和内容及与CPU间数据传送3、存储器地址分段4、各段在存储器中分配2-38086/8088的存储器组织1、8086/8088存储器的分体结构80861M字节存储空间分为奇地址存储体和偶地址存储体,各512KB。奇地址体与系统总线的高八位(AD15-AD8)相连。体选信号BHE=0;偶地址体与系统总线的低八位(AD7-AD0)相连。体选信号AD0=0。8086/8088的存储器组织数据总线DB15~DB8…00001H00003HFFFFFH……00002H00004HFFFFEHA0地址总线A1~A19D7~D0奇地址存储体SELA18~A0数据总线DB7~DB0D7~D0偶地址存储体SELA18~A0BHE8088的引出线没有BHE*信号,它的1MB存储器不划分奇偶,A0像A1~A19,一样参加地址选通。8086/8088的存储器组织BHEA0操作所用数据引脚00从偶地址开始读写一个字AD15~AD010从偶地址开始读写一个字节AD7~AD001从奇地址读写一个字节AD15~AD80110从奇地址开始读一个字AD15~AD8AD7~AD0BHE和A0的代码组合所对应的操作8086/8088的存储器组织(1)、存储单元的地址和内容
存储器位编号:
8086字长16位,由二个字节组成,位编号如下:
高位字节MSB(8~15位)
低位字节LSB(0~7位)
8088内部的ALU也能进行16位运算。 有关地址寄存器如SP、IP、BP、SI、DI等都是16位的。2、存储单元的地址和内容及与CPU之间数据传送存储单元地址:按照字节编址存储单元的地址和内容及与CPU之间数据传送存储单元的的内容:一个存储单元有效的信息。机器字长是16位,大部分数据以字节为单位表示,一个字存入存储器占有相继的二个单元:低位字节存入低地址,高位字节存入高地址。字单元的地址采用它的低地址来表示。例: 字单元:(0004H)=1234H,
字节单元:(0004H)=34H
同一个地址既可以看作字节单元地址,
又可看作字单元地址,需要根据使用情况确定。字单元地址:可以是偶数也可以是奇数,(2)、CPU和存储器或I/O端口之间传送数据
8086
8086数据总线是16位的。
访问存储器读写规则:以字为单位进行,并且均从偶地址开始。 讨论CPU和存储器或I/O端口之间传送数据方式:字数据读/写操作字节读/写操作存储单元的地址和内容及与CPU之间数据传送
字数据读/写操作(a)操作数存放在偶地址开始两个存储单元或两个I/O端口中:即操作数字的低8位——在偶地址单元或在偶地址端口;
高8位——在奇地址单元或在奇地址端口。在一个总线周期内完成(通常4个时钟周期)16位数据传送,操作数必须存放在偶地址开始两个存储单元或两个I/O端口中。存储单元的地址和内容及与CPU之间数据传送对应的偶地址单元/偶地址端口—数据通过数据总线低8位传输。对应的奇地址单元/奇地址端口—数据通过数据总线高8位传输。字数据读/写偶地址字操作如下图:存储单元的地址和内容及与CPU之间数据传送操作数存放在奇地址开始两个存储单元或两个I/O端口中
如下图所示:存储单元的地址和内容及与CPU之间数据传送在第一个总线周期中:
对应于奇地址单元或奇地址端口字节(操作字低8位)通过数据总线高8位进行传输,而数据总线低8位处于空闲状态;在第二个总线周期中:
对应于偶地址单元或偶地址端口字节(操作字高8位)通过数据总线低8位进行传输,而数据总线高8位处于空闲状态.由此可见,
操作数存放在奇地址开始两个存储单元/两个I/O端口中进行数据传输,8086需要二个总线周期。存储单元的地址和内容及与CPU之间数据传送
字节读/写操作:
对偶地址单元/偶地址端口的字节数据进行读/写如下图所示:
在一个总线周期中,只有数据总线的低8位传输数据, 高8位处于空闲状态。存储单元的地址和内容及与CPU之间数据传送
对奇地址单元/奇地址端口的字节数据进行读/写如下图所示:
在一个总线周期中,只有数据总线的高8位传输数据, 而低8位处于空闲状态。存储单元的地址和内容及与CPU之间数据传送
8088
8088数据总线只有8位。 讨论CPU和存储器或I/O端口之间传送数据:
每个总线周期只传输1个字节,
所以对每个字操作要增加4个时钟周期。
(3)、存储器特性:
存储器的内容是取之不尽的。
即从某个单元取出其内容后,该单元仍保持原来的内容不变,可以重复取出; 只有存入信息后,原有的内容自动消失。存储单元的地址和内容及与CPU之间数据传送3、存储器地址分段:8086/8088有20条地址总线,直接寻址能力为220=1M字节。用16进制数表示1M字节的地址范围应为
00000H~FFFFFH
(1)、8086/8088内部20位物理地址形成 (2)、逻辑地址与物理地址8086/8088的存储器组织
(1)、8086/8088内部20位物理地址形成
存储器地址分段
8086地址总线是20位的,CPU中的寄存器是16位的,
20位地址无法用16位寄存器表示,必须分段。 程序员在编制程序时把存储器划分成段。 段内地址16位,每个段的大小最大可达64KB; 实际可以根据需要来确定段大小,可以是1,100,1000, 在64K范围内的任意字节数。
IBMPC机对段的起始地址有限制, 即段不能从任意地址开始: 必须从任一小段(paragraph)的首地址开始。8086/8088的存储器组织
小段的概念 从0地址开始每16字节为一小段, 对于16位地址总线,段内存储器小段地址如下:如:0000H,0001H,0002H,……,000EH,000FH一个小段
0010H,0011H,0012H,……,001EH,001FH 0020H,0021H,0022H,……,002EH,002FH ……FFF0H,FFF1H,FFF2H,……,FFFEH,FFFFH
其中:第一列就是每个小段的首地址。8086/8088的存储器组织每个小段首地址特征:在16进制表示的地址中,最低位为0H
(即20位地址的低4位为0000B)。在1M字节的地址空间,共有64K个小段其首地址为:00000H00010H…41230H41240H…FFFE0HFFFF0H8086/8088的存储器组织
20位物理地址形成物理地址:在1M字节存储器里,每个存储单元都有一个唯一的20位地址作为该存储单元的物理地址。
CPU访问存储器时,必须先确定所要访问的存储单元的物理地址才能取出(或存入)该单元中的内容。
20位物理地址形成:由16位段地址和16位偏移地址组成。段地址:只取段起始地址高16位值。偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。8086/8088的存储器组织物理地址计算方法:即把段地址左移4位再加上偏移地址值形成物理地址,写成:物理地址=16d
段地址+偏移地址。
8086/8088的存储器组织例:(DS)=0400H,EA=1234H,
物理地址
=
16d(DS)+EA=05234H*每个存储单元只有唯一的物理地址。
但可由不同的段地址和不同的偏移地址组成。物理地址段地址偏移地址05234H0400H1234H0523H0004H0520H0034H……几种地址概念:8086/8088的存储器组织(2)、逻辑地址与物理地址
逻辑地址与物理地址概念
逻辑地址与物理地址概念如下页图所示。逻辑地址:由段基址和段内偏移地址组成的地址,
段基址和段内偏移地址都是16位的无符号二进制数,
在程序设计时使用。物理地址:存储器的绝对地址(20位的实际地址),
范围从00000H~FFFFFH,
是由CPU访问存储器时由地址总线发出的地址。存储器管理:将程序中逻辑地址转移为物理地址的机构。8086/8088的存储器组织
物理地址的形成......20000H25F60H25F61H25F62H25F63H2000H段基址逻辑地址段内偏移地址5F62H逻辑地址与物理地址8086/8088的存储器组织4、各段在存储器中分配
各段在存储器中分配分4种情况讨论:(1).由操作系统负责分配 一般情况,各段在存储器中的分配是由操作系统负责。
每个段可以独立地占用64K存储区。
(2).各段也可以允许重迭 每个段的大小允许根据实际需要分配,不一定要占
64KB。每个存储单元的内容不允许发生冲突 (段可重迭,但使用时防止冲突)。8086/8088的存储器组织(3).在程序的首部设定各段寄存器的值
如果程序中的四个段都是64K的范围之内,程序运行时所需要的信息都在本程序所定义的段区之内,程序员只要在程序的首部设定各段寄存器的值就可以了。
(4).动态地修改段寄存器的内容 如果程序的某一段(如数据段)在程序运行过程中会超过64K空间,或者程序中可能访问除本身四个段以外的其他段区的信息,那么在程序中必须动态地修改段寄存器的内容。8086/8088的存储器组织64KB为一段代码段范围:01000H~10FFFH各段允许重迭:代码段:01000H~1FFFH数据段:02000H~027FFH堆栈段:02800H~028FFH64K程序64K数据64K堆栈00000H01000H21000H46000H64K附加数据A0000H0100H2100H4600HA000H段寄存器CSDSSSES8086/8088的存储器组织注意:以8086CPU的IBMPC系统中,存储器首尾地址的用途固定。
00000H~003FFH共1K内存单元用于存放中断向量。
FFFF0H~FFFFFH是存储器底部的16个单元。系统加电复位时,会自动转到FFFF0H单元执行,
而在FFFF0H处存放一条无条件转移指令,转向系统初始化程序。8086/8088的存储器组织思考题1.逻辑地址与物理地址是如何定义的?差别在那里?2.若代码段位于内存的45000H到54FFF的64K范围内,那么CS=?
若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为什么值?3.已知两个16位字数据3E50H和2F80H存放在数据段中偏移地址分别为6501H和5410H,当前DS=2340H,画图说明这两个字数据在内存中的存放情况。若要读出这两个字,需要对存储器进行几次读操作?4.如何理解每个存储单元只有唯一的物理地址。 但可由不同的段地址和不同的偏移地址组成?5.8086系统中存储器采用什么结构?用什么信号来选中存储体?IBMPC机存储器分段有那些规定?8086/8088的存储器组织最小模式的系统配置最大模式的系统配置2-48086的系统配置1、
最小模式的配置
AB:加锁存由于AB/DB分时复用,故需对地址信息作锁存,以保证其有效维持到总线周期结束DB:加驱动需采用总线收发器,以增加DB的负载能力由DEN、DT/R对收发器进行控制8086的系统配置CB:CPU直接产生通常,在最小模式中CB不需驱动如果需要,也可使用驱动器参见教材P438284:时钟发生器,其主要作用为:产生稳定的CLK同步外界输入的READY、RESET信号8086的系统配置8086在最小模式下的典型配置(1)20位地址总线——采用3个三态锁存器8282进行锁存和驱动(2)16位数据总线——采用2个双向总线驱动器8286进行驱动(3)系统控制信号——由8086引脚直接提供补充补充:三态门和D触发器三态门和以D触发器形成的锁存器是微机接口电路中最常使用的两类逻辑电路三态门的作用:功率放大、导通开关器件共用总线时,一般使用三态电路:需要使用总线的时候打开三态门;不使用的时候关闭三态门,使之处于高阻D触发器的作用:信号保持,导通开关三态锁存8086的系统配置三态缓冲器(三态门)T为低电平时:输出为高阻抗(三态)T为高电平时:输出为输入的反相TAF表示反相或低电平有效TAFTAFTAF三态门具有单向导通和三态的特性双向三态缓冲器ABTOE*OE*=0,导通
T=1A→BT=0A←BOE*=1,不导通双向三态门具有双向导通和三态的特性8286引脚及内部结构图1AOBOOO。。。。。。。OOETA1A7。。。B1B7。。。。接DEN接DT/R8286DEN=0OE=0当DT/R=0时,BA当DT/R=1时,AB28911121819总线驱动器8286(或74LS245)8086的系统配置D触发器DQCQ电平锁存DQCQ上升沿锁存负脉冲的上升沿电平锁存:高电平通过,低电平锁存上升沿锁存:通常用负脉冲触发锁存8086的系统配置三态缓冲锁存器(三态锁存器)TADQCB锁存环节缓冲环节8086的系统配置OOODQCLKODI0DO0STBOE。。。。。。。8282引脚及内部结构图。。。。。。。。。DI0~DI7输入端DO0~DO7输出端OE/允许控制(低电平有效)STB锁存信号高电平允许(通过)低电平禁止(锁存)3.地址锁存器8282(74LS373)DI7DO78086的系统配置8284时钟发生器RESETREADYCLKOSCPCLKRESRDY1+5V14.31818MHZ8284RESETREADYCLK14.318MHZ2.385MHZ8086/8088
8284A内部有一个晶体振荡器,只需在晶体连接端X1、X2两端外接石英晶体即可。也可由外振源输入端EFI输入一个TTL电平的振荡信号为时钟源。8086的系统配置2、
最大模式的配置
AB:加锁存,与最小模式相同DB:加驱动,与最小模式相同CB:总线控制器产生需使用一片总线控制器。若有必要,还需使用总线仲裁器将S0、S1、S2总线状态信号送入总线控制器,再结合其它输入信号产生CPU的控制信号参见教材P488086的系统配置最大模式下的系统配置8086的系统配置最大模式与最小模式的差别:最小模式:
MN/MX接+5V,只有8086一个CPU,控制信号由CPU产生最大模式
MN/MX接地,除8086一个主CPU外,还有一个以上协处理器,需要总线控制器来变换和组合控制信号。8086的系统配置2-58086/8088的操作和时序时序(Timing)是指信号高低电平(有效或无效)变化及相互间的时间顺序关系。(计算机操作运行的时间顺序)CPU时序决定系统各部件间的同步和定时总线时序描述CPU引脚如何实现总线操作什么是总线操作?8086/8088的操作和时序总线操作是指CPU通过总线对外的各种操作8086/8088的总线操作主要有:存储器读、I/O读操作存储器写、I/O写操作中断响应操作总线请求及响应操作系统复位与启动操作描述总线操作的微处理器时序有三级指令周期→总线周期
→时钟周期什么是指令、总线和时钟周期?8086/8088的操作和时序指令周期是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期总线周期是指CPU通过总线操作与外部(存储器或I/O端口)进行一次数据交换的过程8086/8088的基本总线周期需要4个时钟周期4个时钟周期编号为T1、T2、T3和T4总线周期中的时钟周期也被称作“T状态”时钟周期的时间长度就是时钟频率的倒数当需要延长总线周期时插入等待状态TwCPU进行内部操作,没有对外操作时,其引脚就处于空闲状态Ti何时有总线周期?演示8086/8088的操作和时序任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期只有执行IN指令才出现I/O读总线周期,执行OUT指令才出现I/O写总线周期CPU响应可屏蔽中断时生成中断响应总线周期如何实现同步?8086/8088的操作和时序总线操作中如何实现时序同步是关键CPU总线周期采用同步时序:各部件都以系统时钟信号为基准当相互不能配合时,快速部件(CPU)插入等待状态等待慢速部件(I/O和存储器)CPU与外设接口常采用异步时序,它们通过应答联络信号实现同步操作8086/8088的操作和时序学习CPU时序的目的1、了解时序有利于深入了解指令的执行过程。2、有利于提高所编程序的质量,减小存储空间,加快程序运行速度。3、帮助我们在构成微机系统时,考虑扩展的I/O端口、存储器等与CPU之间的时序配合。4、在微机时序控制应用中,精确计算程序运行时间,便于与控制过程相配合。8086/8088的操作和时序
最小模式的8088总线时序1、存储器读总线周期2、存储器写总线周期3、I/O读总线周期4、I/O写总线周期5、中断响应周期6、总线保持和响应时序7、系统复位8086/8088的操作和时序1、存储器写总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输出数据A19~A16S6~S3IO/M*WR*READY(高电平)DT/R*DEN*T1状态——IO/M*输出低电平,表示存储器操作;输出20位存储器地址A19~A0;ALE输出正脉冲,表示复用总线输出地址;DT/R*高电平,表示本总线周期执行写操作。T2状态——输出控制信号WR*和数据D7~D0;DEN*输出低电平,数据收发器获得数据允许信号T3和Tw状态——检测数据传送是否能够完成T4状态——完成数据传送2、I/O写总线周期输出数据T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A00000S6~S3IO/M*WR*READY(高电平)DT/R*DEN*T1状态——IO/M*输出高电平,表示I/O操作;输出16位I/O地址A15~A0;ALE输出正脉冲,表示复用总线输出地址;DT/R*高电平,表示本总线周期执行写操作。T2状态——输出控制信号WR*和数据D7~D0;DEN*输出低电平,数据收发器获得数据允许信号T3和Tw状态——检测数据传送是否能够完成T4状态——完成数据传送3、存储器读总线周期READY(高电平)DT/R*DEN*T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输入数据A19~A16S6~S3IO/M*RD*T1状态——IO/M*输出低电平,表示存储器操作;输出20位存储器地址A19~A0;ALE输出正脉冲,表示复用总线输出地址;DT/R*低电平,表示本总线周期执行读操作。T2状态——输出控制信号RD*,DEN*输出低电平,数据收发器获得数据允许信号T3和Tw状态——检测数据传送是否能够完成T4状态——前沿读取数据,完成数据传送4、I/O读总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输入数据S6~S3IO/M*RD*0000READY(高电平)DT/R*DEN*T1状态——IO/M*输出高电平,表示I/O操作;输出16位I/O地址A15~A0;ALE输出正脉冲,表示复用总线输出地址;DT/R*低电平,表示本总线周期执行读操作。T2状态——输出控制信号RD*,DEN*输出低电平,数据收发器获得数据允许信号T3和Tw状态——检测数据传送是否能够完成T4状态——前沿读取数据,完成数据传送CPU与存储器的速度匹配:TwT1
T2
TW
T4
CLKIO/MA19~A16/S6~S3
A15~A8
AD7~AD0
ALERDDT/RDEN高IO低M
A19~A16
S6~S3A7~A0DATAIN
T3
WAIT
READY
READY
插入TW状态的存储器读周期插入等待状态Tw同步时序通过插入等待状态,来使速度差别较大的两部分保持同步在读写总线周期中,判断是否插入Tw1.在T3的前沿检测READY引脚是否有效2.如果READY无效,在T3和T4之间插入一个等效于T3的Tw,转13.如果READY有效,执行完该T状态,进入T4状态演示8086/8088的操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字化转型下B集团建设项目跟踪审计信息系统构建:理论、实践与创新
- 数字化赋能:莱芜农信社抵押品风险控制管理系统构建与实践
- 数字化赋能:泰安国峰保险代理管理系统的创新设计与实践
- 数字化赋能:井冈山大学医务保障管理信息系统的深度剖析与创新设计
- Axure网站与App原型设计(全彩慕课版)(AxureRP10)- 教案 第9、10章 用中继器模拟数据库操作、美团App低保真原型设计
- 设备监理师相关知识考前复习题及答案
- 数字化浪潮下我国建筑企业信息化管理的理论建构与方法创新
- 数字化浪潮下中外电子书发展路径与策略比较研究
- 2025年前台问询礼仪冲刺测试
- 住宅小区绿化设计方案
- 学生心理问题转介处置制度
- 科室医院感染管理架构图
- 贵州源鑫矿业有限公司煤矸石洗选综合利用项目环评报告
- 八年级下册音乐复习题及答案(湘艺版)
- 高中地理(湘教版2019版)必修二 全册知识点
- 2023年北京市各区(海淀朝阳丰台东西城等)高三下语文高考一模汇编7 基础运用含详解
- 2022年中国石油大学《化工原理二》完整答案详解
- RC512-FE(A)-用户使用手册202307
- GB/T 5153-2003变形镁及镁合金牌号和化学成分
- GB/T 4357-2022冷拉碳素弹簧钢丝
- GB/T 19326-2012锻制承插焊、螺纹和对焊支管座
评论
0/150
提交评论