微机原理与接口技术第二章__微处理器 课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

本章主要知识点:1.8086的内部组成、引脚功能和工作模式。2.8086的最小模式组成原理。3.8086微处理器的时序。本章学习的重点:1、8086的内部结构组成;2、8086的四个段寄存器的作用,使用中的差异;3、8086的通用寄存器的作用,使用中的差异;4、8086各引脚的意义和功能;5、8086存储体的组成特点和要求;6、8085物理地址、偏移地址、段地址之间的关系;7、8086的总线时序;学习注意事项:用红颜色表出的字均为重点理解和学习中的难点,希望同学们学习时注意!!第2章8086微处理器第一节微型计算机的组成及工作原理图2.1微型计算机的组成微处理器8086/8088存储器RAM存储器ROMI/O接口外围设备地址总线AB控制总线CB数据总线DB系统总线或三总线2.1.1CPU的基本概念和组成微处理器(机)简称CPU,是用来实现运算和控制功能的部件,由运算器、控制器和寄存器3部分组成。1)运算器用于完成数据的算术和逻辑运算。2)寄存器用来暂存参加运算的操作数和运算结果。3)控制器由指令寄存器、指令译码器和控制电路组成。指令是一组二进制编码信息,主要包括两个内容:(1)告诉计算机进行什么操作;(2)指出操作数或操作数地址。控制电路根据指令的要求向微型机各部件发出一系列相应的控制信息,使它们协调有序地工作。2.2.21)存储器的作用:图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-28086的内部结构内部暂存器IPESSSDSCS输入/输出控制电路总线执行部分控制电路∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行部件(EU)总线接口部件(BIU)16位20位8位8位图2-28086的内部结构组成1234568086微处理器逻辑框图:分EU与BIU两部分:执行部件(EU):由ALU、通用寄存器组、状态寄存器及操作控制器电路组成。总线接口部件(BIU):由专用寄存器、指令队列缓冲器、地址加法器等功能部件组成。形成对外总线,与存储器、I/O接口电路进行数据传输。(1)总线接口部件(BIU)总线接口部件由下列各部分组成:1)4个段地址寄存器;CS——16位的代码段寄存器;DS——16位的数据段寄存器;ES——16位的扩展段寄存器;SS——16位的堆栈段寄存器;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流水操作示意图取指令1执行指令1取指令2执行指令2取指令3执行指令3t0t1t2t3t4t图2-38086流水操作示意图在t0~t4时间间隔中,理想情况下,8086可执行3条指令。(4)8086/8088寄存器AHBHCHDHALBLCLDL15870AXBXCXDX累加器基址寄存器计数寄存器数据寄存器数据寄存器150SPBPSIDI150CSDSSSES150IPFLAGS堆栈指针寄存器基址寄存器源变址寄存器目的变址寄存器指针寄存器变址寄存器代码段寄存器数据段寄存器堆栈段寄存器附加数据段寄存器段寄存器指令指针寄存器状态标志寄存器控制寄存器通用寄存器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标志寄存器结构图OF1511DF10IF9TF8SF7ZF6AF4PF2CF0控制标志位:TF、IF、DF状态标志位:CF、PF、AF、ZF、SF、OF状态标志:记录程序运行结果的状态信息,许多指令的执行都将相应地设置它们:CFZFSFPFOFAF控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式:DFIFTF(1)进位标志CF(CarryFlag)设置原则:当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF=1;否则CF=03AH+7CH=B6H,没有进位:CF=0AAH+7CH=(1)26H,有进位:CF=1条件(状态)标志位:(2)零标志ZF(ZeroFlag)设置原则:若运算结果为0,则ZF=1;否则ZF=03AH+7CH=B6H,结果不是零:ZF=084H+7CH=(1)00H,结果是零:ZF=1结果有进位:CF=1(3)符号标志SF(SignFlag)设置原则:运算结果最高位为1,则SF=1;否则SF=03AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0(4)奇偶标志PF(ParityFlag)设置原则:当运算结果最低字节(低8位)中“1”的个数为零或偶数时,PF=1;否则PF=03AH+7CH=B6H=10110110B结果中有5个“1”,是奇数,∴PF=0(5)溢出标志OF(OverflowFlag)设置原则:当运算结果超出了带符号数所能表示的数值范围,即溢出时,OF=1,否则为0。对无符号数无意义。3AH+7CH=B6H,产生溢出:OF=1溢出的原因:两个正数相加,结果为负数AAH+7CH=(1)26H,没有溢出:OF=0不溢出的原因:一个正数与负数相加,结果不会溢出!(6)辅助进位标志AF(AuxiliaryCarryFlag)3AH+7CH=B6H

1 / 73
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功