第二章微处理器.ppt

上传人:s****8 文档编号:67214598 上传时间:2022-12-24 格式:PPT 页数:75 大小:1.02MB
返回 下载 相关 举报
第二章微处理器.ppt_第1页
第1页 / 共75页
第二章微处理器.ppt_第2页
第2页 / 共75页
点击查看更多>>
资源描述

《第二章微处理器.ppt》由会员分享,可在线阅读,更多相关《第二章微处理器.ppt(75页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、本章主要知识点:本章主要知识点:1.8086的内部组成、引脚功能和工作模式。2.8086的最小模式组成原理。3.8086微处理器的时序。本章学习的重点:本章学习的重点:1、8086的内部结构组成;2、8086的四个段寄存器的作用,使用中的差异;3、8086的通用寄存器的作用,使用中的差异;4、8086各引脚的意义和功能;5、8086存储体的组成特点和要求;6、8085物理地址、偏移地址、段地址之间的关系;7、8086的总线时序;学学习习注注意意事事项项:用用红红颜颜色色表表出出的的字字均均为为重重点点理理解解和和学习中的难点,希望同学们学习时注意!学习中的难点,希望同学们学习时注意!第第2 2

2、章章 80868086微处理器微处理器第一节第一节 微型计算机的组成及工作原理微型计算机的组成及工作原理 图2.1微型计算机的组成微处理器8086/8088存储器RAM存储器ROMI/O接口外围设备地址总线AB控制总线CB数据总线DB系统总线或三总线 2.2.1.1 CPU1.1 CPU的基本概念和组成的基本概念和组成 微处理器(机)简称CPU,是用来实现运算和控制功实现运算和控制功能的部件,由运算器、能的部件,由运算器、控制器和寄存器控制器和寄存器 3 3 部分组成。部分组成。1)运算器用于完成数据的算术和逻辑运算。2)寄存器用来暂存参加运算的操作数和运算结果。3)控制器由指令寄存器、指令译

3、码器和控制电路组成。指令是一组二进制编码信息,主要包括两个内容:(1)告诉计算机进行什么操作;(2)指出操作数或操作数地址。控制电路根据指令的要求向微型机各部件发出一系列相应的控制信息,使它们协调有序地工作。2.2.2.2 2.2 存储器存储器1)存储器的作用:图 2.1 中的存储器是指微型计算机的内存储器,用来存放程序、原始操作数、运算的中间结果数据和最终结果数据。2)程序的组成和格式:程序是按解题顺序编排、用一系列指令表示的计算步骤。程序和数据在形式上均为二进制码,它们均以字节为单位存储在内存储器中,一个字节占用一个存储单元,并具有唯一的地址号。CPU可以对内存储器执行读/写两种操作。CP

4、U可以对内存储器执行读/写两种操作3)读操作过程:读存储器操作是在控制部件发出的读命令控制下,将内存中某个存储单元的内容取出,送入CPU中某个寄存器;4)写操作过程:写存储器操作是在控制部件发出的写命令控制下,将CPU中某寄存器内容传送到存储器的某个存储单元中。注注意意:写写操操作作执执行行后后,存存储储单单元元内内容容被被改改变变;读读操操作作执执行后,行后,存储单元内容不变。存储单元内容不变。2.2.3 2.2.3 输入输入/输出设备及其接口电路输出设备及其接口电路 输入/输出(缩写为I/O)设备统称外部设备,是微型计算机的重要组成部分。输入设备的任务是输入设备的任务是将程序、将程序、原始

5、数据及现场信息以计算机所能识别的形式送到计原始数据及现场信息以计算机所能识别的形式送到计算机中,供计算机自动计算或处理用。算机中,供计算机自动计算或处理用。微型机中常用的输入设备包括键盘、鼠标器、数字化仪、扫描仪、A/D转换器等。输出设备的任务是输出设备的任务是将计算机的计将计算机的计算和处理结果或回答信号以人能识别的各种形式表示算和处理结果或回答信号以人能识别的各种形式表示出来。出来。微型机中常用的输出设备包括显示器、打印机、绘图仪、D/A转换器等。软磁盘、硬磁盘及其驱动器对微型机来说,既是输入设备又是输出设备。只读激光盘(CD-ROM)及其驱动器属于微型机的输入设备。软磁盘、硬磁盘及光盘又

6、统称为计算机的外存储器。第二节第二节 8086/8088 8086/8088微处理器微处理器2.3.1 80862.3.1 8086微处理器结构微处理器结构1、8086/8088微处理器系列概况(1)从8080/8085到8086 8086是16微处理器,内部及对外有16位数据通路,8080/8085只有8位。8088是8位微处理器,但内部有16位数据通路,而对外为8位数据通路。8086/8088寻址空间1MB,8080/8085为64KB。8086有一个初级流水线结构,内部操作与对外操作具有并行性。2 2、80868086的内部结构组成:的内部结构组成:8086的内部主要有以下两大部分组成:

7、1)总线接口部件(BIU)2)执行部件(EU)8086的内部结构组成如图2-280868086的内部结构的内部结构内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路总总线线执行部分执行部分控制电路控制电路ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用通用寄存器寄存器地址地址加法加法器器指令队列指令队列执行部件执行部件(EU)总线接口部件总线接口部件(BIU)16位位20位位8位位8位位图2-2 8086的内部结构组成1 2 3 4 5 6专用专用寄存器寄存器段段寄寄存存器器80868086微处理器逻辑框图:

8、分微处理器逻辑框图:分EUEU与与BIUBIU两部分:两部分:执行部件(EU):由ALU、通用寄存器组、状态寄存器及操作控制器电路组成。总线接口部件(BIU):由专用寄存器、指令队列缓冲器、地址加法器等功能部件组成。形成对外总线,与存储器、I/O接口电路进行数据传输。(1)(1)总线接口部件总线接口部件(BIU)BIU)总线接口部件由下列各部分组成:总线接口部件由下列各部分组成:1)4个段地址寄存器;个段地址寄存器;CS16位的代码段寄存器;位的代码段寄存器;DS16位的数据段寄存器;位的数据段寄存器;ES16位的扩展段寄存器;位的扩展段寄存器;SS16位的堆栈段寄存器;位的堆栈段寄存器;2)

9、16位的指令指针寄存器位的指令指针寄存器IP;3)20位的物理地址加法器;位的物理地址加法器;4)6字节的指令队列缓冲器。字节的指令队列缓冲器。段寄存器段寄存器:8086CPU的地址引脚有20条线,能提供20位的地址信息,可直接对1M个存储单元进行访问,但CPU内部可用来提供地址信息的寄存器都是16位的,那么如何用16位寄存器实现20位地址的寻址呢?8086/8088采用了段结构的内存管理的方法。将指令代码和数据分别存储在代码段、数据段、堆将指令代码和数据分别存储在代码段、数据段、堆栈段、附加数据段中,这些段的段地址分别由段寄栈段、附加数据段中,这些段的段地址分别由段寄存器存器CSCS、DSD

10、S、SSSS、ESES提供,而代码或数据在段内的提供,而代码或数据在段内的偏移地址则由有关寄存器或立即数给出。偏移地址则由有关寄存器或立即数给出。8086/80888086/8088段寄存器的作用:段寄存器的作用:(1)代码段寄存器CS:存储程序当前使用的代码段的段地址。(2)数据段寄存器DS:存放程序当前使用的数据段的段地址。程序中所用到的原始数据、中间结果以及最终结果都可存放在数据段中。(3)堆栈段寄存器SS:存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域。(4)附加数据段寄存器ES:存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符

11、串。段寄存器在使用中应注意:段寄存器在使用中应注意:(1 1)在编写汇编语言源程序时,应按上述)在编写汇编语言源程序时,应按上述规定将程序的各个部分放在规定的段内。规定将程序的各个部分放在规定的段内。(2 2)每个源程序必须至少有一个代码段,)每个源程序必须至少有一个代码段,而数据段、堆栈段和附加数据段则根据程序而数据段、堆栈段和附加数据段则根据程序的需要决定是否设置。的需要决定是否设置。执执行行部部件件的的功功能能就就是是负负责责从从指指令令队队列列取取指指令令并并执执行行。从从内内部部结结构构图图可可见见,执执行行部部件件由由下列几个部分组成:下列几个部分组成:1 1)4 4个个1616位

12、位通通用用寄寄存存器器:即即AXAX、BXBX、CXCX、DXDX,也也可可作作为为8 8个个8 8位位通通用用寄寄存存器器:即即AHAH,ALAL、BHBH、BLBL、CHCH、CLCL、DHDH、DL DL。2 2)4 4个个专专用用寄寄存存器器:SPSP、BPBP、DIDI、SI SI。3 3)标志寄存器)标志寄存器FRFR4 4)算术逻辑运算单元算术逻辑运算单元ALUALU(2)(2)执行部件执行部件EUEU (3)(3)“流水线流水线”结构结构 总线接口部件BIU和执行部件EU并不是同步工作的,两者的动作管理遵循如下原则:每当8086的指令队列中有2个空字节,BIU就会自动把指令取到

13、指令队列中。而同时EU从指令队列取出一条指令,并用几个时钟周期去分析、执行指令。当指令队列已满,而且EU对BIU又无总线访问请求时,BIU便进入空闲状态。在执行转移、调用和返回指令时,指令队列中的原有内容被自动清除。8086的指令队列有6个字节,当指令队列出现2个空字节,BIU就自动执行一次取指令周期,将下一条要执行的指令从内存单元读入指令队列。它们采用“先进先出”原则,按顺序存放,并按顺序取到EU中去执行。(4)指令队列缓冲器)指令队列缓冲器8086流水操作示意图流水操作示意图取指令取指令1执行指令执行指令1取指令取指令2执行指令执行指令2取指令取指令3执行指令执行指令3t0t1t2t3t4

14、t图2-3 8086流水操作示意图在t0t4时间间隔中,理想情况下,8086可执行3条指令。(4)(4)8086/80888086/8088寄存器寄存器 8086/8088CPU内部寄存器结构1)1)通用寄存器通用寄存器 通用寄存器包括四个数据寄存器,两个地址指针寄存器和两个变址寄存器。1)数据寄存器AX、BX、CX、DX 数据寄存器一般用于存放参与运算的操作数或运算结果。每个数据寄存器都是16位的,但又可将高、低8位分别作为两个独立的8位寄存器来用。高8位分别记作AH、BH、CH、DH,低8位分别记作AL,BL,CL,DL。上述4个寄存器一般用来存放数据,但它们各自都有自己的特定用途:AX(

15、Accumulator)称为累加器 用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的I/O指令都使用该寄存器与外设端口交换信息。BX(Base)称为基址寄存器 8086/8088CPU中有两个基址寄存器BX和BP。BX用来存放操作数在内存中数据段内的偏移地址,BP用来存放操作数在堆栈段内的偏移地址(也可用于其它运算使用)。CX(Counter)称为计数器 在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。(也可用于其它运算作为寄存器使用)DX(Data)称为数据寄存器 在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算

16、时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。(也可用于其它运算作为寄存器使用)2)地址指针寄存器SP、BPSP(Stack Pointer)称为堆栈指针寄存器 在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2(16位操作数),以使其始终指向栈顶。(专用,只能作为堆栈指针寄存器使用)BP(Base Pointer)称为基址寄存器 作为通用寄存器,它可以用来存放数据,但更重要的用途是存放操作数在堆栈段内的偏移地址。(也可用于其它运算作为寄存器使用)3)变址寄存器SI、DISI(Source Index)称为源变址

17、寄存器。DI(Destination Index)称为目的变址寄存器。SI、DI通常用在字符串操作时存放操作数的偏移地存放操作数的偏移地址址,其中SI存放源串在数据段数据段内的偏移地址,DI存放目的串在附加数据段附加数据段内的偏移地址。4)控制寄存器指令指针寄存器IP:用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问IP。标志寄存器FLAGS:用于反映指令执行结果或控制指令执反映指令执行结果或控制指令执行形式,行形式,它是一个16位的寄存器,但只用了其中9位,这9位包括6个状态标志位,3个控制标志位,如图2-4所示。图2-4 标志寄存器结构图状态标志:记录程序运行结果的状态

18、信息,许多指令的执行都将相应地设置它们:CF ZF SF PF OF AF控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式:DF IF TF(1 1)进位标志)进位标志CFCF(Carry FlagCarry Flag)设置原则:当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF1;否则CF03AH+7CH3AH+7CHB6HB6H,没有进位:没有进位:CF=0CF=0AAH+7CHAAH+7CH(1 1)26H26H,有进位:有进位:CF=1CF=1条件(状态)标志位:(2 2)零标志)零标志ZFZF(Zero FlagZero Flag)设置原则:

19、若运算结果为0,则ZF1;否则ZF03AH3AH7CH7CHB6HB6H,结果不是零:结果不是零:ZFZF0 084H84H7CH7CH(1 1)00H00H,结果是零:结果是零:ZFZF1 1 结果有进位:结果有进位:CFCF1 1(3 3)符号标志)符号标志SFSF(Sign FlagSign Flag)设置原则:运算结果最高位为运算结果最高位为1 1,则,则SFSF1 1;否则否则SFSF0 03AH3AH7CH7CHB6HB6H,最高位最高位D D7 71 1:SFSF1 184H84H7CH7CH(1 1)00H00H,最高位最高位D D7 70 0:SFSF0 0(4 4)奇偶标志

20、)奇偶标志PFPF(Parity FlagParity Flag)设置原则:当运算结果最低字节(低8位)中“1”的个数为零或偶数时,PF1;否则PF03AH3AH7CH7CHB6HB6H10110110B10110110B结结果果中中有有5 5个个“1 1”,是是奇奇数数,PFPF0 0(5 5)溢出标志)溢出标志OFOF(Overflow FlagOverflow Flag)设置原则:当运算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1,否则为0。对无符号数无意义。3AH+7CH3AH+7CHB6HB6H,产生溢出:产生溢出:OFOF1 1溢出的原因溢出的原因:两个正数相加两个正数

21、相加,结果为负数结果为负数 AAH+7CHAAH+7CH(1 1)26H26H,没有溢出:没有溢出:OFOF0 0不溢出的原因不溢出的原因:一个正数与负数相加一个正数与负数相加,结果不会溢出结果不会溢出!(6 6)辅助进位标志)辅助进位标志AFAF(Auxiliary Carry FlagAuxiliary Carry Flag)3AH7CHB6H,D3有进位:AF1设置原则:运算时运算时D D3 3位(低半字节)有进位位(低半字节)有进位或借位时,或借位时,AFAF1 1;否则否则AFAF0 0(1 1)方向标志)方向标志DFDF(Direction FlagDirection Flag)设

22、置原则:用于串操作指令中,控制地址的变化方向(由指令改变其值)。设置DF0,存储器地址自动增加;设置DF1,存储器地址自动减少CLDCLD指令复位方向标志:指令复位方向标志:DFDF0 0STDSTD指令置位方向标志:指令置位方向标志:DFDF1 1控制标志位:(2 2)中断允许标志)中断允许标志IFIF(Interrupt-enable Interrupt-enable FlagFlag)设置原则:控制可屏蔽中断是否可以被处理器响应(由指令改变其值)。设置IF1,则允许中断;设置IF0,则禁止中断CLICLI指令复位中断标志:指令复位中断标志:IFIF0 0STISTI指令置位中断标志:指令

23、置位中断标志:IFIF1 1(3 3)陷阱标志)陷阱标志TFTF(Trap FlagTrap Flag)设置原则:用于控制处理器进入单步操作方式:设置TF0,处理器正常工作;设置TF1,处理器单步执行指令单单步步执执行行指指令令处处理理器器在在每每条条指指令令执执行行结结束束时时,便便产产生生一一个个编编号号为为1 1的的内内部部中中断断(单单步步中断)中断)利利用用单单步步中中断断可可对对程程序序进进行行逐逐条条指指令令的的调调试试单步调试单步调试 第三节第三节 8086 8086的引脚功能和工作模式的引脚功能和工作模式GND8086CPU12345678910111213141516171

24、819202122232425262728293031323334353637383940AD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDRESETREADYTEST)QS(INTA1ALE(QS0)S(DEN0)S(RDT1/)S(IOM2/)LOCK(WR)GT/RQ(HOLD0RDMX/MN7SBHE/A19/S6A18/S5A17/S4A16/S3AD15VCC(+5V)GT/RQ(HLDA12.3.1.8086CPU2.3.1.8086CPU的引脚信号的引脚信号(图图2-5)2-5)123456789101

25、11213141516171819204039383736353433323130292827262524232221 GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6BHE/S7MN/MXRDHOLD/(RQ/GT0)HLDA/(RQ/GT1)WR/(LOCK)M/IO/(S2)DT/R/(S1)DEN/(S0)ALEINTATESTREADYRESET8088 第三节第三节 8086 8086的引脚功能和工作模式的引脚功能和工作模式图图2

26、-5 8086CPU2-5 8086CPU的引脚信号的引脚信号(1 1)基本引脚信号)基本引脚信号AD15AD0(I/O,三态):地址/数据复用引脚。A19/S6 A16/S3(O,三态):地址/状态复用引脚。BHE/S7(O,三态):高字节允许/状态复用引脚。NMI(In):非屏蔽中断请求线,上升边触发。INTR(In):可屏蔽中断请求线,高电平有效。RD(O,三态):读选通信号,低电平有效。CLK(In):时钟信号,处理器基本定时脉冲。RESET(In):复位信号,高电平有效。注:(O)为输出信号;(IN)为输入信号80868086复位后内部寄存器的状态复位后内部寄存器的状态内部寄存器状

27、态标志寄存器IPCSDSSSES指令队列缓冲器其余寄存器0000H0000HFFFFH0000H0000H0000H空0000H注意:8086复位后各寄存器的状态非常重要,它决定了:1、启动后CPU各(段、通用)寄存器的原始状态;2、CS和IP的状态决定了指令(程序存储器)的设计要求。WR(O,三态):写选通信号,低电平有效。READY(IN):准备好信号,高电平有效。处理器与存储器及I/O接口速度同步的控制信号。当被访问的部件无法在8086 CPU规定的时间内完成数据传送时,应由该部件向8086 CPU发出READY=0(低电平),使8086 CPU处于等待状态,插入一个或几个等待周期T,当

28、被访问的部件完成数据传输时,被访问的部件将使READY=1(高电平),8086 CPU继续运行。TEST(IN):等待测试控制信号(输入)。在WAIT(等待)指令期间,8086 CPU每隔5个时钟周期对TEST引脚采样。若TEST为高电平,8086 CPU循环在等待状态,若TEST为低电平,则8086 CPU脱离等待状态,继续执行后续指令。MN/MX(IN):最大/最小工作模式选择信号。硬件设计者用来决定8086工作模式,MN/MX=1,8086为最小模式。MN/MX=0,8086为最大模式。Vcc(IN):处理器的电源引脚,接+5V电源。GND:处理器的地线引脚,接系统地线。(O)为输出信号

29、;(IN)为输入信号(2 2)最小模式下的有关控制信号)最小模式下的有关控制信号INTA(O):最小模式下的中断响应信号。ALE(O):地址锁存允许信号ALE引脚高有效时,AD7AD0和A19A16正在传送地址信息,由于地址信息在这些复用引脚上出现的时间很短暂,所以系统需利用ALE引脚将地址锁存起来。DEN(O,三态):数据总线缓冲器允许信号。数据允许,输出、三态、低电平有效,有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动DT/R(O,三态):数据总线缓冲器方向控制信号。数据发送/接收,输出、三态。该信号表明当前总线上数据的流向:高电平时数据自CPU输出(发送)低电平时

30、数据输入CPU(接收)M/IO(O,三态):存储器或I/O接口选择信号。为低电平时,表示CPU将访问I/O端口,这时地址总线A15A0提供16位I/O口地址。该引线输出高电平时,表示CPU将访问存储器,这时地址总线A19A0提供20位存储器地址。(注:书中错)WR(O,三态):写控制。输出、三态、低电平有效,有效时,表示CPU正在写出数据给存储器或I/O端口RD(O,三态):读控制,输出、三态、低电平有效,有效时,表示CPU正在从存储器或I/O端口读入数据HOLD(IN):总线请求信号。(用于DMA)HLDA(O):总线请求响应信号。(用于DMA)M/IO、WR和RD读写控制的组合读写控制的组

31、合M/IO、WR和RD控制信号组合后,控制4种基本的总线周期总线周期总线周期M/M/IOIOWRWRRDRD存储器读存储器读高高高高低低存储器写存储器写高高低低高高I/OI/O读读低低高高低低I/OI/O写写低低低低高高第四节第四节 8086 8086的最小工作模式:的最小工作模式:由图由图2-2-6 6可知,在可知,在80868086的最小模式中,硬件连接上有的最小模式中,硬件连接上有如下几个特点:如下几个特点:(1 1)MN/MN/MXMX引脚接引脚接+5+5V V,决定了决定了80868086工作在最小模式工作在最小模式。(2 2)有一片)有一片82348234A A,作为时钟发生器。作

32、为时钟发生器。(3 3)有三片有三片82828282或或7474LS373LS373,用来作为地址锁存器。用来作为地址锁存器。(4 4)当系统中所连接的存储器和外设比较多时,需)当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,可选用两片要增加系统数据总线的驱动能力,这时,可选用两片82868286或或7474LS245LS245作为总线收发器。作为总线收发器。图2-6 8086CPU最小模式下的典型配置注:74LS373=8282;74LS245=828674LS245(8286)74LS245(8286)引脚图引脚图A0A0A1A1A2A2A3A3A4A4A5A5

33、A6A6A7A7B0B0B1B1B2B2B3B3B4B4B5B5B6B6B7B7VCCVCCGNDGNDDIRDIRG G允许允许G G方向控制方向控制DIRDIR操作操作L LL LH HL LH HX X(无效)(无效)B B数据到数据到A A数据总线数据总线A A数据到数据到B B数据总线数据总线隔离隔离74LS245真值表真值表74LS245:三态输出的八总线传送接收器:三态输出的八总线传送接收器74LS24574LS245:每个引脚最大输出电流为:每个引脚最大输出电流为24mA24mA74LS373引脚图引脚图D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7Q0Q0Q

34、1Q1Q2Q2Q3Q3Q4Q4Q5Q5Q6Q6Q7Q7VCCVCCGNDGNDOEOEG G允许允许G G控制端控制端OEOED D输出输出Q QH HH HL L X X(无效)(无效)L LL LL LH HH HL LX XX XH HL LQ=QQ=Q0 0Z Z74LS373真值表真值表地址总线74LS373数据总线CLKREADYRESET8284时钟发生器RESVCCMN/MXVCCAD0AD7AD8AD15A16A19HBEALED0D7D0D7D0D5D4GGG74LS245QQQOEOEOEDENDTR/RDIRGRDWRM/IOINTRINTAHBEA16A19A8A15

35、A0A7A0A19D8D15D0D7D0D15控制总线总线数数据据和和地地址址为为独独立立的的线线图2-7 8086CPU最小模式硬件电路图8086CPU8086CPU最小模式框图最小模式框图图2-8 8086CPU最小模式简化图数据总线DB地址总线ABA0A19HBERDWRM/IOINTRINTA控制总线总线CBD0D15地址扩展8086最小最小系统系统图图2-9 8086CPU最大工作模式下的典型配置最大工作模式下的典型配置由图2-9可知,最大模式配置和最小模式配置有一个主要的差别:最大模式下多了8288总线控制器。本部分内容感兴趣的同学自学,不作为教学内本部分内容感兴趣的同学自学,不作

36、为教学内容容 8086/8088CPU基本的总线周期由4个时钟周期组成,如图2-10所示。时钟周期是CPU的基本时间计量单位,由CPU主频决定,如8086的主频为5MHz,1个时钟周期就是200ns。图2-10(A)8086/8088基本总线周期第五节第五节 8086 8086的总线时序的总线时序 一个时钟周期又称为一个一个时钟周期又称为一个T T状态,因此基本总线周状态,因此基本总线周期用期用T1T1、T2T2、T3T3、T4T4表示。图表示。图2-10(B)2-10(B)给出典型的总线给出典型的总线周期波形图。在周期波形图。在T1T1状态状态CPUCPU把要读把要读/写的存储单元的地写的存

37、储单元的地址或址或I/OI/O端口的地址放到地址总线上。端口的地址放到地址总线上。图2-10(B)8086/8088基本总线周期 若是若是“写写”总线周期,总线周期,CPUCPU从从T2T2起到起到T4T4,把数据,把数据送到总线上,并写入存储器单元或送到总线上,并写入存储器单元或I/OI/O端口;若是端口;若是“读读”总线周期,总线周期,CPUCPU则从则从T3T3起到起到T4T4从总线上接收数据,从总线上接收数据,T2T2状态时总线浮空,允许状态时总线浮空,允许CPUCPU有个缓冲时间把输出地有个缓冲时间把输出地址的写方式转换成输入数据的读方式。址的写方式转换成输入数据的读方式。1 1写周

38、期的时序(图写周期的时序(图2-2-1111)图图2-11 8086写总线周期写总线周期T1T3T2T4CLKA19/S6A1/S3BHE/S7AD15AD0ALEM/IOWRDT/RDEN一个总线周期状态输出数据输出地址输出BHE输出地址低为低为I/O写,高为存储器写写,高为存储器写为高为高(o)2 2读周期的时序读周期的时序图图2-12 8086读周期读周期T1T3T2T4CLKA19/S6A1/S3BHE/S7AD15AD0ALEM/IORDDT/RDEN一个总线周期状态输出数据输入地址输出BHE输出地址低为I/O读,高为存储器读为低(0)2.6.12.6.180868086的存储体结构

39、的存储体结构 (BHEBHE和和A0A0的的意义)意义)第六节第六节 8086 8086的存储体结构与组成的存储体结构与组成图图2-7 8086系统的存储器高低位连接逻辑结构系统的存储器高低位连接逻辑结构2.6.22.6.2存储器结构及寻址机制存储器结构及寻址机制存储器:计算机存储信息的地方。数据的存储格式:(1)计算机中信息的单位 二进制位二进制位BitBit:存储一位二进制数:存储一位二进制数:0 0或或1 1字节字节ByteByte:8 8位二进制数位二进制数,D D7 7D D0 0字字WordWord:1616位二进制数,位二进制数,2 2个字节,个字节,D D1515D D0 0双

40、字双字DWordDWord:3232位,位,4 4个字节个字节,D D3131D D0 0(2)最低有效位LSB:数据最低位,D0位(3)最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7、D15、D31位存储单元及其存储内容存储单元及其存储内容每个存储单元都有一个确定存储器地址存储器地址每个存储单元存放一个字节存放一个字节的内容(数据)多字节数据在存储器中占连续多个存储单元低字节存入低地址,高字节存入高地址低字节存入低地址,高字节存入高地址0002H0002H单元存放有一个数据单元存放有一个数据34H34H表达为:表达为:0002H=34H0002H=34H或或(0002H)=34

41、H(0002H)=34H存储器的分段管理存储器的分段管理8086/8088CPU有20条地址线最大可寻址空间为最大可寻址空间为2201MB物理地址范围从物理地址范围从00000HFFFFFH8086/8088CPU将1MB空间分成许多个逻辑段逻辑段每个段最大存储容量为每个段最大存储容量为64KB64KB段地址的低段地址的低4 4位为位为0000B0000B这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址物理地址和逻辑地址物理地址和逻辑地址8088CPU存储系统中,对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000H FFFFFH分段后在用户编程时,采用逻辑

42、地址逻辑地址,形式为:段基地址段基地址 :段内偏移地址段内偏移地址物理地址物理地址 14700H14700H逻辑地址逻辑地址 1460H1460H:0100H0100H因为因为8086中的所有寄存器都为中的所有寄存器都为16位位,段基地址段基地址为为16位位:段内偏移地址段内偏移地址为为16位位逻辑地址逻辑地址段基地址段基地址说明逻辑段在存储器中的起始位置8086/8088规定段基地址必须是16的整数倍:xxxx0H省略低省略低4 4位位0000B,0000B,段地址就可以用段地址就可以用1616位数据位数据表示表示,就能用16位位段寄存器段寄存器表达段地址物理地址和逻辑地址的转换物理地址和逻

43、辑地址的转换将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址一个物理地址可以有多个逻辑地址逻辑地址逻辑地址 1460:01001460:0100、1380:0F001380:0F00物理地址物理地址 14700H 14700H14700H 14700H146014600 0H H 100H100H14700H14700H138013800 0H H F00HF00H14700H14700H2.6.32.6.3 8086 8086存储器高低位库选择(奇、偶体选择)存储器高低位库选择(奇、偶体选择)存储器分为奇偶体的原因:8086有16条数据线,但常用的存储器为8位数据线,为了实现8

44、086即可存取8位数据,又可存取16数据,8086通过BHE和A0线的逻辑组合将存储器分为两部分:奇地址存储器和偶地址存储器。A0对应操作00同时访问两个存储体,读/写一个字的信息01只访问奇地址存储体,读/写高字节的信息10只访问偶地址存储体,读/写低字节的信息11无操作BHE8086存储器的段结构特点:1)8086可用来存放地址的寄存器如IP、SP等都是16位的,故只能直接寻址64KB。为了对1 M个存储单元进行管理,8086采用了段结构的存储器管理方法。2)8086将整个存储空间(1M字节)分为许多逻辑段,每个逻辑段的容量小于或等于64KB,允许它们在整个存储空间中浮动,各个逻辑段之间可

45、以紧密相连,也可以互相重叠。3)用户编写的程序(包括指令代码和数据)被分别存储在代码段、数据段、堆栈段和附加数据段中,这些段的段(基)地址分别保存在段寄存器CS、DS、SS和ES中,而指令或数据在段内的偏移地址可由对应的地址寄存器或立即数给出。4)如果从存储器中读取指令,则段地址来源于代码段则段地址来源于代码段寄存器寄存器CSCS,偏移地址来源于指令指针寄存器,偏移地址来源于指令指针寄存器IPIP。5)如果从存储器读/写操作数,则段地址通常由数据则段地址通常由数据段寄存器段寄存器DSDS提供提供(也可通过指令前缀实现段超越,将也可通过指令前缀实现段超越,将段地址指定为由段地址指定为由CSCS、

46、ESES或或SSSS提供提供),偏移地址则要根,偏移地址则要根据指令中所给出的寻址方式确定,据指令中所给出的寻址方式确定,这时,偏移地址通常由寄存器BX、SI、DI以及立即数等提供,这类偏移地址也被称为“有效地址”(EA)。如果操作数是通过基址寄存器BP寻址的,则此时操作数所在段的段地址由堆栈段段寄存器SS提供(必要时也可指定为CS、SS或ES)。6)如果使用堆栈操作指令(PUSH或POP)进行进栈或出栈操作,以保护断点或现场,则段地址来源于堆栈段寄存器SS,偏移地址来源于堆栈指针寄存器SP。7)如果执行的是字符串操作指令,则源字符串所在段的段地址由数据段寄存器DS提供(必要时可指定为CS、E

47、S或SS),偏移地址由源变址寄存器SI提供;目的字符串所在段的段地址由附加数据段寄存器ES提供,偏移地址由目的变址寄存器DI提供。8 8)以上这些存储器操作时段地址和偏移地址的约定是)以上这些存储器操作时段地址和偏移地址的约定是由系统设计时事先已规定好的,编写程序时必须遵守由系统设计时事先已规定好的,编写程序时必须遵守这些约定。这些约定。8086 CPU中有四个段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基值,即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段,如图2-8所示。8086808

48、6存储器的逻辑地址与物理地址存储器的逻辑地址与物理地址图图2-9 2-9 存储器分段示意图存储器分段示意图66H8FH7CH90H65H5FH1FH2BH8FHA2HC7H4AH代码段(64KB)10000H段地址:偏移地址段地址:偏移地址10001H10002H2A0F0H2A0F1H2A0F2HA0000HA0001HA0002HBC000HBC001HBC002H1000:00001000:00011000:00022A0F:00002A0F:00012A0F:0002A000:0000A000:0001A000:0002BC00:0000BC00:0001BC00:0002当前当前(C

49、S)=1000H,(DS)=2A0FH,(SS)=A000H,(ES)BC00H物理地址数据段(64KB)堆栈段段(64KB)附加段(64KB)8086 微机系统中的每个存储单元在存储体中的位置都可以使用实际地址(物理地址)来表示。CPU访问存储器时,要形成20位的物理地址,即先找到某段,再找到该段内的偏移量,CPU是以物理地址访问存储器的。20位的物理地址计算公式:段寄存器内容 XXXX XXXX XXXX XXXX 0000段内偏移量 YYYY YYYY YYYY YYYY-20位的物理地址 ZZZZ ZZZZ ZZZZZZZZ ZZZZZZZZ ZZZZZZZZ ZZZZZZZZ 物理地

50、址为:段地址(左移四位)+段内偏移量80868086存储器存储器2020位物理地址的形成位物理地址的形成 段划分的要求:段划分的要求:1M字节存储体需进行段划分,各段的段内地址是连续的,段与段之间是相互独立的。每个段的起始地址称段的基址,段基址必须是能被16整除的那些地址,即20位的段基址的低四位应当是0000。由于段起始地址的低四位为0,所以可用20位地址的高16位表示段的基址,存放在段基址寄存器中。段基址寄存器共四个:CS、DS、ES、SS。谢谢观看,敬请批评指正 北方民族大学电气信息工程学院自动化系 2005年2月制作 2006年2月修改 2007年2月修改 2008年2月修改 2008

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com