第章8086微处理器 本章重点】本章主要讲述8086的硬件结构、外部引脚 内部寄存器的组织、和总线时序 【本章难点】引脚功能和总线时序
【本章重点】本章主要讲述8086的硬件结构、外部引脚、 内部寄存器的组织、和总线时序。 【本章难点】引脚功能和总线时序。 第2章 8086微处理器
8218086CPU的结构 2218086的结构特点 微处理器执行一段程序通常是通过重复执行如下步骤来完成 (1)从内存储器中取出一条指令,分析指令操作码; (2)读出一个操作数(如果指令需要操作数); (3)执行指令; 将结果写入内存储器(如果指令需要)
2.2.1 8086的结构特点 微处理器执行一段程序通常是通过重复执行如下步骤来完成。 即: (1) 从内存储器中取出一条指令,分析指令操作码; (2) 读出一个操作数(如果指令需要操作数); (3) 执行指令; (4) 将结果写入内存储器(如果指令需要)。 §2.1 8086 CPU的结构
20位地址 地址加法器 通用寄存器 6位地址 6位地 入轴出 外部总编 控制电路 运算寄存器 指令队列级冲叠 执行部件 总换口部件 图2-18086的结构框图
AH AL BH BL CH CL DH DL SP BP DI SI 通用寄存器 CS DS SS ES IP 内部暂存器 ∑ ALU 运算寄存器 执行部分 控制电路 1 2 3 4 5 6 输入/输出 控制电路 标志 地址加法器 20位地址 16位地址 外部总线 指令队列缓冲器 总线接口部件 (BIU) 执行部件 (EU) 16位地址 AX BX CX DX 8位 图2-1 8086的结构框图
1.总线接口部件 (1)4个段地址寄存器 CS--16位的代码段寄存器 DS-16位的数据段寄存器 ES--16位的扩展段寄存器 SS--16位的堆栈段寄存器 (2)16位的指令指针奇存器IP (3)20位的地址加法器 (4)6字节的指令队列
1.总线接口部件 (1)4个段地址寄存器 CS--16位的代码段寄存器 DS--16位的数据段寄存器 ES--16位的扩展段寄存器 SS--16位的堆栈段寄存器 (2)16位的指令指针寄存器IP (3)20位的地址加法器 (4)6字节的指令队列
2.执行部件 (1)4个通用奇存器,即AX、BX、CX,DX; (2)4个专用寄存器,即基数指针寄存器BP,堆栈指 针寄存器SP,源变址寄存器SI,目的变址寄存器DI; (3)标志寄存器Flag; (4)算术逻辑单元ALU; 8086的执行部件(EU)有如下特点: (1)4个通用寄存器既可以作为16位寄存器使用,也可 以作为8位寄存器使用 (2)AX寄存器也常称为累加器,8086指令系统中有许 多指令都是通过累加器的动作来执行的
2.执行部件 (1)4个通用寄存器,即AX、BX、CX,DX; (2)4个专用寄存器,即基数指针寄存器BP,堆栈指 针寄存器SP,源变址寄存器SI,目的变址寄存器DI; (3)标志寄存器Flag; (4)算术逻辑单元ALU; 8086的执行部件(EU)有如下特点: (1)4个通用寄存器既可以作为16位寄存器使用,也可 以作为8位寄存器使用。 (2)AX寄存器也常称为累加器,8086指令系统中有许 多指令都是通过累加器的动作来执行的
表2-1寄存器的主要用途 寄存器 执行操作 AX 整字乘法,整字除法,整字IO AL 字节乘法,字节除法,字节IO,转移,十进制算 AH 李築法,字节除法 BX 转移 串操作,循环次数 CL 变量移位或循环控制 DX 整字乘法,整字除法,间接寻址ⅠO SP 堆栈操作 字符串操作 DI 字符串操作
寄存器 执行操作 AX 整字乘法,整字除法,整字I/O AL 字节乘法,字节除法,字节I/O,转移,十进制算 AH 术运算 字节乘法,字节除法 BX 转移 CX 串操作,循环次数 CL 变量移位或循环控制 DX 整字乘法,整字除法,间接寻址I/O SP 堆栈操作 SI 字符串操作 DI 字符串操作 表2-1 寄存器的主要用途
(3)加法器是算术逻辑部件主要部件,绝大部分指令 的执行都是由加法器完成的。 (4)标志寄存器共有16位,其中,7位未用,所用的 各位含义如下: 15 ° DITszaP 状态标志有6个,即SF、ZF,PF、CF,AF和OF。 ★符号标志SF( Sign Flag):它和运算结果的最高位相 同。若运算结果最高位为1,则SF=1,否则SF=0
(3)加法器是算术逻辑部件主要部件,绝大部分指令 的执行都是由加法器完成的。 (4)标志寄存器共有16位,其中,7位未用,所用的 各位含义如下: O D I T S Z A P C 0 15 状态标志有6个,即SF、ZF,PF、CF,AF和OF。 符号标志SF(Sign Flag):它和运算结果的最高位相 同。若运算结果最高位为1,则SF=1,否则SF=0
★零标志ZF( Zero Flag):如果当前的运算结果为 零,则ZF=1,否则ZF=0。 ★奇偶标志PF( Parity Flag):如果运算结果的低8位 中所含的1的个数为偶数,则PF=1,否则PF=0 ★进位标志CF( Carry flag):当执行一个加法运算 使最高位产生进位时,或者执行一个减法运算引 起最高位产生借位时,则CF=1,否则CF=0。 ★辅助进位标志AF( Auxiliary Carry Flag):当 加法运算时,如果第三位往第四位有进位,或者 当减法运算时,如果第三位从第四位有借位,则 AF=1,否则AF=0。 ★溢出标志OF(0 verflow Flag):当运算过程中产生 溢出时,会使OF=1,否则OF=0
零标志ZF(Zero Flag):如果当前的运算结果为 零,则ZF=1,否则ZF=0。 奇偶标志PF(Parity Flag):如果运算结果的低8位 中所含的1的个数为偶数,则PF=1,否则PF=0。 进位标志CF(Carry Flag):当执行一个加法运算 使最高位产生进位时,或者执行一个减法运算引 起最高位产生借位时,则CF=1,否则CF=0。 辅助进位标志AF(Auxiliary Carry Flag):当 加法运算时,如果第三位往第四位有进位,或者 当减法运算时,如果第三位从第四位有借位,则 AF=1,否则AF=0。 溢出标志OF(Overflow Flag):当运算过程中产生 溢出时,会使OF=1,否则OF=0
控制标志有3个,即DF、IF、TF。 ★方向标志DF( Direction Flag):这是控制串操作指令的 标志。如果DF=0,则串操作过程中地址会不断增值, 反之,如果DF=1,则串操作过程中地址会不断减值。 ★中断标志IF( luterrupt Enable Flay):这是控制可屏蔽 中断的标志。如IF=0,则CPU不能对可屏蔽中断请求作 出响应,如果IF=1,则CPU可以接受可屏蔽中断请求 ★跟踪标志TF( Trap Flay):如果TF=1,则CPU按跟踪方式 执行指令
控制标志有3个,即DF、IF、TF。 方向标志DF(Direction Flag):这是控制串操作指令的 标志。如果DF=0,则串操作过程中地址会不断增值, 反之,如果DF=1,则串操作过程中地址会不断减值。 中断标志IF(1uterrupt Enable Flay):这是控制可屏蔽 中断的标志。如IF=0,则CPU不能对可屏蔽中断请求作 出响应,如果IF=1,则CPU可以接受可屏蔽中断请求。 跟踪标志TF(Trap Flay):如果TF=1,则CPU按跟踪方式 执行指令
2228086的总线工作周期 在8086中,一个最基本的总线周期由4个时钟周期组成 ↓一个总线同期 个总线同期 TI T2 T3 TW T4 TI TI T1 T2 T3 TV ①在T1状态,CPU往多路复用总线上发出地址信息,以指 出要寻址的存储单元及外设端口的地址。 ②在T2状态,CPU从总线上撤消地址,而使总线的低16位 浮置成高阻状态,为传输数据作准备。总线的最高4位 (A19~A16)用来输出本总线周期状态信息。这些状态信息用 来表示中断允许状态、当前正在使用的段寄存器名等
2.2.2 8086的总线工作周期 在8086中,一个最基本的总线周期由4个时钟周期组成 一个总线同期 T1 T2 T3 TW T4 一个总线同期 T1 T1 T1 T2 T3 TW T4 ①在T1状态,CPU往多路复用总线上发出地址信息,以指 出要寻址的存储单元及外设端口的地址。 ②在T2状态,CPU从总线上撤消地址,而使总线的低16位 浮置成高阻状态,为传输数据作准备。总线的最高4位 (A19~A16)用来输出本总线周期状态信息。这些状态信息用 来表示中断允许状态、当前正在使用的段寄存器名等