1 / 57

2.2 8086/8088 微处理器

2.2 8086/8088 微处理器. 2.2.1 8086 的编程结构 2.2.2 8086 的工作模式和引脚功能 2.2.3 8086 的系统组成 2.2.4 8086 的总线时序. 返回本章首页. 2 、 8086/8088 微处理器的结构 8086 : Intel 系列的 16 位微处理器, 16 条数据线、 20 条地址线,可寻址地址范围 2 20 =1MB , 8086 工作时,只要一个 5V 电源和一个时钟,时钟频率为 5MHz 。

tariq
Download Presentation

2.2 8086/8088 微处理器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2.2 8086/8088微处理器 • 2.2.1 8086的编程结构 • 2.2.2 8086的工作模式和引脚功能 • 2.2.3 8086的系统组成 • 2.2.4 8086的总线时序 返回本章首页

  2. 2、8086/8088微处理器的结构 8086:Intel系列的16位微处理器,16条数据线、20条地址线,可寻址地址范围220=1MB,8086工作时,只要一个 5V 电源和一个时钟,时钟频率为5MHz。 8088:内部与8086兼容,也是一个16位微处理器,只是外部数据总线为8位,所以称为准16位微处理器。它具有包括乘法和除法的16位运算指令,所以能处理16位数据,还能处理8位数据。8088有20根地址线,所以可寻址的地址空间达220即1M字节。

  3. 图2-1 8086的编程结构图

  4. 1.总线接口单元 (BIU) • 总线接口部件由下列各部分组成: • (1)4个段地址寄存器; • CS——16位的代码段寄存器; • DS——16位的数据段寄存器; • ES——16位的扩展段寄存器; • SS——16位的堆栈段寄存器; • (2)16位的指令指针寄存器IP; • (3)20位的地址加法器; • (4)6字节的指令队列缓冲器。

  5. 2.执行单元EU • 执行部件由下列几个部分组成: • (1)4个通用寄存器,即AX、BX、CX、DX; • (2)4个专用寄存器:BP, SP, SI, DI • (3)标志寄存器FR; • (4)算术逻辑单元ALU。

  6. 功能:从BIU的指令队列中取出指令代码,经指令译码器译码后执行指令所规定的全部功能。执行指令所得结果或执行指令所需的数据,都由EU向BIU发出命令,对存储器或I/O接口进行读/写操作。 功能:根据执行部件EU的请求,负责完成CPU与存储器或I/O设备之间的数据传送。

  7. 3、BIU和EU的管理 • (1) BIU和EU可以并行工作,提高CPU效率。 BIU监视着指令队列。当指令队列中有2个空字 节时,就自动把指令取到队列中。 • (2) EU执行指令时,从指令队列头部取指令,然后 • 执行。如需访问存储器,则EU向BIU发出请求, • 由BIU访问存储器。 • (3) 在执行转移、调用、返回指令时,需改变队列 • 中的指令,要等新指令装入队列中后,EU才继 • 续执行指令。 • -------“流水线”结构

  8. 8086CPU中可供编程使用的有14个16位寄存器,按其用 8086CPU中可供编程使用的有14个16位寄存器,按其用 • 途可分为3类:通用寄存器、段寄存器、指针和标志寄存器, • 如图所示: AH AL 累加器 BH BL 基址寄存器 数据寄存器 CH CL 计数寄存器 DH DL 数据寄存器 通用寄存器 SP 堆栈指针寄存器 BP 地址指针和 基址指针寄存器 变址寄存器 SI 源变址寄存器 DI 目的变址寄存器 IP 指令指针寄存器 控制寄存器 FR 标志寄存器 CS 代码段寄存器 DS 数据段寄存器 段寄存器 SS 堆栈段寄存器 ES 附加段寄存器 8086CPU内部寄存器结构

  9. 数据寄存器 AH AL 累加器 BH BL 基址寄存器 数据寄存器 CH CL 计数寄存器 DH DL 数据寄存器 • 数据寄存器包括4个16位的寄存器AX、BX、CX和DX, • 一般用来存放16位数据,故称为数据寄存器。其中的每一个又可根据需要将高8位和低8位分成独立的两个8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8位数据,它们均可独立寻址、独立使用。

  10. SP 堆栈指针寄存器 BP 地址指针和 基址指针寄存器 变址寄存器 SI 源变址寄存器 DI 目的变址寄存器 • 指针和变址寄存器包括指针寄存器SP、BP和变址寄存器SI、DI,都是16位寄存器,一般用来存放地址的偏移量。

  11. CS 代码段寄存器 DS 数据段寄存器 段寄存器 SS 堆栈段寄存器 ES 附加段寄存器 • 8086CPU共有4个16位的段寄存器,用来存放每一个逻辑段的段起始地址。

  12. IP 指令指针寄存器 控制寄存器 FR 标志寄存器 • 指令指针寄存器IP :是一个16位的寄存器,存放EU要执行的下一条指令的偏移地址,用以控制程序中指令的执行顺序,实现对代码段指令的跟踪 。 • 标志寄存器F R:是一个16位的寄存器,共9个标志,其中6个用作状态标志,3个用作控制标志。

  13. (6)、标志寄存器 16位寄存器,其中有7位未用。 1-低8位有偶数个1 0-低8位有奇数个1 D15 D0 OF DF IF TF SF ZF AF PF CF 方向标志 单步中断 符号标志 零标志 半进借位标志 奇偶标志 进借位标志 溢出标志 中断允许 1-结果为0 0-结果不为0 1-有进、借位 0-无进、借位 1-低4位向高4位有进、借位 0-低4位向高4位无进、借位

  14. 寄存器的隐含用法 • 但在某些指令中规定了某些通用寄存器的专门用法, 这样可以缩短指令代码长度;或使这些寄存器的使用具有隐含的性质, 以简化指令的书写形式(即在指令中不必写出使用的寄存器名称)。 通用寄存器的隐含用法如下表所示。

  15. 2.2.2 8086的工作模式和引脚功能 • 1.最小工作模式 • 2.最大工作模式 • 3.8086CPU的引脚信号

  16. 图2-3 8086CPU最小模式下的典型配置

  17. 1.最小工作模式 • 由图可知,在8086的最小模式中,硬件连接上有如下几个特点: • (1)MN/ 引脚接+5V,决定了8086工作在最小模式。 • (2)有一片8234A,作为时钟发生器。 • (3)有三片8282或74LS373,用来作为地址锁存器。 • (4)当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,可选用两片8286或74LS245作为总线收发器。

  18. 2.最大工作模式 • 由图2-4可知,最大模式配置和最小模式配置有一个主要的差别: 最大模式下多了8288总线控制器。 图2-4 8086CPU最大工作模式下的典型配置

  19. 3.8086CPU的引脚信号 • 8086CPU采用双列直插式的封装形式,具有40条引脚,见图2-5。它采用分时复用的地址/数据总线,所以有一部分引脚具有双重功能,即在不同时钟周期内,引脚的作用不同。 图2-5 8086的引脚信号(括号中为最大模式下的名称) 返回本节

  20. 1、地址/数据总线 • AD15-AD0:地址/数据复用引脚,双向,三态。 • (8086/8088)AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。 • (8086)AD15-AD0:16位数据总线D15-D0,与存储器和I/O设备交换数据信息。 • (8088)AD7-AD0:8位数据总线D7-D0,与存储器和I/O设备交换数据信息。 • 地址/数据总线复用,分时工作。

  21. 2、A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。2、A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。 • A19/S6-A16/S3:输出访问存储器的20位地址的高4位地址A19-A16。 • A19/S6-A16/S3:输出CPU的工作状态。

  22. S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。 • S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。 • S4、S3:指出当前使用段寄存器的情况。 • S4、S3组合所对应的段寄存器情况 • S4 S3 段寄存器 • 0 0 当前正在使用ES • 0 1 当前正在使用SS • 1 0 当前正在使用CS • 1 1 当前正在使用DS

  23. 3、控制总线 • (1)、/BHE/S7:高8位数据总线允许/状态复用引脚。 • S7:8086中无定义。 • 8088中,在最大模式中,为高电平;在最小模式中,输出SS0信号,此信号与其它信号合作将总线周期的读/写动作。

  24. (2)、/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。(2)、/RD:读信号,三态输出,低电平有效。/RD=0,表示当前CPU正在对存储器或I/O端口进行读操作。 • (3)、/WR:写信号,三态输出,低电平有效。/WR=0,表示当前CPU正在对存储器或I/O端口进行读操作。 • (4)、M//IO:存储器或IO端口访问信号,三态输出。M//IO=1,表示CPU正在访问存储器;M//IO=0,表示CPU正在访问IO端口。 • (5)、READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。

  25. (6)、INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。(6)、INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。 • (7)、/INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请信号INTR。 • (8)、NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。 • (9)、/TEST:测试信号,输入,低电平有效。当CPU执行WAIT指令时,每隔个时钟周期对/TEST进行一次测试,若/TEST=1,继续等待,直到/TEST=0。

  26. (10)、RESET:复位信号,输入,高电平有效。RESET信号至少要保持4个时钟周期。复位时:标志寄存器、IP、DS、SS、ES为0,CS=FFFFH,复位后CPU从FFFF0H处开始 执行。 • (11)、ALE:地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0,分时使用AD15-AD0地址/数据总线。 • (12)、DT//R:数据发送/接收控制信号,三态输出。此信号控制数据总线上的收发器8286的数据传送方向,DT//R=1,发送数据----写操作;DT//R=0,接收数据--读操作。 • (13)、/DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。

  27. (14)、HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(14)、HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。 • (15)、HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。 • (16)、MN//MX:工作模式选择信号,输入。MN//MX=1,表示CPU工作在最小模式系统;MN//MX=0,表示CPU工作在最大模式系统。 • (17)、CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。

  28. 4、电源线和地线 • 8086/8088采用单+5V, • 1、20引脚为地线。

  29. 5、最大模式下的有关引脚 • (1)、QS1、QS2:指令队列状态信号,输出。 • QS1 QS2 含义 • 0 0 无操作 • 0 1 将指令首字节 • 送入指令队列 • 1 0 队列为空 • 1 1 将指令其余字节 • 送指令队列

  30. (2)、S2、S1、S0:总线周期状态信号,三态输出。(2)、S2、S1、S0:总线周期状态信号,三态输出。 • (3)、/RQ//GT1、/RQ//GT0:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。 • (4)、/LOCK:总线封锁信号,三态输出,低电平有效。/LOCK=0,CPU不允许其它控制器占用总线。

  31. 2.2.3 8086的系统组成 • 1.8086的存储体结构 • 2.8086存储器的分段结构 • 3.8086存储器的逻辑地址与物理 • 4.8086存储器20位物理地址的形成 • 5. 堆栈

  32. 2.3.2 基本执行环境(1)存储器地址空间(8086) 220=1MB, 地址由00000-FFFFF(H)编码 若存放的信息是字节,则按顺序存放 若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址 若存放的信息是双字,则将双字的低位字存放在低地址,高位字存放在高地址

  33. 存储器结构图 15 8 7 0 00001 00000 00003 00002 00005 00004 FFFFF FFFFE

  34. 1.8086的存储体结构

  35. BHE和A0的意义

  36. (2)基本程序执行寄存器

  37. 实地址方式存储器组织 • 四个不同的段:代码段存放机器指令;数据段存放数据信息;堆栈段供堆栈使用;附加段通常用来存放附加数据; • 8086有四个16位段寄存器:cs代码段; ds数据段; ss堆栈段; es附加段。 • 地址的标准写法为:“段:偏移量”。注意由于位移可以重叠,所以给出的“段:偏移量”不是唯一的。如下列地址均指向同一内存单元: • 0000:0123 0002:0103 0008:00A3 • 0010:0023 0012:0003

  38. 段可以位于内存中的任何位置,段的首地址必须能被16整除;段可以位于内存中的任何位置,段的首地址必须能被16整除; • 若段寄存器存放的是10H,而偏移量是100H,下列步骤说明实际物理地址计算过程: • 段寄存器: 0000 0000 0001 0000 (10H) • 左偏四位:0000 0000 0001 0000 • 偏移量: 0000 0001 0000 0000 (100H) • 段加偏移量 0000 0000 0010 0000 0000 (200H)

  39. 存储器物理地址的形成 • 逻辑地址是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为16位的二进制数。 • 物理地址也叫实际地址或绝对地址,是CPU访问存储器时实际使用的地址,为20位地址。 物理地址=段基址×16+段内偏移地址。

  40. 【例】各独立段的分配情况示例。 • 设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占64KB的范围,各段之间互不重叠。

  41. 【例】各段相互重叠情况示例。 • 设CS=0200H、DS=0400H、SS=0480H,这样代码段、数据段和堆栈段的物理首地址分别为02000H、04000H和04800H。其中代码段占8KB地址空间,数据段占2KB,堆栈段占256B,SP=0100H。如图所示。

  42. 2.8086存储器的分段结构 • 8086 CPU中有四个段寄存器:CS,DS,SS和ES,这四个段寄存器存放了CPU当前可以寻址的四个段的基值,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。 • 一旦这四个段寄存器的内容被设定,就规定了CPU当前可寻址的段,如图2-7所示。 图2-7 当前可寻址的存储器段(堆栈段和附加段重叠)

  43. 3.8086存储器的逻辑地址与物理 • 8086 CPU中的每个存储元在存储体中的位置都可以使用实际地址和逻辑地址来表示。 • CPU访问存储器时,要形成20位的物理地址,即先找到某段,再找到该段内的偏移量。换句话说,CPU是以物理地址访问存储器的,如图2-8所示。

  44. 4.8086存储器20位物理地址的形成 • 在存储段划分时,段内地址是连续的,段与段之间是相互独立的。 • 每个段的起始地址称段的基址,段基址必须是能被16整除的那些地址,即20位的段基址的低四位应当是0000。 • 由于段起始地址的低四位为0,所以可用20位地址的高16位表示段的基址,存放在段基址寄存器中。段基址寄存器共四个:CS、DS、ES、SS。

  45. 5.堆栈 堆栈由SS和SP寻址 工作原则:“先进后出”,以字进行操作。 压栈(存入数据) 出栈(取出数据)操作时 SP±2

  46. 2.2.4 8086的总线时序 • 1.指令周期、总线周期和时钟周期 • 2. 读周期的时序 • 3.写周期的时序

More Related