微机原理与应用-第4章_第1页
微机原理与应用-第4章_第2页
微机原理与应用-第4章_第3页
微机原理与应用-第4章_第4页
微机原理与应用-第4章_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

《微机原理及其应用》第4章微处理器及系统结构4.1

Intel8086/8088CPU主要特性及内部结构4.28086/8088CPU工作模式和引脚功能4.38086/8088的存储器组织目录内容简介:8086/8088微处理器系统特性及结构;内部寄存器的结构特点,8086/8088微机系统的存储器组织。4.48086/8088的总线操作和时序4.580x86微处理器简介第4章微处理器及系统结构4.1Intel8086/8088CPU主要特性及内部结构4.1.18086/8088CPU主要特性

Intel8086是16位微处理器,采用HMOS工艺40条引脚封装,使用5V电源,时钟频率5MHz。主要特性如下:(1)8086CPU数据总线为16位,8088CPU数据总线为8位。(2)地址总线都是20位,低16位与数据总线分时复用,可直接寻址1MB的存储空间。(3)有16位的端口地址,可以寻址64KB的I/O端口。(4)有99条基本指令,指令功能强大。(5)有8种基本寻址方式。(6)可处理内部和外部中断,外部中断源多达256个。(7)兼容性好,与80X86、8085在源程序一级兼容。(8)8086可与和协处理器(8087、8089)组成多处理器系统。4.1.28086/8088CPU内部结构

第2章微处理器及系统结构地址总线(20位)图4-18086CPU内部结构框图ALU数据总线(16位)地址加法器队列总线(8位)指令队列总线接口单元(BIU)123456DS内部通信寄存器总线控制逻辑数据总线(16位)8086总线暂存器ALUFLAGSEU控制器指令执行单元(EU)通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISI∑CSSSESIP从图4-1中可看出,8086CPU由两部分即指令执行单元EU和总线接口单元BIU组成。指令执行单元由算术逻辑运算单元ALU、标志寄存器FLAGS、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。总线接口部件BIU由地址加法器、专用寄存器组、指令队列和总线控制逻辑等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器取得指令并暂存到指令队列中等待执行,访问存储器或I/O端口以及读取操作数参与EU运算或存放运算结果等。8088与8086的区别:1)8088BIU中指令队列长度只有4B,8086BIU指令队列长度有6B。2)8088BIU通过总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与专用寄存器组之间的数据总线宽度也是8位,而EU内部总线仍是16位,所以把8088称为准16位微处理器。

第4章微处理器及系统结构4.1.38086CPU的寄存器结构8086CPU中有14个16位的寄存器。8个16位通用寄存器;2个16位指针寄存器;2个16位的变址寄存器;4个16位的段寄存器;1个16位指令指针;1个16位标志寄存器。8086/8088CPU的内部寄存器如图4-2所示。

图4-28086/8088CPU内部寄存器

15870SPBPSIDI堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指针和变址寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器段寄存器组CSDSSSES指令指针寄存器标志寄存器控制寄存器组IPFLAGS累加器基址寄存器计数寄存器数据寄存器数据寄存器AXAHALBXBHBLCXCHCLDXDHDL通用寄存器组第4章微处理器及系统结构1.通用寄存器组

8个16位通用寄存器,它们可分成两组。一组由AX、BX、CX和DX构成,称为数据寄存器,可用来存放16位的数据或地址,也可把它们当作8个8位寄存器来使用,即把每个通用寄存器的高半部分和低半部分分开。低半部分被命名为AL、BL、CL和DL;高半部分则被命名为AH、BH、CH和DH。8位寄存器只能存放数据而不能存放地址。2.段寄存器

4个16位段寄位器,它们是代码段寄存器CS,用于存放当前代码段的段地址;数据段寄存器DS,用于存放当前数据段的段地址;附加段寄存器ES,用于存放当前附加段的段地址;堆栈段寄存器SS,用于存放当前堆栈段的段地址。这些段寄存器彼此不能互换,每个段寄存器在只能寻址64KB。第4章微处理器及系统结构3.标志寄存器FLAGS8086/8088CPU中设置了一个16位标志寄存器FLAGS,用来存放运算结果的特征和控制标志,其格式如下。OFDFIFTFSFZFAFPFCF1110987642015标志寄存器FLAGS中存放的9个标志位可分成两类,一类叫状态标志,用来表示运算结果的特征,包括CF、PF、AF、ZF、SF和OF;另一类叫控制标志,用来控制CPU的操作,包括IF、DF和TF。各标志位的定义说明如下。(1)CF:进位标志位。CF=1,表示本次运算中最高位(第7位或第15位)有进位(加法运算时)或有借位(减法运算时)。注:CF=1表示二个无符号数加法或减法运算的结果超出了该字长能够表示的数据范围。例如,执行8位数据运算后,CF=1表示加法结果超过了255,或者是减法得到的差小于零。

第4章微处理器及系统结构(2)PF:奇偶标志位。PF=1,表示本次运算结果的低八位中有偶数个“1”;PF=0,表示有奇数个“1”。

(3)AF:辅助进位标志位。AF=1,表示8位运算结果(限使用AL寄存器)中低4位向高4位有进位(加法运算时)或有借位(减法运算时)。(4)ZF:零标志位。ZF=1,表示运算结果为0(各位全为0),否则ZF=0。(5)SF:符号标志位。SF=1,表示运算结果的最高位(第7位或第15位)为“1”,否则SF=0。(6)OF:溢出标志位。OF=1,表示算术运算结果产生溢出,否则OF=0。溢出标志位是根据操作数的符号及其变化情况设置的。例如,加法运算时,两个操作数符号相同,而结果的符号与之相反,则OF=1;否则OF=0。减法运算时,两个异号操作数相减,若差的符号与理论上结果的符号相反,则OF=1;否则OF=0。注:OF=1表示二个用补码表示的有符号数的加法或减法结果超出了该字长所能表示的范围。例如,字长为8位时,OF=1表示运算结果大于127或小于-128第4章微处理器及系统结构1.2.2微型计算机的工作原理例1若AL=3BH,AH=7DH,试指出AL中的内容和AH中的内容相加、相减后,标志CF、AF、PF、SF、OF和ZF的状态。

解:(1)AL+AH00111011AL+01111101AH10111000由运算结果可知:CF=0(无进位);AF=1(有辅助进位);PF=1(有偶数个1);SF=D7=1(运算结果符号位为1);OF=1(同号相加,结果的符号与两操作数符号相反,有溢出);ZF=0(运算结果不为0)。

(2)AL–AH00111011AL-01111101AH10111110由运算结果可知:CF=1(有借位);AF=1(有辅助借位);PF=1(有偶数个1);SF=1(符号位为1);OF=0(同号相减,无溢出);ZF=0(运算结果不为0)。

第4章微处理器及系统结构(7)IF:中断允许标志位。IF=1,表示允许CPU响应可屏蔽中断。IF标志可通过STI指令置位,也可通过CLI指令复位。(8)DF:方向标志位。在串操作指令中,若DF=0,表示串操作指令执行后地址指针自动增量,串操作由低地址向高地址进行;DF=1,表示地址指针自动减量,即串操作由高地址向低地址进行。DF标志位可通过STD指令置位,也可通过CLD指令复位。(9)TF:单步标志位。TF=1,表示控制CPU进入单步工作方式。在这种工作方式下,CPU每执行完一条指令就会自动产生一次内部中断。第4章微处理器及系统结构4.指令指针寄存器IP8086/8088CPU中有一个16位指令指针寄存器IP,用来存放将要执行的下一条指令在代码段中的偏移地址。在程序运行过程中,BIU自动修改IP中的内容,使它始终指向将要执行的下一条指令。4.28086/8088CPU工作模式和引脚功能4.2.18086/8088CPU引脚功能1.8086/8088CPU的主要引脚及功能8086/8088CPU是十六位的微处理器,它向外的信号至少应包含16条数据线,20条地址线,再加上其他一些必要的控制信号。为了减少芯片引脚数量,对部分引脚采用了分时复用的方式,构成40条引脚的双列直插式封装。8086CPU封装外形与内部各功能部件之间的相互连接如图4-3a)所示。a)HLDA(RQ1/GT1)HOLD(RQ0/GT0)INTRGND1408086CPUAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMICLKGNDVcc(+5V)A16/S3A18/S5A19/S6WR(LOCK)AD15A17/S4BHE/S7MN/MXRDM/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET2021图4-38086CPU封装外形与实物图a)封装外形第4章微处理器及系统结构(1)AD15~AD0分时复用地址数据线。三态单向输出;在T2~T4期间作数据线D15~D0,双向三态输入/输出。(2)A19/S6~A16/S3分时复用的地址/状态线。用作地址线时,A19~A16与AD15~AD0一起构成访问存储器的20位物理地址。

(3)BHE/S7总线高字节有效信号。三态输出,BHE/S7=“0”时,用来表示当前高8位数据线上的数据有效。(4)RD读信号。三态输出,当=“0”时,表示当前CPU正在读存储器或I/O端口。(5)WR写信号。三态输出,当=“0”时,表示当前CPU正在写存储器或I/O端口。(6)M/IO存储器或I/O端口访问信号。三态输出,当=“1”时,表示当前CPU正在访问存储器;=“0”时,表示CPU当前正在访问I/O端口。(7)READY准备就绪信号。由外部输入,当READY=“1”时,表示CPU访问的存储器或I/O端口已准备好传送数据。(8)RESET复位信号。由外部输入,高电平有效。

第4章微处理器及系统结构2.8086/8088的工作模式

8086/8088CPU为适应不同的应用环境,设置有两种工作模式,即最大工作模式和最小工作模式。(1)最小工作模式。所谓最小工作模式,是指系统中只有一个8086/8088微处理器,所有的总线控制信号都由8086/8088CPU直接产生,将CPU的引脚信号MN/接高电平(+5V)可使它工作于最小模式。Vcc图4-48086最小模式下的系统总线构成地址锁存器(8282×3)8284ACLKREADYRESET8086CPUAD15~AD0HEOEA19~A16INTRHOLDTA15~A0数据收发器(8286×2)STBDI控制总线B15~B0HEA19~A0地址总线D15~D0数据总线DOHLDARDYOEINTAM/IORDWRDENDT/R第4章微处理器及系统结构(2)最大工作模式所谓最大工作模式,是指系统中包含有两个以上的微处理器。其中一个为主处理器,就是8086/8088CPU,其他是协处理器。常与主处理器8086/8088CPU相配的协处理器有两个:一个是专用于数值运算的协处理器8087,使用它可大幅度提高系统数值运算速度;另一个专用于I/O操作的协处理器8089。第4章微处理器及系统结构图4-58086最大模式下的系统总线构成CEN地址锁存器(8282×3)8284ARESETREADYCLK8086CPUDENAD15~AD0HEALEA19~A16MRDCTA15~A0数据收发器(8286×2)STBDIB15~B0BHEA19~A0地址总线D15~D0数据总线DORDYS0S1S2S1S2S0MWTCAMWCIORCIOWCAIOWCAENIOBCLK+5VIORCINTRRQ/GT0RQ/GT18288控制总线第4章微处理器及系统结构4.38086/8088的存储器组织4.3.1存储器的分段和物理地址的形成1.存储器的组成

8086/8088系统中存储器的每一个存储单元(字节)都有一个独立的地址编码,地址编码采用20位二进制表示,地址译码器是根据地址编码才找到目标存储单元的。20位二进制地址编码的范围的十六进制表示为00000H~FFFFFH,最多可表示220(1MB)地址编码唯一的存储单元,把20位二进制表示的地址称为物理地址。

1011011038F04H存储单元内容存储单元地址(2)存储器的分段分段原因:由于8086/8088内部寄存器是16位的,对地址进行运算的能力也是16位的,一个20位的物理地址在8086/8088内部是无法存储的,也无法运算。提出了对内存进行分段。分段方案:将1MB存储空间逻辑上分为若干段,每段存储容量不大于64KB,段的起始单元地址能够被16整除,即起始地址为XXXX0H,前16位成为段基址,段内某单元相对于段首单元的位移量成为偏移地址。段的种类:一个逻辑段用于存放不同的信息,如程序段、数据段、堆栈段、堆栈段。每个逻辑段的容量在64KB以内。段的分类:各个逻辑段之间可以紧密相连,也可以相互重叠(完全重叠或部分重叠),

段1≤64KB段2≤64KB段3≤64KB4≤64KB00000H段1起点段2起点段3起点段4起点图4-6存储器分段示意图FFFFFH12340H段基址一个段2233FH0000H0001H0002H偏移地址FFFFH第4章微处理器及系统结构3.存储器地址

(1)物理地址:8088/8086可直接寻址1MB的存储空间,其地址区域为00000H—FFFFFH,与存储单元一一对应的20位地址,称之为存储单元的物理地址。(2)偏移地址:偏移地址是某存储单元相对其所在段起始位置的偏移字节数,或简称偏移量,是一个16位的地址。(3)物理地址的形成:物理地址是由段地址与偏移地址共同决定的,段地址来自于段寄存器(CS、DS、ES、SS),是十六位地址,由段地址及偏移地址计算物理地址的表达式如下:物理地址=段地址×16+偏移地址(4)逻辑地址:程序中用来描述存储单元位置的地址称为逻辑地址,它以“段基址:偏移地址”的形式给出。

代码段数据段附加段堆栈段CSDSESSS段寄存器与段对应关系第4章微处理器及系统结构4.逻辑地址的来源如果访问存储器的指令,则段基址来源于代码段寄存器CS,偏移地址来源于指令指针IP。如果访问存储器读写操作数,则通常由数据段寄存器DS给出段基址,而其偏移地址要由CPU的指令执行部件EU根据指令中的寻址方式来进行计算。如果所采用的寻址方式是通过基址指针寄存器BP寻址,则段基址要由堆栈段寄存器SS提供。如果对堆栈进行操作,则段基址来源于堆栈段寄存器SS,偏移地址来源于堆栈指针SP。00001501503210段基址图4-8物理地址的形成过程190地址加法器物理地址偏移地址例如,某单元处于数据段中,已知DS=2300H,偏移地址为0658H,则其物理地址为:2300H×10H+0658H=23658H

第4章微处理器及系统结构4.3.28086系统中存储器的分体结构1.8086系统中存储器的结构8086系统中,将1MB的存储空间分成两个512KB的存储体,一个存储体中包含偶数地址单元,用数据总线的低8位与它相连;另一个包含奇数地址单元,用数据总线的高8位与它相连。两个存储体之间采用字节交叉编址方式,如图2-9所示。15870图4-9存储器结构图000010000300005220–1=FFFFF000000000200004FFFFE=220-2

512K×8(位)奇地址存储体(A0=1)

512K×8(位)偶地址存储体(A0=0)第4章微处理器及系统结构2.存储器存放数据情况

若存放的数据是以字节为单位,在存储器中按顺序排列存放。例在10000H开始存储单元存放01H、13H、0ABH、86H,则在存储器中存放数据的情况如图2-12。若存放的数据是以字(16位)为单位的,则将每个字的低字节存放在低地址、高字节存放在高地址,并以低地址作为该字的地址。例在10003H开始存放1234H、567AH两个字,在存储器中存放数据的情况如图4-12。

01H10000H13H10001HABH10002H86H10003H34H10004H12H10005H7AH10006H56H10007H图4-12存储器存放数据情况第4章微处理器及系统结构4.3.38086/8088系统中的堆栈堆栈是在计算机中的RAM存储区开辟的一个特定区域,按照“后进先出”的原则组织。主要用于暂存数据和断点地址。1.堆栈的结构

存储区的存储方式采用一端固定(称为栈底),另一端浮动(称为栈顶)的方式,即只允许在活动端进行数据的输入或删除。

2.堆栈的操作堆栈段在存储区中的位置由堆栈段寄存器SS和堆栈指针SP来确定。SS中存放堆栈段的段基址,SP中存放栈顶的地址,此地址表示栈顶离段首址的偏移量,因此用SP指示栈元素进栈和出栈的偏移地址的变化。

堆栈段首地址SS10000H图4-138086堆栈在存储器中的分布情况11FFBH11FFDH11FFEH11FFFH11FFAH11FFCHSP12000H栈底≤64KB…第4章微处理器及系统结构(1)建栈。建立堆栈就是设定堆栈的段基址和栈底,用户可以通过数据传送指令把堆段的段基址送入段寄存器SS,把栈底的偏移地址送入堆栈指针寄存器SP。此时栈中无数据,是一个空栈。若SS=1000H,SP=2000H,则堆栈的情况如图2-13所示,建立堆栈指令为:MOVAX,1000HMOVSS,AXMOVSP,2000H

(2)入栈。入栈就是把数据压入堆栈,又称进栈。8086微处理器的入栈操作以字为单位。入栈操作分为两步:①将堆栈指针寄存器SP的内容减2,即是栈顶向低地址方向移动一个字单元,指向新栈顶。即:SP←SP–2;②将一个字数据推入到SP所指向的栈顶字单元,即:[SP]←字数据。注意:入栈字的低字节存入低地址单元,高字节存入高地址单元。第4章微处理器及系统结构例2若SS=2000H,当前SP=1234H,将寄存器AX中的数据7C9FH压入堆栈。操作如下:①修改SP,使其指向新栈顶,即:SP=1232H。②AX的内容压入栈顶字单元。即:AL送21232H单元,AH送21233H单元。其操作如图2-14a所示。7CH9FH5CH20HSP1232H21232H21233H21234H9FH7CHXXAX入栈操作设SS=2000Ha)SP1234H21232H21233H21234H20H5CHXXAX出栈操作图4-14入栈、出栈操作示意图a)入栈操作b)出栈操作b)(3)出栈。出栈是从堆栈中弹出数据。出栈的操作顺序与入栈相反。①将栈顶的一个字送寄存器或存储器,即:寄存器/存储器←[SP];②堆栈指针寄存器SP的内容加2,指向新栈顶,即:SP←(SP)+2

若:若SS=2000H,当前SP=1232H,将栈顶数据弹出送寄存器AX。操作如下:其操作如图2-14b所示。第4章微处理器及系统结构2.4.1时钟周期、总线周期和指令周期1.时钟周期时钟周期就是系统主时钟一个周期信号所持续的时间,大小等于它频率的倒数,它是CPU的基本时间计量单位。例如,某CPU的主频为8MHz,则其时钟的周期T=1/f=1/8MHz=125ns;若主频为25MHz,时钟周期为40ns。2.指令周期

CPU的一切操作都是在系统主时钟CLK的控制下按节拍有序地进行的。CPU执行一条指令的时间(包括取指令和执行该指令所需的全部时间)称为指令周期。3.总线周期在一个指令周期内,常常需要对总线上的存储器或I/O端口进行一次或多次读写操作。CPU通过外部总线对存储器或I/O端口进行一次读写操作的过程称为总线周期。显然,一个指令周期应由若干个总线周期组成,而一个总线周期由若干个时钟周期(T)组成。4.48086/8088的总线操作和时序第4章微处理器及系统结构4.4.28086/8088CPU的基本总线周期在8086/8088CPU中,所有的外部操作(读写存储器或I/O端口)都是由总线接口单元BIU通过系统总线完成的。因此,把BIU通过系统总线对存储器或I/O端口作一次读写操作的过程称为一个总线周期。可见,只有当BIU需要访问内存或I/O端口时,才需要执行总线周期。也就是说,总线周期是根据需要才会出现的。8086/8088CPU为了完成自身的功能,需要执行各种操作,如启动和复位操作、各种总线操作、中断操作、总线保持或总线请求操作等,这些操作的执行都是在时钟脉冲CLK的同步下,按时序一步一步地进行,这样,就构成了CPU操作的时序。第4章微处理器及系统结构4.4.3典型总线周期(总线操作)总线操作:8086/8088CPU凡是与存储器或I/O端口交换数据,或取指令填充指令队列时都需要通过BIU执行总线周期,即为总线操作。总线操作按数据传送方向可分为总线读操作和总线写操作。前者是指CPU从存储单元或I/O端口中读取数据,后者是指CPU将数据写入指定存储单元或I/O端口。1.最小模式下的总线读操作

总线读操作是8086/8088CPU从存储器或I/O端口读取数据的操作,在总线读周期内完成。图2-9是8086CPU在最小模式下从存储器或I/O端口读取数据(即执行读操作)的时序。2.最小模式下的总线写操作

8086/8088的写总线周期和读操作一样,基本写周期也包含4个状态T1、T2、T3和T4。当存储器或I/O设备速度较慢时,在T3和T4之间插入1个或几个等待状态TW。图2-10所示为最小模式下的总线写操作时序。

第4章微处理器及系统结构图4-98086最小模式下总线读周期的时序RDA19/S6~A16/S3AD15~AD0TW(1~n)CLKT1T2T3ALEDT/RDE

温馨提示

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

评论

0/150

提交评论