第2章8086微处理器 本章重点】本章主要讲述8086的硬件结构、外部引脚、 内部寄存器的组织、和总线时序。 【本章难点】引脚功能和总线时序
【本章重点】本章主要讲述8086的硬件结构、外部引脚、 内部寄存器的组织、和总线时序。 【本章难点】引脚功能和总线时序。 第2章 8086微处理器
8218086CPU的结构 2.2.18086的结构特点 微处理器执行一段程序通常是通过重复执行如下步骤来完成。 即 1)从内存储器中取出一条指令,分析指令操作码; (2)读出一个操作数(如果指令需要操作数); (3)执行指令; 4)将结果写入内存储器(如果指令需要)
2.2.1 8086的结构特点 微处理器执行一段程序通常是通过重复执行如下步骤来完成。 即: (1) 从内存储器中取出一条指令,分析指令操作码; (2) 读出一个操作数(如果指令需要操作数); (3) 执行指令; (4) 将结果写入内存储器(如果指令需要)。 §2.1 8086 CPU的结构
地址加法器 通用寄存器 位地址 16位地址 外部总线 运算斋存器 控制电路 指令队列级冲桑 执行部分 2346 标志 执行部件 总线接口部件 图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,目的变址寄存器Dl (3)标志寄存器Fag; (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整字乘法,整字除法,整字O AL 字节乘法,字节除法,字节IO,转移,十进制算 AH 季梟法,字节除法 BX 转移 CX 串操作,循环次数 CL 变量移位或循环控制 DX 整字乘法,整字除法,间接寻址IO SP 堆栈操作 SI 字符串操作 DI 字符串操作
寄存器 执行操作 AX 整字乘法,整字除法,整字I/O AL 字节乘法,字节除法,字节I/O,转移,十进制算 AH 术运算 字节乘法,字节除法 BX 转移 CX 串操作,循环次数 CL 变量移位或循环控制 DX 整字乘法,整字除法,间接寻址I/O SP 堆栈操作 SI 字符串操作 DI 字符串操作 表2-1 寄存器的主要用途
(3)加法器是算术逻辑部件主要部件,绝大部分指令 的执行都是由加法器完成的。 4)标志寄存器共有16位,其中,7位未用,所用的 各位含义如下: 15 0 O D TS Z A P C 状态标志有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个时钟周期组成 一个总线同期 个总线同期 T12T3WT4T1T111T213T4 ①在T1状态,CPU往多路复用总线上发出地址信息,以指 出要寻址的存储单元及外设端口的地址 ②在卫状态,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)用来输出本总线周期状态信息。这些状态信息用 来表示中断允许状态、当前正在使用的段寄存器名等