990 likes | 1.4k Views
第 2 章 8086/8088 微处理器. 2.1 8086/8088 微处理器的结构 2.2 8086/8088 的引脚信号及工作模式 2.3 8086/8088CPU 工作模式及其系统结构 2.4 8086 的程序访问结构 2.5 时钟周期、总线周期和指令周期. 8086CPU 功能结构. 2.1 8086/8088 微处理器的结构. 8086 : 16 位微处理器 , 16 根数据线、 20 根地址线,可寻址 1M 字节; 8088 :准 16 位微处理器 ,其内部寄存器、内部运算部件以及内部操作均按 16 位设计,但对外的数据总线只有 8 条。.
E N D
第2章 8086/8088微处理器 2.1 8086/8088微处理器的结构 2.2 8086/8088的引脚信号及工作模式 2.3 8086/8088CPU工作模式及其系统结构 2.4 8086的程序访问结构 2.5 时钟周期、总线周期和指令周期
8086CPU功能结构 2.1 8086/8088微处理器的结构 • 8086:16位微处理器 ,16根数据线、20根地址线,可寻址1M字节; • 8088:准16位微处理器 ,其内部寄存器、内部运算部件以及内部操作均按16位设计,但对外的数据总线只有8条。 总线接口部件BIU 功能:负责与 M、I/O端口传送数据、地址 执行部件EU 功能:从指令流队列中取指令、分析指令和执行指令
地址加法器 通用寄存器 AX AH AL BX BH BL CX CH CL DX DH DL SP BP DI SI 20位地址总线 CS DS SS ES IP 暂存器 外部总线 16位数据总线 专用(段)寄存器 指令队列 EU 控 制 器 暂 存 器 1 2 3 4 5 6 ALU 8088 8位队列总线 8086 标志寄存器 8086CPU功能结构图 2.1 8086/8088微处理器的结构 总 线 控 制 逻 辑 总线接口部件BIU 执行部件EU 8086:6个字节 8088:4个字节 8086指令队列空2个字节(8088空1个字节),且EU部件没有要求BIU部件进入存取操作数等总线周期时,BIU部件就会自动从内存单元顺序取指令字节填满指令流队列。 生成20位物理地址 • CS:存放代码段段基址 • DS:存放数据段段基址 • SS:存放堆栈段段基址 • ES:存放附加段段基址 • IP : 存放下一条要执行指令 • 的有效地址EA。 内部总线16位 完成16或8位二进制数的算术运算和逻辑运算 通用寄存器组 包括数据寄存器和地址与变址寄存器。
2.1 8086/8088微处理器的结构 • 并行处理的优势: • 一条指令执行过程中可以取出下一条(或多条)指令,指令在指令队列中排队; • 一条指令执行完成后,可立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。
2.1 8086/8088微处理器的结构 2.1.2 8086/8088的内部寄存器 • 8086CPU的内部寄存器如图2.1所示。8086CPU内部有 • 14个16位寄存器,可以分为以下三组。 数据寄存器 通用寄存器组 地址与变址寄存器 段寄存器组 指令指针IP 控制寄存器组 标志寄存器FR
16位 • AH • AL 8 8 • BH • BL • CH • CL • DH • DL 2.1 8086/8088微处理器的结构 8086的16位通用寄存器是: AX BX CX DX SI DI BP SP 8086的8位通用寄存器是: AH BH CH DH AL BL CL DL 对其中某8位的操作,并不影响另外对应8位的数据 数据寄存器: AX:使用频度最高,用于算术、逻辑运算以及与外设传送信息等; • 累加器 • AX • AX • BX • 基址寄存器 • BX 数据寄存器 可分为两个8位,主要用于数据操作 • 计数寄存器 • CX • CX • BX:常用做存放存储器地址; • DX • 数据寄存器 • DX • CX:作为循环和串操作等指令中的隐含计数器; • SP • 堆栈指针 • BP • 基址指针 • DX:常用来存放双字长数据的高16位,或存放外设端口地址; 地址指针寄存器 主要用于地址操作 • SI • 源变址指针 • DI • 目的变址指针
16位 • AH • AL 8 8 • BH • BL • CH • CL • DH • DL 2.1 8086/8088微处理器的结构 数据寄存器: SP:指示栈顶的偏移地址,不能再用于其他目的,具有专用目的。 • 累加器 • AX • AX • BX • 基址寄存器 • BX 数据寄存器 可分为两个8位,主要用于数据操作 • 计数寄存器 • CX • CX • BP:数据在堆栈段中的基地址。 • SP和BP寄存器与SS段寄存器联合使用来访问堆栈。 • DX • 数据寄存器 • DX • SP • 堆栈指针 • BP • 基址指针 地址指针寄存器 主要用于地址操作 • SI和DI:串操作类指令中,常用于存储器寻址时提供地址。 • SI • 源变址指针 • DI • 目的变址指针
2.1 8086/8088微处理器的结构 • 2. 段寄存器组 • 8086/8088CPU可直接寻址1MB内存空间。 • 存储空间采用分段技术,每段最大寻址64KB。 • 逻辑段可在整个1MB存储空间内浮动,但段的起始地址 • 低4位必须是0000B,这样在存放段地址时只存放高16 • 位,作为段基址。
2.1 8086/8088微处理器的结构 访问:代码段 物理地址的构成:CS×10H+IP 取指令 访问:数据段 物理地址的构成:DS×10H+EA 存取数据 操作 堆栈操作 物理地址的构成:SS×10H+SP 物理地址的构成:ES×10H+DI 目的串操作
2.1 8086/8088微处理器的结构 • 物理地址=段地址×10H+有效地址
16位 CS 20位 IP或偏移地址 + 地址加法器 物理地址 20位 2.1 8086/8088微处理器的结构 20位物理地址形成过程演示 CS左移4位
2.1 8086/8088微处理器的结构 8086的基本段约定和允许的段超越如表2-1所示。 表中的“-”表示不允许修改。 表2-1 8086的基本段约定和允许的超越段
指令指针IP 标志寄存器FR 2.1 8086/8088微处理器的结构 作用:存放将要执行的下一条指令在现行代码段中的偏移地址,它与CS相结合生成指向指令的物理地址。 特点:IP是一个专用寄存器,其内容由BIU部件自动修改,不能直接访问IP,但可以通过转移或调用指令改变其内容。 控制寄存器组 作用:存放指令执行结果特征位和对CPU运行特点的控制位。 特点:8086 CPU 中设置了16位标志寄存器,只用了9位,其余位用来扩展。9位标志分为6位状态标志和3位控制标志两类。
D15..D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 OF DF IF TF SF ZF AF PF CF 2.1 8086/8088微处理器的结构 (2)标志寄存器 • 16位,只用了其中9位,唯一能按位操作的寄存器。 • 用于反映指令执行结果或控制指令执行形式。 • 6位状态标志:OF、SF、ZF、PF、CF、AF • 作用:反映指令对数据作用之后,结果的状态,控制后续指令的执行。 • 3位控制标志:DF、IF、TF • 作用:值不由数据运算结果决定,由指令直接赋值,决定后续指令执 • 行情况。 • CF:进位/借位标志 • CF=1:最高位需要向前产生进位/借位。 • CF=0:最高位不会向前产生进位/借位。 • PF:奇偶标志 • PF=1: 结果的低8位中有偶数个1。 • PF=0: 结果的低8位中有奇数个1。 • 影响全部状态标志:加法、减法运算。 • 影响部分状态标志:移位操作。 • 不影响任何状态标志:数据传送指令。 • AF:辅助进位标志 • AF=1:数据的第3位(半个字节)需要向前产生进位/借位。 • AF=0:数据的第3位(半个字节)不会向前产生进位/借位。 • ZF:全零标志 • ZF=1:运算结果为全0。不包括进位的情况 • ZF=0:运算结果不为0。
D15 ..D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 OF DF IF TF SF ZF AF PF CF 2.1 8086/8088微处理器的结构 (2)标志寄存器 • 16位,只用了其中9位,唯一能按位操作的寄存器 • 用于反映指令执行结果或控制指令执行形式 • DF:方向控制标志位 • 用于串处理指令,控制从前往后、还是从后往前对字符串进行操作处理。 • DF=1,每次串处理操作后使变址寄存器SI和DI的值递减,使串处理从高地址向低地址方向处理。 • DF=0,每次串处理操作后使变址寄存器SI和DI的值递增,使串处理从低地址向高地址方向处理。 • SF:符号标志 • SF=1:运算结果的最高位为1,如果为带符号数,则为负数。 • SF=0:运算结果的最高位为0,如果为带符号数,则为正数。 • 带符号数的最高位为符号位;而无符号数的 最高位为数值位。 • OF:溢出标志(指补码) • OF=1:操作数超过了机器表示的范围,溢出。 • OF=0:操作数未超过了机器能表示的范围,不溢出。 • 求解方法:最高位进位次高位进位 • 字节允许范围:-128 — + 127 • 字允许范围:-32768 — + 32767 • IF:中断允许/禁止标志位 • IF=1, 允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。 • IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。 • IF的状态对不可屏蔽中断和内部软中断没有影响。 • TF:跟踪(单步)标志位 • TF=1,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。 • TF=0, CPU正常工作。
标志名 标志为1 标志为0 OF溢出(是/否) OV NV DF方向(减量/加量) DN UP IF中断(允许/关闭) EI DI SF符号(负/正) NG PL ZF零(是/否) ZR NZ AF辅助进位(是/否) AC NA PF奇偶标志( 偶/奇) PE PO CF进位标志(是/否) CY NC 2.1 8086/8088微处理器的结构 • 控制标志与状态标志的区别: • 控制标志:其值由系统程序或用户程序根据需要用指令设置。 • 状态标志:由中央处理器执行运算指令,并根据运算结果而自 • 动设置。 调试状态时,标志位之值的符号表示
2.1 8086/8088微处理器的结构 例1:2个数相加后,分析各标志位的值 例2:2个数相减后,分析各标志位的值
0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 + 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0 2.1 8086/8088微处理器的结构 运算结果最高位为1 ∴SF=1; 运算结果本身≠0 ∴ZF=0; 低8位中1的个数为偶数个 ∴PF=1; 最高位没有进位 ∴CF=0; 第三位向第四位有进位 ∴AF=1; 次高位向最高位有进位 ,最高位向前没有进位,∴OF=10=1 返 回
0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 - 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 1 0 0 2.1 8086/8088微处理器的结构 运算结果最高位为0 ∴SF=0; 运算结果本身≠0 ∴ZF=0; 低8位中1的个数为奇数个 ∴PF=0; 最高位没有借位 ∴CF=0; 第三位向第四位没有借位 ∴AF=0; 次高位向最高位没有借位 ,最高位向前没有借位,∴OF=00=0
2.2 8086/8088的引脚信号及工作模式 信号引脚功能 芯片引脚特性描述 引脚信号的定义 信号的有效电平 指控制引脚使用有效时的逻辑电平。低电平有效的引脚名字上面加有一条横线,引脚名字上无横线者为高电平有效。另有一些引脚高、低电平均有效,分别表示不同的状态或数值。还有些引脚信号为边沿有效。 信号流向 芯片与其他部件的联系全靠在引脚上传送信息,这些信息可能自芯片向外输出,也可能从外部输入到芯片,还可能是双向的。 引脚复用 一个引脚具有两种或两种以上的功能,可以减少引脚的数量。 三态能力 “三态”能力是指有些引脚除了能正常输出或输入高、低电平外,还能输出高阻状态。当它输出高阻状态时,表示芯片实际上已放弃了对该引脚的控制,使之“浮空”。这样,与总线相连接的其它设备就可以获得对总线的控制权,系统转为接受总线的设备控制下工作。
2.2 8086/8088的引脚信号及工作模式 思考:何时传输地址,何时传输数据? • 40条引脚,双列直插式封装 • 采用分时复用地址/数据总线 • 两种模式:最大模式、最小模式 • 最大模式:两个或多个微处理器(多微处理器模式),一个主处理器为8086CPU,另外的处理器可以是浮点数协助处理器8087或I/O处理器8089。 • 最小模式:只有8086CPU一个微处理器(单处理器模式)。 思考:如何选择两种工作模式?
2.2 8086/8088的引脚信号及工作模式 2.2.1 8086CPU的引脚及其功能 8086有40个引脚,其中第33 (最小/最大模式)脚很关键,它是一条输入线,可以加高电平,也可以加低电平,由该线所加电平的高或低电平决定24-31引脚的功能(24-31引脚括号内为最大模式功能)其他引脚不受第33引脚的影响,我们把这部分引脚称为功能引脚。
2.2 8086/8088的引脚信号及工作模式 • 8086CPU的引脚线按照功能分为3类。 数据引脚线 8086 CPU 引脚分类 地址引脚线 控制引脚线
2.2 8086/8088的引脚信号及工作模式 • 1. 地址、数据引脚线 • AD0~AD15: • 分时复用的地址数据引脚线,双向、三态。 • T1期间作地址线A15~A0用,输出存储单元低16位地址。 • T2~T3期间作数据线D15~D0用,双向。 • 写操作为T2~T3; • 读操作为T3,T2处于悬空状态; • CPU响应中断及系统总线处理“保持响应”状态时,AD0~AD15处于悬空状态。 返 回
2.2 8086/8088的引脚信号及工作模式 • A19/S6~A16/S3:分时复用,输出引脚。 • T1期间,作为20位地址线的高4位A19~A16。 • T2~T4期间作为S6~S3状态线用。 S4和S3状态组合与当前段的关系表 S5:表示中断允许标志状态。 S5=1表示中断允许标志IF=1,允许可屏蔽中断请求; S5=0表示IF=0,禁止可屏蔽中断请求。 S6:指示8086当前是否与总线相连。 S6=0表示8086连在总线上。
2.2 8086/8088的引脚信号及工作模式 • 2. 控制引脚线 • CPU在进行具体操作时所发出的控制信号,CPU的操作不同,使用的引脚线也各不相同。 启动复位和时钟信号 最小/最大方式的读/写操作 操作类型 总线请求和响应操作 中断请求和响应操作 控制数据和地址信息传送操作 CPU等待检测操作及其他信号
2.2 8086/8088的引脚信号及工作模式 RESET复位信号 复位条件:至少保持4个时钟周期的高电平 复位处理:除CS=FFFFH外,包括IP在内的其余 寄存器和指令流队列的值均为0。 复位结果:从FFFF:0000H处开始执行程序。 一般放置一条转移指令转到程序真正的入口地址。 启动复位和时钟信号 CLK时钟输入信号 提供了CPU和总线控制的基本定时脉冲。 返 回
选择信号 读信号 写信号 2.2 8086/8088的引脚信号及工作模式 最小方式的读/写操作信号 高电平:CPU当前访问存储器 低电平:当前CPU访问I/O端口 表示CPU正在对存储器或I/O端口进行读操作 表示CPU当前正在对存储器或I/O端口进行写操作
2.2 8086/8088的引脚信号及工作模式 8086/8088CPU读写操作信号对照表 返 回
2.2 8086/8088的引脚信号及工作模式 总线请求和响应操作信号 HOLD总线保持请求信号 HOLD=1,有总线请求; HOLD=0,无总线请求。 HLDA总线保持响应信号 当HOLD=1时,HLDA=1;表示CPU让出总线使用权。 HOLD和HDLA一对联络信号的应答关系 返 回
中断响应信号:CPU对中断请求信号INTR的响应。目的为了获取中断类型码。中断响应信号:CPU对中断请求信号INTR的响应。目的为了获取中断类型码。 2.2 8086/8088的引脚信号及工作模式 非屏蔽中断( NMI),上升沿有效。 中断请求和响应操作信号 不受中断允许标志IF的控制,也不能用软件进行屏蔽。 可屏蔽中断(INTR和 中断响应信号) 当INTR=1,并且中断允许标志位IF=1时,则CPU在当前指令周期结束后,转入中断响应周期。 返 回
数据允许信号 数据发送/接收控制信号 2.2 8086/8088的引脚信号及工作模式 ALE 地址锁存允许信号 控制信息传送操作的相关控制信号 在任何一个总线周期T1状态,表示当前地址/数据复用总线上输出是地址信息,下降沿将地址信息锁存到锁存器。 CPU控制8286/8287等数据总线收发器的选通信号。 有效时间:存储器访问、I/O访问、中断响应周期 作用:控制8286/8287的数据传送方向。 =1时,发送; =0时,接收。 返 回
测试信号 2.2 8086/8088的引脚信号及工作模式 高电平:CPU继续空转等待; 低电平:退出等待,执行下一条指令。 等待检测操作信号 READY准备就绪信号 作用:使CPU和低速的存储器或I/O设备之间实现速度匹配。 READY=1:按正常时序进行读、写操作,不插入TW; READY=0:在T3和T4之间自动插入一个或几个TW。
BHE/S7 2.2 8086/8088的引脚信号及工作模式 其他信号 高8位数据总线允许/状态复用引脚:8086存储体选择信号,低电平表示高8位数据总线有效。 3. VCC、GND(电源、地):输入。 8086 VCC接入的电压为+5V±10%。 GND有两条(1引脚和20引脚),一个是电源接地,一个是信号接地。通常两者电位相同,特殊使用时有差异。
图 示 2.2 8086/8088的引脚信号及工作模式 2.2.2 8088CPU和8086CPU区别 • 8086有16根数据线,与地址线A15~A0分时复 • 用,而8088只有8根数据线与地址线AD7~AD0 • 分时复用。 外部引脚的区别 8086有总线高位有效信号,一次可读写8位或16 位数据;而8088读写16位的数据需要两次访问存储器或端口。
2.2 8086/8088的引脚信号及工作模式 注意:8086和8088微处理器引脚的不同
图 示 2.2 8086/8088的引脚信号及工作模式 2.2.2 8088CPU和8086CPU区别 • 内部结构的区别 • 8086的总线接口部件BIU中有一个6字节的指令队列。 2个字节空余,BIU自动取指令到指令队列。 • 8088CPU中只有一个4字节的指令队列。当8088指令 队列有1个字节的空余时,BIU自动取指令到指令队 列。
地址加法器 通用寄存器 AX AH AL BX BH BL CX CH CL DX DH DL SP BP DI SI 20位地址总线 CS DS SS ES IP 暂存器 外部总线 16位数据总线 指令队列 EU 控 制 器 暂 存 器 1 2 3 4 5 6 ALU 8088 8位队列总线 8086 标志寄存器 8086CPU功能结构图 总 线 控 制 逻 辑 总线接口部件BIU 执行部件EU 内部总线16位
2.2 8086/8088的引脚信号及工作模式 2.2.3 8086/8088CPU最大模式引脚 • 接地(低电平):CPU工作于最大模式。 • 双功能引脚:不同模式下有不同的名称和定义8个 • (24~31)引脚。 • 一般引脚:除双功能引脚外的其他引脚功能同最小 • 模式下的定义和功能。
INTA IORC IOWC AIOWC MRDC MRDC MWTC AMWC 2.2 8086/8088的引脚信号及工作模式 • (1) 总线周期状态信号(输出、三态)。 • 作用:在最大模式下,组合起来指出当前总线周期所进行的操作类型。
2.2 8086/8088的引脚信号及工作模式 • (2) • 总线请求信号/总线请求允许信号(输入/输出) • 方向:双向 • 有效电平:低电平 • 作用:最大模式系统中8086/8088CPU和其它协处理 • 器交换总线使用权的联络控制信号。 • 两个信号类型相同,表示可同时连接两个协处理器, • 其中 优先级较高。
2.2 8086/8088的引脚信号及工作模式 • 三段有效:请求、允许和释放 协处理器 8086CPU RQ信号:请求使用总线 响应:T4或Ti周期输出一个GT信号,交出总线使用权 释放总线:输出一个低电平信号
2.2 8086/8088的引脚信号及工作模式 • (3) 总线封锁信号(输出、三态) • 低电平:CPU不允许其它总线主模块占用总线,该信号由 指令前缀LOCK产生。 • 高电平:撤消总线封锁。 • 8086CPU处于2个中断响应周期期间自动变为低电平,以防止其它总线主模块在中断响应过程中占有总线而使一个完整的中断响应过程被间断。
2.2 8086/8088的引脚信号及工作模式 • (4)QS1,QS0指令队列状态信号 • 指示CPU内的指令队列的当前状态,以使外部(主要是协处理器)对CPU内指令队列的动作进行跟踪。 表2-6 QS1,QS0的组合和对应的含义
2.3 8086/8088CPU工作模式及其系统结构 2.3.1 最小工作模式及其系统结构 只有8086/8088一个微处理器 最小模式系统特点 所有总线控制信号直接由CPU提供 将33号引脚接+5V 需要地址锁存器进行地址信息分流 需要使用总线缓冲器将数据信息分流到数据总线
时钟发生器/ 驱动器 8位双向数据缓冲器,分流数据。 2.3 8086/8088CPU工作模式及其系统结构 8位通用数据锁存器,分流20位地址信息。
CPU是一个复杂的时序数字逻辑 ,因此,其所有的操作都必须在统一的时钟下完成。 • 由片外输入CLK引脚的时钟脉冲信号,是系统定时的基本脉冲,其频率称为主频,其周期称为时钟周期,有时时钟周期又称为T状态. • 8284A就是INTEL公司设计的专门与8086CPU配套的时钟信号发生器芯片。
8284A(时钟产生/驱动)芯片为8086提供主频为5MHz的时钟信号.可采用石英晶体或某一TTL脉冲发生器作振荡源。 • 根据不同的振荡源,8284A有两种连接方法: • 一种方法是用外接脉冲发生器作振荡源 ; • 另一种方法更为常用,是利用一块晶体作为振荡元件,使用片内的振荡器产生时钟输出,这时,需将晶体振荡器连在8284A的X1和X2两端上,且须将F/C接地。