微机原理及应用第二章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三 8086/8088的引脚信号和功能
8086和8088的内部结构相似,并且都被封装在一个 标准的40 条引脚的双列在插式管壳内。如图2-8(a)是 8086CPU引脚,(b)是8088引脚。
(a)
(b)
图2-8 8086/8088引脚信号图(括号内为最大模式时的引脚 )
8086/8088有两种工作模式,即最大模式和最小模式。 40个引脚中括号内的符号为最大模式下的引脚说明符, 括号外的符号是最小模式下的引脚说明符,没有括号的 引脚是最大和最小模式公用的引脚说明符。 1.AD0~AD15(Address Data Bus)地址数据复用 引脚(可输入/输出,双向工作) 这16条引脚是分时复用多路地址/数据线。在时钟周 期T1状态时,输出存储器(或输入/输出设备)的地址信 号,T2到T4状态,则作为数据线传递数据。
⑶变址寄存器SI、DI SI(source Index)叫源变址寄存器,一般用于 源操作数当前数据段中某个地址的偏移地址。 DI(Destination index)叫目标变址寄存器,一 般用于目标操作数当前附加段(本数据段)中某个地 址的偏移地址。 在字符串操作中,SI用于存放源串操作数的偏移 地址,这个串一定是在数据段DS。DI用于存放目标串 操作数的偏移地址,这个串一定是在附加段ES。 在寄存器间寻址时,经常用DI、SI加上一个位移 量来改变存储器的地址,因此叫变址寄存器。 指针寄存器和变址寄存器与数据寄存器一样,可 以参与算术和逻辑运算,但指针寄存器和变址寄存器 只能用于16位计算,不能分成8位。
2.总线接口单元BIU 总线接口单元BIU包括4个段寄存器、1个指令指针寄 存器、1个与EU通读寄存器。一个先入先出的6个字节 (8088是4个字节)指令队列。总线控制逻辑电路及20位 实际物理地址计算的加法器。
二 8086/8088的寄存器结构 8086内部寄存器按其功能可分为:通用寄存器(8 个),段寄存器(4个),控制寄存器(2个)。 1.通用寄存器
2.段寄存器(segment) 段寄存器包括CS、SS、DS、ES,用于指示当前段的 段基址。 CS(Code Segment)叫代码段寄存器,用于指示当 前的代码段(程序段)的起始地址段基址。 DS (Date Segment)叫数据段寄存器,用于指示当 前的数据段的段基址。 SS(Stack Segment)叫堆栈段寄存器,用于指示 当前的堆栈段的段基址。 ES (Extra Segment)叫附加段寄存器,用于指示当 前的附加段的段基址。 CS段一般用于存放CPU执行的程序代码。DS一般用 于存放程序中的变量和数据。SS段一般用于存放压栈的 信息。ES段一般用于存放参与运算结果。
控制标志位 控制标志位被设置后,可完成某些控制操作。 TF(Trap Flag)跟踪标志位:是为调试程序而设置的。若 TF=1,则使8086CPU处于单步工作方式,在这种工作方式下,CPU 每执行完一条指令,就自动产生一个内部中断,处理机转去执行 一个中断服务程序。检查程序中的每条指令执行情况,当TF=0时, CPU正常执行程序。 IF(Interrupt Flag)中断允许标志位(开中断标志位): 若将IF设置为1时(IF=1),8086CPU开中断,CPU允许外部的可 屏蔽中断源的中断请示,若将IF清零(IF=0),8086CPU关中断, CPU禁止外部可屏蔽中断的请求。 IF只对可屏蔽中断起作用,对非屏蔽中断和内部中断都不起 作用。 DF(Direction Flag)方向标志位:方向标志位用于控制串 操作指令中SI(或DI)的修改方向。当DF设置为1(DF=1)时, SI(或DI)减量,当DF清零(DF=0)时,SI(或DI)增量,因为 SI(或DI)描述串操作的偏移地址,当SI(DI)减量时,串是由 高地址向低地址方向遵序执行。后续指令中将详细介绍。
第二章 8086/8088微处理器
第一节 8086/8088微处理器的结构 第二节 8086/8088典型时序分析
第一节 8086/8088微处理器的结构
一 8086/8088CPU内部结构
8086/8088微处理器的结构相似,都由算术逻辑运算 单元ALU、专用和通用寄存器、指令寄存器、指令译码器、 定时器控制电路等组成。按功能可把CPU分成两大部:执 行单元(Execution Unit)和总线接口单元(Bus Interface Unit)如图2-1所示,图中左半部分为执行单 元,简称EU。右半部分为总线接口单元,简称BIU。BIU与 外部总线相连,完成与外设(或存储器)的数据传送,包 括取指令操作、存储器读/写数据操作、I/O接口的读/写 操作。EU通过BIU得到信息,其功能就是负责指令的执行。 BIU和EU两个单元可以并行工作。这样提高CPU的工作速度。
2.A19/S6~A16/S3(Address/Status)地址状态复用 引脚(输出信号、三态工作) 在时钟周期T1状态时,这四条引脚输出最高四位地 址。(对于I/O操作,它们都是低电平)。在T2~T4状态 期间,它们输出状态信息,S6恒等于0,S5表明中断允许 标志位的状态,S5=1表示CPU可以响应可屏蔽中断的请 求,S5=0表示禁止可屏蔽中断。S4和S3的编码及功能如表 2-1所示。
AX(Accumulator)累加器,是指令系统中应用最 多的寄存器,输入/输出只能用AX寄存器传递数据,它 经常存放运算的中间结果,并参与下次运算,所以叫累 加器。 BX(base Register)基址寄存器,它通常用来存 放内存的基地址,用于寄存器寻扯。 CX(count Register)计数寄存器,在循环和串操 作指令中,用于计数重复次数。 DX(Data Register)数据寄存器,通常用来存放 运算结果。如乘法运算后DX与AX合起来存放32位数的运 算结果,其中DX存放高16位。在输入/输出操作中,可 用DX作为端口地址的寄存器间接寻址。
表2-1 S3﹑S4的代码组合和对应的含义 S4 0 0 S3 0 1 当前正在使用的段寄存器 ES SS
1
1
0
1
CS或未使用任何寄存器
DS
3. /S7(Bus High Enable)高位总线允许/状态 复用引脚(输出信号、三态工作) 在T1期间,若 (低电平)有效,则可以用D8~ D15数据总线传递数据。在T2~T4期间,这条引脚输出状态 信息。S7在8086芯片中,S7并未被赋予任何实际意义。 通常用 /A0控制连接在总线上的存储器或接口传 输数据操作特性。见表2-2。 表2-2 和A 的编码和对应的操作
⑵地址指针寄存器 地址指针寄存器有SP和BP两个。 SP(stack pointer)叫堆栈指示器,用于指示当 前堆段中栈顶所在的存储单元地址。(堆栈在后面介 绍)。 BP(base pointer)叫基址指示器,用于指示当前 堆栈段中一个数据区基址的偏移地址,通过它间接寻址 可对堆栈段中的某个数据进行存取。 SP和BP只能用于堆栈段,不能指示其它段。(存储 器是按段管理的,后续介绍)。但SP和BP应用上是有区 别的,SP可用于PUSH、POP、CALL、RET等指令,而BP不 能用于这些令(后续介绍)。
OF DF IF TF SF ZF AF PF CF
图2-2 8086标志寄存器FLAGS
状态标志位有: CF(Corry Flag)进位标志位(借位标志位):当进行加法 (或减法)运算时,若最高位发生进位来借位,则CF=1,否则 CF=0。 PF( Parity Flag)奇偶标志位:当逻辑运算结果中“1”的 个数为偶数时,PF=1,为奇数时,PF=0。 AF(Auxiliary Carry)半进位标志位:在8(16)位加减法 运算中,低4(8)位向高位有进位或借位,则AF=1,否则AF=0。 ZF(Zero Flag)零标志位:当运算结查为0时,ZF=1,否则 ZF=0。 SF(Sign Flag)符号标志位:当运算结果最高位是1(即函 数)时,SF=1,否则SF=0。 OF(Over Flag)溢出标志位:当运算结果超出了带符号数 的范围,即溢出时,OF=1,否则OF=0。8位带符号数范围是128~+127。16位带符号数的范围是-32768~+32767。这6个状态标 志位状态是计算机运算后,自动生成的不是人为赋予的,当然也 可通过POPF改变各状态值。(后续介绍)
6.INTR(Interrupt Request)可屏蔽中断请示(输入信号、 高电平有效) 在CPU执行每条指令的最后一个时钟周期,要对INTR进行采 样,如果IF=1,并且INTR有效,那么CPU就会在结束当前指令后, 响应中断,进入一个中断处理程序。 7. (Test)测试引脚(输入信号、低电平有效) 由外部提供。当处理机执行WAIT指令时,用WAIT指 令来测试 信号。当 为低电平时,程序继续执行WAIT指 令后的指令,当 为高电平时,则处理机处于空闲等待状态, 重复执行WAIT指令。该输入信号在每个时钟周期内,由时钟脉冲 的前沿来实现内部同步。 8.NMI(Non-Maskable Interrupt)非屏蔽中断引脚(输入信 号) 非屏蔽中断信号是边缘触发的外部输入信号。这类中断不受IF的 影响,也不能用软件进行屏蔽。当NMI引脚受到由低到高变化的 信号(正沿触发),CPU就会在当前指令结束后,马上进入非屏 蔽中断处理程序。非屏蔽中断处理程序的入口地址在中断向量表 中2号中断源的存储器中存放。中断向量表在中断一章详细介绍。
0
在8088中,第34脚不是 /S7,而是被赋予另外的信 号。在最大模式时,此引脚恒为高电平;在最小模式时, 则为SS0,它和DT/ , /IO一起决定了8088芯片当前总线 周期的读/写动作。
4. (READ)读控制信号(输出信号、三态工作) 有效表明可以执行一个对内存或I/O端口的读操 作。是对存储器还是对I/O进行读操作,由引脚M/ IO 状态 决定。从T2状态开始,到T4状态前, 低电平有效。在系 统总线进入保持响应期间, 信息呈高阻状态。 5.READY (Ready)准备就绪(输入信号、高电平 有效) READY信号是由所访问的存储器或I/O设备发来的 响应信号。当READY=1时,表示存储器或I/O设备准备 就绪,可以进行一次数据传输。若存储器或I/O设备没有 准备就绪,则READY降为低电平,于是CPU在T3状态 之后,插入等待状态TW,直到READY恢复高电平,才 进入T4状态,完成数据传输。CPU在每个总线周期的T3 状态对READY信号采样。 在数据传递完成以后,存储器或I/O设备发给8284 时钟发生器一个RDY信号,RDY信号经8284同步后, 形成8086需要的READY准备就绪信号。
3.控制寄存器 控制寄存器有IP和FLAGS。 ⑴IP(Instruction Pointer)叫指令指针寄存器 (程序指示器)。用于存放预取指令的偏移地址。CPU 从代码段中偏移地址为IP的内存单元中取出指令代码的 一个字节后,IP自动加I,指向指令代码的下一个字节 。用户程序不能直接访问IP。 ⑵FLAGS(Flags)叫标志寄存器,用于存放运算 结果的标志。FLAGS是16位寄存器,用其中的9位来描述 9个标志。通常叫标志9个标志可分为状态标志位和控制 标志位。如图2-2所示。
通用寄存器的包括数据寄存器、地址指针寄存器和 变址寄存器。 ⑴数据寄存器数据寄存器有AX、BX、CX、DX都是16 位寄存器,这四个16位寄存器可分为高8位和低8位两部分 使用,也就是说也可作8位寄存器使用。高8位表示成:AH、 BH、CH、DH,低8位表示成:AL、BL、CL、DL。参与运算 的数是16位数时,可用AX、BX、CX、DX中的任意一个描述, 如果参与运算的数据是8位数时可用AH、AL、BH、BL、CH、 CL、DH、DL中的任意一个描述。一般情况下,这四个数据 寄存器就是用于存放参与运算的数据或运算结果的。但这 四个寄存器又有自己特殊的用法。
图2-1 8086微处理器内部结构示意图
ห้องสมุดไป่ตู้ 1.执行单元EU
执行单元EU由8个通用寄存器、1个标志寄存器、算术 逻辑运算单元ALU及EU控制电路组成;EU从BIU指令队列寄 存器中获得指令和待处理数据进行操作。将指令代码译码 后,发出相应的控制信息,将数据在ALU中进行运算,运 算结果的特征保留在标志寄存的FLAGS中。