
微机原理第03章.ppt
59页第3章 8086/8088微处理器及其系统本章着重介绍8086/8088微处理器、系统 组成及指令系统 3.1 8086/8088微处理器3.1.1、 8086/8088CPU的内部结构3.1.2、 8086/8088CPU的寄存器结构3.1.3、 8086/8088总线操作 3.1.4、 8086/8088的引脚信号和功能3.1.1 8086/8088CPU的内部结构8086的内部结构从功能上分成两个单元 1. 总线接口单元BIU 管理8086与系统总线的接口 负责CPU对存储器和外设进行访问 2. 执行单元EU 负责指令的译码、执行和数据的运算 两个单元相互独立,分别完成各自操作,实 现指令读取和执行的流水线操作返回3.1.2 8088/8086的寄存器结构8088/8086的寄存器组有 8个通用寄存器 4个段寄存器 1个标志寄存器 1个指令指针寄存器 他们均为16位!汇编语言程序员看到的处理器,就是寄存器所以,一定要熟悉这些寄存器的名称和作用图示返回1. 通用寄存器8088/8086有8个通用的16位寄存器 (1)数据寄存器: AX BX CX DX (2)变址寄存器: SI DI (3)指针寄存器: BP SP 4个数据寄存器还可以分成高8位和低8位两个 独立的寄存器,这样又形成8个通用的8位寄存 器 AX: AH AL BX: BH BL CX: CH CL DX: DH DL(1)数据寄存器AX称为累加器(Accumulator)使用频度最高。
用于算术、逻辑运算以及与外设传送信息 等 BX称为基址寄存器(Base address Register)常用做存放存储器地址 CX称为计数器(Counter)作为循环和串操作等指令中的隐含计数器 DX称为数据寄存器(Data register) 常用来存放双字长数据的高16位,或存放外设端口地址(2)变址寄存器16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址 SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index) 在串操作类指令中,SI、DI还有较特殊的用 法现在不必完全理解,以后会详细展开(3)指针寄存器指针寄存器用于寻址内存堆栈内的数据 SP为堆栈指针寄存器(Stack Pointer),指示堆 栈段栈顶的偏移地址 BP为基址指针寄存器(Base Pointer),表示堆 栈段中一个数据区基地址的偏移地址 SP和BP寄存器与堆栈段寄存器SS联合使用以 确定堆栈段中的存储单元地址2. 指令指针寄存器IP(Instruction Pointer)为指令指针寄存器 ,指令指针IP是一个16位专用寄存器 IP指向当前需要取出的指令字节,当BIU从内 存中取出一个指令字节后,IP就自动加1,指向 下一个指令字节。
•IP寄存器与CS段寄存器联合使用以确定下一条 指令的存储单元地址3. 标志寄存器标志(Flag)用于反映指令执行结果或控制 指令执行形式 8088/8086处理器的各种标志形成了一个16位 的标志寄存器FLAGS程序设计需要利用标志的状态标志寄存器-分类状态标志--用来记录程序运行结果的状态 信息,许多指令的执行都将相应地设置它 CF ZF SF PF OF AF 控制标志--可由程序员根据需要用指令设 置,用于控制处理器执行指令的方式 DF IF TFOF1115 12 DF10 IF9 TF8 SF7 ZF65 AF43 PF21 CF0标志寄存器标志寄存器FLAGSFLAGS进位标志CF(Carry Flag)当运算结果的最高有效位有进位(加法)或借位( 减法)时,进位标志置1,即CF=1;否则CF=03AH + 7CH=B6H,没有进位:CF = 0AAH + 7CH=(1)26H,有进位:CF = 1零标志ZF(Zero Flag)若运算结果为0,则ZF=1; 否则ZF=03AH+7CH=B6H,结果不是零:ZF=084H+7CH=(1)00H,结果是零:ZF=1注意:ZF为1表示的结果是0符号标志SF(Sign Flag)运算结果最高位为1,则SF=1;否则SF=03AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态奇偶标志PF(Parity Flag)当运算结果最低字节中“1”的个数为零或偶数 时,PF=1;否则PF=03AH+7CH=B6H=10110110B结果中有5个“1”,是奇数:PF=0PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作溢出标志OF(Overflow Flag)若算术运算的结果有溢出,则OF=1;否则 OF=03AH + 7CH=B6H,产生溢出:OF=1 AAH + 7CH=(1)26H,没有溢出:OF=0辅助进位标志AF(Auxiliary Carry Flag)Ø运算时D3位(低半字节)有进位或借位 时,AF=1;否则AF=0这个标志主要由处理器内部使用, 用于十进制算术运算调整指令中, 用户一般不必关心3AH+7CH=B6H,D3有进位:AF=1方向标志DF(Direction Flag)用于串操作指令中,控制地址的变化方向: 设置DF=0,存储器地址自动递增; 设置DF=1,存储器地址自动递减;ØCLD指令复位方向标志:DF=0ØSTD指令置位方向标志:DF=1中断允许标志IF(Interrupt-enable Flag)控制可屏蔽中断是否可以被处理器响应: 设置IF=1,则允许中断; 设置IF=0,则禁止中断ØCLI指令复位中断标志:IF=0ØSTI指令置位中断标志:IF=1陷阱标志TF(Trap Flag)用于控制处理器进入单步操作方式: 设置TF=0,处理器正常工作; 设置TF=1,处理器单步执行指令Ø单步执行指令——处理器在每条指令执行结束 时,便产生一个编号为1的内部中断 Ø这种内部中断称为单步中断 Ø所以TF也称为单步标志n利用单步中断可对程序进行逐条指令的调试n这种逐条指令调试程序的方法就是单步调试4. 段寄存器8086/8088有4个16位段寄存器 CS(代码段)指明代码段的起始地址,指令由 此段中取出 SS(堆栈段)指明堆栈段的起始地址,堆栈操 作的对象就是该段中存储单元的内容 DS(数据段)指明数据段的起始地址,通常用 来存放程序变量(存储器操作数) ES(附加段)指明附加段的起始地址,通常用 来存放数据返回3.1.3 8086/8088总线操作 • 时序(Timing)是指信号高低电平(有效 或无效)变化及相互间的时间顺序关系。
• 总线时序描述CPU引脚如何实现总线操作 • CPU时序决定系统各部件间的同步和定时什么是总线操作?• 总线操作是指CPU通过总线对外的各种操作 • 8086的总线操作主要有: u存储器读、I/O读操作 u存储器写、I/O写操作 u中断响应操作 • 描述总线操作的微处理器时序有三级: u指令周期 → 总线周期 → 时钟周期什么是指令、总线和时钟周期?• 指令周期是指一条指令经取指、译码、读写操 作数到执行完成的过程若干总线周期组成一 个指令周期 • 总线周期是指CPU通过总线操作与外部(存储 器或I/O端口)进行一次数据交换的过程 • 8086的基本总线周期需要4个时钟周期 u4个时钟周期编号为T1、T2、T3和T4 u总线周期中的时钟周期也被称作“T状态” u时钟周期的时间长度就是时钟频率的倒数 • 当需要延长总线周期时需要插入等待状态Tw补充:三态门和D触发器• 三态门和以D触发器形成的锁存器是微机接 口电路中最常使用的两类逻辑电路 • 三态门:功率放大、导通开关 • 器件共用总线时,一般使用三态电路: u需要使用总线的时候打开三态门; u不使用的时候关闭三态门,使之处于高阻 • D触发器:信号保持,也可用作导通开关三态缓冲器(三态门)三态门具有单向导通和三态的特性T为低电平时: 输出为高阻抗(三态) T为高点平时: 输出为输入的反相TAF表示反相或低电平有效TAFTAFTAF双向三态缓冲器ABTOE*OE*=0,导通T=1 A→BT=0 A←B OE*=1,不导通双向三态门具有双向 导通和三态的特性Intel 8286OE*=0,导通T=1 A→BT=0 A←B OE*=1,不导通每一位都是一个双向三态门, 8位具有共同的控制端8位双向缓冲器 控制端连接在一起 ,低电平有效 可以双向导通 输出与输入同相返回D触发器D QC Q电平锁存D QC Q上升沿锁存负脉冲的上升沿电平锁存: 高电平通过,低电平锁存 上升沿锁存: 通常用负脉冲触发锁存三态缓冲锁存器(三态锁存器)TAD QCB锁存环节缓冲环节Intel 8282每一位都是一个三态锁存器, 8个三态锁存器的控制端连在一起返回3.1.4、8086/8088的引脚信号和功能外部特性表现在其引脚信号上,学 习时请特别关注以下几个方面:⑶ 有效电平⑷ 三态能力⑵ 信号的流向⑴ 引脚的功能指引脚信号的定义、 作用;通常采用英文 单词或其缩写表示信号从芯片向外输出 ,还是从外部输入芯 片,或者是双向的起作用的逻辑电平 高、低电平有效上 升、下降边沿有效输出正常的低电平、 高电平外,还可以输 出高阻的第三态8086/8088的引脚图1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2040 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC A15 A16 / S3 A17 / S4 A18 / S5 A19 / S6 SS0* (HIGH) MN / MX* RD* HOLD (RQ*/ GT0*) HLDA (RQ* /GT1*) WR* (LOCK*) M * / IO ( S2* ) DT / R* ( S1* ) DEN * ( S0 *) ALE ( QS0 ) INTA * ( QS1) TEST* READY RESETGNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC AD15 A16 / S3 A17 / S4 A18 / S5 A19 / S6 BHE* / S7 MN / MX* RD* HOLD (RQ*/ GT0*) HLDA (RQ* /GT1*) WR* (LOCK*) M / IO * ( S2* ) DT / R* ( S1* ) DEN * ( S0 * ) ALE ( QS0) INTA * ( QS1 ) TEST* READY RESET通常在信号名称加上划线(如:MX)或星号(如:MX*) 表示低电平有效1. 公共引脚无论在最大模式或最小模式中,都共同使用的引脚信号。
(1)AD15~AD0(Address Data Bus) 1. 这是分时复用的地址/数据总线传输地址时,三态输出 ;传送数据时,三态输入/输出所谓三态,除“0”、“1”两种状态外,还有一种浮空(高阻)状态;通常采用三态门 进行控制 2. (2)A19/S6~A16/S3(Address / Status ) 3. 为分时复用的地址/状态线(三态、输出) 4. (3)BHE/S7(Bus High Enable /Status ) 5. 高8位数据总线有效/状态复用引脚,三态,输出T1状 态:D15—D8有效,T2、T3、TW、T4:。












