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

下载本文档

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

文档简介

本章主要知识点:8086的内部组成、引脚功能和工作模式。2.8086的最小模式组成原理。3.8086微处理器的时序。本章学习的重点:1、8086的内部结构组成;2、8086的四个段寄存器的作用,使用中的差异;3、8086的通用寄存器的作用,使用中的差异;4、8086各引脚的意义和功能;5、8086存储体的组成特点和要求;6、8085物理地址、偏移地址、段地址之间的关系;7、8086的总线时序;学习注意事项:用红颜色表出的字均为重点理解和学习中的难点,希望同学们学习时注意!,第2章8086微处理器,第一节微型计算机的组成及工作原理,图2.1微型计算机的组成,2.1.1CPU的基本概念和组成微处理器(机)简称CPU,是用来实现运算和控制功能的部件,由运算器、控制器和寄存器3部分组成。1)运算器用于完成数据的算术和逻辑运算。2)寄存器用来暂存参加运算的操作数和运算结果。3)控制器由指令寄存器、指令译码器和控制电路组成。指令是一组二进制编码信息,主要包括两个内容:告诉计算机进行什么操作;指出操作数或操作数地址。控制电路根据指令的要求向微型机各部件发出一系列相应的控制信息,使它们协调有序地工作。,2.2.2存储器,1)存储器的作用:图2.1中的存储器是指微型计算机的内存储器,用来存放程序、原始操作数、运算的中间结果数据和最终结果数据。2)程序的组成和格式:程序是按解题顺序编排、用一系列指令表示的计算步骤。程序和数据在形式上均为二进制码,它们均以字节为单位存储在内存储器中,一个字节占用一个存储单元,并具有唯一的地址号。CPU可以对内存储器执行读/写两种操作。,CPU可以对内存储器执行读/写两种操作3)读操作过程:读存储器操作是在控制部件发出的读命令控制下,将内存中某个存储单元的内容取出,送入CPU中某个寄存器;4)写操作过程:写存储器操作是在控制部件发出的写命令控制下,将CPU中某寄存器内容传送到存储器的某个存储单元中。注意:写操作执行后,存储单元内容被改变;读操作执行后,存储单元内容不变。,2.2.3输入/输出设备及其接口电路输入/输出(缩写为I/O)设备统称外部设备,是微型计算机的重要组成部分。输入设备的任务是将程序、原始数据及现场信息以计算机所能识别的形式送到计算机中,供计算机自动计算或处理用。微型机中常用的输入设备包括键盘、鼠标器、数字化仪、扫描仪、A/D转换器等。输出设备的任务是将计算机的计算和处理结果或回答信号以人能识别的各种形式表示出来。微型机中常用的输出设备包括显示器、打印机、绘图仪、D/A转换器等。软磁盘、硬磁盘及其驱动器对微型机来说,既是输入设备又是输出设备。只读激光盘(CD-ROM)及其驱动器属于微型机的输入设备。软磁盘、硬磁盘及光盘又统称为计算机的外存储器。,第二节8086/8088微处理器,2.3.18086微处理器结构1、8086/8088微处理器系列概况(1)从8080/8085到80868086是16微处理器,内部及对外有16位数据通路,8080/8085只有8位。8088是8位微处理器,但内部有16位数据通路,而对外为8位数据通路。8086/8088寻址空间1MB,8080/8085为64KB。8086有一个初级流水线结构,内部操作与对外操作具有并行性。,2、8086的内部结构组成:,8086的内部主要有以下两大部分组成:1)总线接口部件(BIU)2)执行部件(EU)8086的内部结构组成如图2-2,8086的内部结构,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,总线,执行部分控制电路,ALU,标志寄存器,AHAL,BHBL,CHCL,DHDL,SP,BP,SI,DI,通用寄存器,地址加法器,指令队列,执行部件(EU),总线接口部件(BIU),16位,20位,8位,8位,图2-28086的内部结构组成,专用寄存器,段寄存器,8086微处理器逻辑框图:分EU与BIU两部分:执行部件(EU):由ALU、通用寄存器组、状态寄存器及操作控制器电路组成。总线接口部件(BIU):由专用寄存器、指令队列缓冲器、地址加法器等功能部件组成。形成对外总线,与存储器、I/O接口电路进行数据传输。,(1)总线接口部件(BIU),总线接口部件由下列各部分组成:1)4个段地址寄存器;CS16位的代码段寄存器;DS16位的数据段寄存器;ES16位的扩展段寄存器;SS16位的堆栈段寄存器;2)16位的指令指针寄存器IP;3)20位的物理地址加法器;4)6字节的指令队列缓冲器。,段寄存器:8086CPU的地址引脚有20条线,能提供20位的地址信息,可直接对1M个存储单元进行访问,但CPU内部可用来提供地址信息的寄存器都是16位的,那么如何用16位寄存器实现20位地址的寻址呢?8086/8088采用了段结构的内存管理的方法。将指令代码和数据分别存储在代码段、数据段、堆栈段、附加数据段中,这些段的段地址分别由段寄存器CS、DS、SS、ES提供,而代码或数据在段内的偏移地址则由有关寄存器或立即数给出。,8086/8088段寄存器的作用:(1)代码段寄存器CS:存储程序当前使用的代码段的段地址。(2)数据段寄存器DS:存放程序当前使用的数据段的段地址。程序中所用到的原始数据、中间结果以及最终结果都可存放在数据段中。(3)堆栈段寄存器SS:存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域。(4)附加数据段寄存器ES:存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。,段寄存器在使用中应注意:(1)在编写汇编语言源程序时,应按上述规定将程序的各个部分放在规定的段内。(2)每个源程序必须至少有一个代码段,而数据段、堆栈段和附加数据段则根据程序的需要决定是否设置。,执行部件的功能就是负责从指令队列取指令并执行。从内部结构图可见,执行部件由下列几个部分组成:1)4个16位通用寄存器:即AX、BX、CX、DX,也可作为8个8位通用寄存器:即AH,AL、BH、BL、CH、CL、DH、DL。2)4个专用寄存器:SP、BP、DI、SI。3)标志寄存器FR4)算术逻辑运算单元ALU,(2)执行部件EU,(3)“流水线”结构,总线接口部件BIU和执行部件EU并不是同步工作的,两者的动作管理遵循如下原则:每当8086的指令队列中有2个空字节,BIU就会自动把指令取到指令队列中。而同时EU从指令队列取出一条指令,并用几个时钟周期去分析、执行指令。当指令队列已满,而且EU对BIU又无总线访问请求时,BIU便进入空闲状态。在执行转移、调用和返回指令时,指令队列中的原有内容被自动清除。,8086的指令队列有6个字节,当指令队列出现2个空字节,BIU就自动执行一次取指令周期,将下一条要执行的指令从内存单元读入指令队列。它们采用“先进先出”原则,按顺序存放,并按顺序取到EU中去执行。,(4)指令队列缓冲器,8086流水操作示意图,图2-38086流水操作示意图,在t0t4时间间隔中,理想情况下,8086可执行3条指令。,(4)8086/8088寄存器,8086/8088CPU内部寄存器结构,1)通用寄存器通用寄存器包括四个数据寄存器,两个地址指针寄存器和两个变址寄存器。1)数据寄存器AX、BX、CX、DX数据寄存器一般用于存放参与运算的操作数或运算结果。每个数据寄存器都是16位的,但又可将高、低8位分别作为两个独立的8位寄存器来用。高8位分别记作AH、BH、CH、DH,低8位分别记作AL,BL,CL,DL。,上述4个寄存器一般用来存放数据,但它们各自都有自己的特定用途:AX(Accumulator)称为累加器用该寄存器存放运算结果可使指令简化,提高指令的执行速度。此外,所有的I/O指令都使用该寄存器与外设端口交换信息。BX(Base)称为基址寄存器8086/8088CPU中有两个基址寄存器BX和BP。BX用来存放操作数在内存中数据段内的偏移地址,BP用来存放操作数在堆栈段内的偏移地址(也可用于其它运算使用)。,CX(Counter)称为计数器在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。(也可用于其它运算作为寄存器使用)DX(Data)称为数据寄存器在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。(也可用于其它运算作为寄存器使用),2)地址指针寄存器SP、BPSP(StackPointer)称为堆栈指针寄存器在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2(16位操作数),以使其始终指向栈顶。(专用,只能作为堆栈指针寄存器使用)BP(BasePointer)称为基址寄存器作为通用寄存器,它可以用来存放数据,但更重要的用途是存放操作数在堆栈段内的偏移地址。(也可用于其它运算作为寄存器使用),3)变址寄存器SI、DISI(SourceIndex)称为源变址寄存器。DI(DestinationIndex)称为目的变址寄存器。SI、DI通常用在字符串操作时存放操作数的偏移地址,其中SI存放源串在数据段内的偏移地址,DI存放目的串在附加数据段内的偏移地址。4)控制寄存器指令指针寄存器IP:用来存放下一条要读取的指令在代码段内的偏移地址。用户程序不能直接访问IP。标志寄存器FLAGS:用于反映指令执行结果或控制指令执行形式,它是一个16位的寄存器,但只用了其中9位,这9位包括6个状态标志位,3个控制标志位,如图2-4所示。,图2-4标志寄存器结构图,状态标志:记录程序运行结果的状态信息,许多指令的执行都将相应地设置它们:CFZFSFPFOFAF控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式:DFIFTF,(1)进位标志CF(CarryFlag),设置原则:当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF1;否则CF0,3AH+7CHB6H,没有进位:CF=0AAH+7CH(1)26H,有进位:CF=1,条件(状态)标志位:,(2)零标志ZF(ZeroFlag),设置原则:若运算结果为0,则ZF1;否则ZF0,3AH7CHB6H,结果不是零:ZF084H7CH(1)00H,结果是零:ZF1结果有进位:CF1,(3)符号标志SF(SignFlag),设置原则:运算结果最高位为1,则SF1;否则SF0,3AH7CHB6H,最高位D71:SF184H7CH(1)00H,最高位D70:SF0,(4)奇偶标志PF(ParityFlag),设置原则:当运算结果最低字节(低8位)中“1”的个数为零或偶数时,PF1;否则PF0,3AH7CHB6H10110110B结果中有5个“1”,是奇数,PF0,(5)溢出标志OF(OverflowFlag),设置原则:当运算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1,否则为0。对无符号数无意义。,3AH+7CHB6H,产生溢出:OF1溢出的原因:两个正数相加,结果为负数AAH+7CH(1)26H,没有溢出:OF0不溢出的原因:一个正数与负数相加,结果不会溢出!,(6)辅助进位标志AF(AuxiliaryCarryFlag),3AH7CHB6H,D3有进位:AF1,设置原则:运算时D3位(低半字节)有进位或借位时,AF1;否则AF0,(1)方向标志DF(DirectionFlag),设置原则:用于串操作指令中,控制地址的变化方向(由指令改变其值)。设置DF0,存储器地址自动增加;设置DF1,存储器地址自动减少,CLD指令复位方向标志:DF0STD指令置位方向标志:DF1,控制标志位:,(2)中断允许标志IF(Interrupt-enableFlag),设置原则:控制可屏蔽中断是否可以被处理器响应(由指令改变其值)。设置IF1,则允许中断;设置IF0,则禁止中断,CLI指令复位中断标志:IF0STI指令置位中断标志:IF1,(3)陷阱标志TF(TrapFlag),设置原则:用于控制处理器进入单步操作方式:设置TF0,处理器正常工作;设置TF1,处理器单步执行指令,单步执行指令处理器在每条指令执行结束时,便产生一个编号为1的内部中断(单步中断)利用单步中断可对程序进行逐条指令的调试单步调试,第三节8086的引脚功能和工作模式,2.3.1.8086CPU的引脚信号(图2-5),第三节8086的引脚功能和工作模式,图2-58086CPU的引脚信号,(1)基本引脚信号AD15AD0(I/O,三态):地址/数据复用引脚。A19/S6A16/S3(O,三态):地址/状态复用引脚。BHE/S7(O,三态):高字节允许/状态复用引脚。NMI(In):非屏蔽中断请求线,上升边触发。INTR(In):可屏蔽中断请求线,高电平有效。RD(O,三态):读选通信号,低电平有效。CLK(In):时钟信号,处理器基本定时脉冲。RESET(In):复位信号,高电平有效。注:(O)为输出信号;(IN)为输入信号,8086复位后内部寄存器的状态,注意:8086复位后各寄存器的状态非常重要,它决定了:1、启动后CPU各(段、通用)寄存器的原始状态;2、CS和IP的状态决定了指令(程序存储器)的设计要求。,WR(O,三态):写选通信号,低电平有效。READY(IN):准备好信号,高电平有效。处理器与存储器及I/O接口速度同步的控制信号。当被访问的部件无法在8086CPU规定的时间内完成数据传送时,应由该部件向8086CPU发出READY=0(低电平),使8086CPU处于等待状态,插入一个或几个等待周期T,当被访问的部件完成数据传输时,被访问的部件将使READY=1(高电平),8086CPU继续运行。TEST(IN):等待测试控制信号(输入)。在WAIT(等待)指令期间,8086CPU每隔5个时钟周期对TEST引脚采样。若TEST为高电平,8086CPU循环在等待状态,若TEST为低电平,则8086CPU脱离等待状态,继续执行后续指令。,MN/MX(IN):最大/最小工作模式选择信号。硬件设计者用来决定8086工作模式,MN/MX=1,8086为最小模式。MN/MX=0,8086为最大模式。Vcc(IN):处理器的电源引脚,接+5V电源。GND:处理器的地线引脚,接系统地线。(O)为输出信号;(IN)为输入信号,(2)最小模式下的有关控制信号INTA(O):最小模式下的中断响应信号。ALE(O):地址锁存允许信号ALE引脚高有效时,AD7AD0和A19A16正在传送地址信息,由于地址信息在这些复用引脚上出现的时间很短暂,所以系统需利用ALE引脚将地址锁存起来。DEN(O,三态):数据总线缓冲器允许信号。数据允许,输出、三态、低电平有效,有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动,DT/R(O,三态):数据总线缓冲器方向控制信号。数据发送/接收,输出、三态。该信号表明当前总线上数据的流向:高电平时数据自CPU输出(发送)低电平时数据输入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读写控制的组合,M/IO、WR和RD控制信号组合后,控制4种基本的总线周期,第四节8086的最小工作模式:,由图2-6可知,在8086的最小模式中,硬件连接上有如下几个特点:(1)MN/MX引脚接+5V,决定了8086工作在最小模式。(2)有一片8234A,作为时钟发生器。(3)有三片8282或74LS373,用来作为地址锁存器。(4)当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,可选用两片8286或74LS245作为总线收发器。,图2-68086CPU最小模式下的典型配置,注:74LS373=8282;74LS245=8286,74LS245(8286)引脚图,74LS245真值表,74LS245:三态输出的八总线传送接收器,74LS245:每个引脚最大输出电流为24mA,74LS373引脚图,D0,D1,D2,D3,D4,D5,D6,D7,Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,VCC,GND,OE,G,74LS373真值表,数据和地址为独立的线,图2-78086CPU最小模式硬件电路图,8086CPU最小模式框图,图2-88086CPU最小模式简化图,图2-98086CPU最大工作模式下的典型配置,由图2-9可知,最大模式配置和最小模式配置有一个主要的差别:最大模式下多了8288总线控制器。本部分内容感兴趣的同学自学,不作为教学内容,8086/8088CPU基本的总线周期由4个时钟周期组成,如图2-10所示。时钟周期是CPU的基本时间计量单位,由CPU主频决定,如8086的主频为5MHz,1个时钟周期就是200ns。,图2-10(A)8086/8088基本总线周期,第五节8086的总线时序,一个时钟周期又称为一个T状态,因此基本总线周期用T1、T2、T3、T4表示。图2-10(B)给出典型的总线周期波形图。在T1状态CPU把要读/写的存储单元的地址或I/O端口的地址放到地址总线上。,图2-10(B)8086/8088基本总线周期,若是“写”总线周期,CPU从T2起到T4,把数据送到总线上,并写入存储器单元或I/O端口;若是“读”总线周期,CPU则从T3起到T4从总线上接收数据,T2状态时总线浮空,允许CPU有个缓冲时间把输出地址的写方式转换成输入数据的读方式。,1写周期的时序(图2-11),图2-118086写总线周期,2读周期的时序,图2-128086读周期,2.6.18086的存储体结构,(BHE和A0的意义),第六节8086的存储体结构与组成,图2-78086系统的存储器高低位连接逻辑结构,2.6.2存储器结构及寻址机制,存储器:计算机存储信息的地方。数据的存储格式:,(1)计算机中信息的单位二进制位Bit:存储一位二进制数:0或1字节Byte:8位二进制数,D7D0字Word:16位二进制数,2个字节,D15D0双字DWord:32位,4个字节,D31D0(2)最低有效位LSB:数据最低位,D0位(3)最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7、D15、D31位,存储单元及其存储内容,每个存储单元都有一个确定存储器地址每个存储单元存放一个字节的内容(数据)多字节数据在存储器中占连续多个存储单元低字节存入低地址,高字节存入高地址,0002H单元存放有一个数据34H表达为:0002H=34H或(0002H)=34H,存储器的分段管理,8086/8088CPU有20条地址线最大可寻址空间为2201MB物理地址范围从00000HFFFFFH8086/8088CPU将1MB空间分成许多个逻辑段每个段最大存储容量为64KB段地址的低4位为0000B这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址,8086的存储格式图示:,物理地址和逻辑地址,8088CPU存储系统中,对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000HFFFFFH分段后在用户编程时,采用逻辑地址,形式为:段基地址:段内偏移地址,物理地址14700H逻辑地址1460H:0100H,因为8086中的所有寄存器都为16位,段基地址为16位:段内偏移地址为16位,逻辑地址,段基地址说明逻辑段在存储器中的起始位置8086/8088规定段基地址必须是16的整数倍:xxxx0H省略低4位0000B,段地址就可以用16位数据表示,就能用16位段寄存器表达段地址,物理地址和逻辑地址的转换,将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址一个物理地址可以有多个逻辑地址,逻辑地址1460:0100、1380:0F00物理地址14700H14700H,逻辑段的分配图示:,2.6.38086存储器高低位库选择(奇、偶体选择),存储器分为奇偶体的原因:8086有16条数据线,但常用的存储器为8位数据线,为了实现8086即可存取8位数据,又可存取16数据,8086通过BHE和A0线的逻辑组合将存储器分为两部分:奇地址存储器和偶地址存储器。,8086存储器的段结构特点:1)8086可用来存放地址的寄存器如IP、SP等都是16位的,故只能直接寻址64KB。为了对1M个存储单元进行管理,8086采用了段结构的存储器管理方法。2)8086将整个存储空间(1M字节)分为许多逻辑段,每个逻辑段的容量小于或等于64KB,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以互相重叠。3)用户编写的程序(包括指令代码和数据)被分别存储在代码段、数据段、堆栈段和附加数据段中,这些段的段(基)地址分别保存在段寄存器CS、DS、SS和ES中,而指令或数据在段内的偏移地址可由对应的地址寄存器或立即数给出。,4)如果从存储器中读取指令,则段地址来源于代码段寄存器CS,偏移地址来源于指令指针寄存器IP。5)如果从存储器读/写操作数,则段地址通常由数据段寄存器DS提供(也可通过指令前缀实现段超越,将段地址指定为由CS、ES或SS提供),偏移地址则要根据指

温馨提示

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

评论

0/150

提交评论