第03章8086微处理器.ppt
《第03章8086微处理器.ppt》由会员分享,可在线阅读,更多相关《第03章8086微处理器.ppt(126页珍藏版)》请在三一办公上搜索。
1、第 3 章,8086微处理器,教学重点,8086/8088的编程结构引脚信号工作模式8086/8088的总线操作与时序8086/8088的I/O组织,教学要求,理解微处理器的内、外部逻辑结构了解8086/8088的功能结构理解各个寄存器组织方式和I/O组织方式理解存储器的地址空间与寻址的概念了解数据的存储格式,理解存储器分段的概念熟练掌握物理地址的形成方法掌握信息的分段存储与段寄存器之间的关系理解8086/8088的引脚定义和两种系统组织方式(最大模式和最小模式)理解时序的概念了解8086/8088的典型总线时序及其分析方法,第3章 8086微处理器,3.1 8086微处理器的编程结构3.2
2、8086的外部结构3.3 8086CPU的基本操作时序,3.1 8086微处理器的编程结构,8086的功能部件 8086的总线周期的概念,8086的功能部件,从功能上8086分为两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。总线接口部件的功能是负责与存储器、I/O端口传送数据。执行部件的功能就是负责指令的执行。,8086/8088 CPU编程结构图,AH AL,BH BL,CH CL,DH DL,SP,BP,DI,SI,通 用 寄 存 器,AX,BX,CX,DX,ALU数据总线(16位),运算寄存器,ALU,标志寄存器,EU
3、 控制电路,执行部件EU,1 2 3 4 5 6,数据总线8088:8位8086:16位,输入/输出 控制电路,地址总线20位,指令队列缓冲器,8088,8086,Q总线(8位),指令指针,段寄存器,外部总线,总线接口部件BIU,地址加法器,总线接口部件BIU,总线接口部件由下列各部分组成:四个段地址寄存器,即 CS16位的代码段寄存器,DS16位的数据段寄存器,ES16位的扩展段寄存器,SS一16位的堆栈段寄存器;16位的指令指针寄存器IP;20位的地址加法器;6字节的指令队列;输入输出控制电路。,段寄存器与存储器分段,实模式下,Pentium微处理器的1MB内存空间被分成段,每段具有64K
4、B的连续存储区。段是可独立寻址的内存单位,每个段的起始地址由一个基址设定,它是一个段最低的地址。实模式下最多可以同时有6个段处于活动状态:一个代码段、一个堆栈段、4个数据段。内存中哪些段处于活动状态由6个段寄存器确定,每个段寄存器保存16位基址。CS代码段(Code Segment)DS数据段(Data Segment)SS堆栈段(Stack Segment)ES附加段(Extra Segment)FS 数据段FGS 数据段G,指令指针寄存器,用来确定代码段中当前将要被执行的指令的偏移地址(相对于代码段基址)IP由控制程序分支的指令、中断以及异常等隐含控制,用户程序不能直接控制 IP。,IP(
5、Instruction Pointer),执行部件EU,执行部件由下列几个部分组成:四个通用寄存器,即AX、BX、CX、DX;四个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI;标志寄存器PSW;算术逻辑单元ALU。,通用寄存器,包括4个通用数据寄存器,2个变址寄存器和2个指针寄存器,通用数据寄存器,累加寄存器(Accumulator)基址寄存器(Base)计数寄存器(Counter)数据寄存器(Data),可以存放32位双字数据、低16位可以存放字数据、低16位的两个8位可以存放字节数据,在进行算术运算和逻辑运算时,通用数据寄存器任何一个都可以作为
6、源操作数或目的操作数。,用来暂存计算过程中所用到的操作数,结果或其它信息。,为与8086微处理器兼容,通用寄存器的低16位部分与8086有相同的名称,累加器是算术运算的主要寄存器,例如:ADD AX,BX所有I/O指令都使用这一寄存器与外部设备交换数据。例如:IN AL,20HOUT 30H,AX,通用数据寄存器,基址寄存器在计算内存储器地址时,经常用来存放基址。例如:MOV AX,BX+03H,由于实模式下存放地址值的长度只能是16位,因此当BX作为基址指针使用时,只能使用BX,通用数据寄存器,通用数据寄存器,计数寄存器 在循环LOOP指令和串处理指令中用作隐含计数器。例如:MOV CX,2
7、00HAGAIN:LOOP AGAIN;(CX)-1(CX),结果0转AGAIN,通用数据寄存器,数据寄存器一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;例如:MUL BX;(AX)(BX)(DX)(AX)对某些I/O操作DX可用来存放I/O的端口地址(端口地址 256)。例如:IN AL,DX,指针与变址寄存器,0,15,16,31,7,8,SP,BP,SI,DI,ESP,EBP,ESI,EDI,用于存放偏移量地址。,实模式下存放地址值的长度只能是16位,因此指针与变址寄存器只能使用SP、BP、SI、DI32位寄存器ESP、EBP、ESI、
8、EDI可以作为通用数据寄存器使用,偏移量地址表示某一存储单元相对于段寄存器所指定的基址的位移量。,SP堆栈指针(stack pointer)用来指示栈顶的偏移地址BP基址指针(base pointer)存放堆栈段中一个数据区基地址的偏移地址,SP和BP为指针寄存器,用于访问堆栈段中的数据,0,15,16,31,7,8,SP,BP,SI,DI,ESP,EBP,ESI,EDI,指针与变址寄存器,SI和DI为变址寄存器,用于访问数据段和附加段中的数据SI源变址(Source Index)存放源操作数的偏移地址DI目的变址(Destination Index)存放目的操作数的偏移地址,指针与变址寄存器
9、,常用来确定数据段中某一存储单元的地址 例如:MOV AX,SI,指针与变址寄存器,例:MOV SI,2000HMOV DI,3000HMOV CX,100HCLD.MOVSB.,在串处理指令中,SI、DI作为隐含的源变址和目的变址寄存器分别达到在数据段和附加段中寻址的目的。,SI,DI具有自动增量和自动减量功能,标志寄存器,实模式下标志寄存器有9个标志位:6个状态标志位,3个控制标志位,状态标志位反映算术或逻辑运算后结果的状态,由处理器根据计算结果自动设置CF进位标志(Carry Flag)运算结果最高位产生进位或借位,置CF=1PF奇偶标志(Parity Flag)结果低8位中1的个数为偶
10、数,置PF=1AF辅助进位标志(Auxiliary Carry Flag)低4位产生进位置AF=1,用于十进制数运算调整,FLAGS,0,15,ZF 零标志(Zero Flag)运算结果为0,置ZF=1SF 符号标志(Sign Flag)与运算结果的最高位(符号位)相同OF溢出标志(Overflow Flag)补码运算结果超过了机器表示的范围,置OF=1可以用来判断有符号整数补码运算结果的正确性,FLAGS,标志寄存器,0,15,例如:MOV AL,4FH 0100 1111 ADD AL,31H+0011 0001 1000 0000则对标志影响为:CF=0D7未产生进位;PF=01的个数为
11、奇数;AF=1D3有进位;ZF=0结果非零;SF=1最高位为1;OF=1结果为128,标志寄存器,FLAGS,0,15,控制标志用于控制CPU的操作,由程序设置或清除:DF方向标志(Direction Flag)控制数据串操作指令的步进方向 STD指令将DF置1,使串操作过程中地址自动递减 CLD指令将DF清0,使串操作过程中地址自动递增IF中断允许标志(Interupt Flag)控制可屏蔽中断 STI指令将IF置1,允许CPU接受可屏蔽中断请求 CLI指令将IF清0,禁止CPU接受可屏蔽中断请求TF陷阱标志(Trap Flag)为调试程序而设 将TF置1,CPU处于单步工作方式 将TF清0
12、,CPU正常执行程序,FLAGS,0,15,标志寄存器,BIU和EU的动作管理和协调工作,BIU和EU作为CPU的两大部件,虽然不是同步工作的,但是它们相互配合,并行工作,提高了效率。具体表现为:,每当8086的BIU的6指令队列中有2个字节为空的时候,BIU会自动从内存中取出下面的指令的字节放到指令队列中。,EU在执行指令的时候总是从BIU的指令队列的前部取出将要执行的指令,然后用几个时钟周期去执行。,在执行指令的过程中,如果指令需要访问内存或者端口,则EU请求BIU进入总线周期,从而完成访问。如果请求时,BIU正好空闲,那么BIU会马上响应请求;如果此时BIU正忙着取指令,那么访问内存和端
13、口的请求必须要BIU完成指令的读取后方可被响应。,当指令队列已满,并且EU没有对BIU的内存和端口访问请求时,BIU进入空闲状态,这其实是BIU对EU的等待。在执行各种控制转移指令时,下面要执行的指令不是程序中紧接着的指令了,但是指令队列中已经将那些指令装入了指令队列,而这些指令是没有用的。此时,BIU会将指令队列清空,接着往指令队列中装入转向目标地址处的指令。,内存地址空间和数据组织,实模式下Pentium微处理器只有20条地址线有效,因此实模式下内存空间为220=1MB,物理地址由00000-FFFFF(H)编码,实模式内存地址空间组织,存储单元地址按照字节编址,.,1100 1111B,
14、.,物理地址,内存,00000H,00001H,00002H,0ABCDH,0FFFFFH,内存地址空间和数据组织,若存放的信息是字节,则按顺序存放若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址若存放的信息是双字,则将双字的低位字存放在低地址,高位字存放在高地址,低字节低地址,高字节高地址,例.双字A00055FF如何存储在地址为02102的存储单元中例.字23AB如何存储在地址为02102的存储单元中,对准双字:对应地址是4的倍数对准字:对应地址是2的倍数,内存地址空间和数据组织,存放数据的起始地址可以任意,但是字数据存放在偶数地址单元,双字数据存放在能被4整除的地址单
15、元,可以改善程序性能。处理器对内存的访问只需一个总线周期,内存地址空间和数据组织,例如:MOV AX,1000HMOV DS,AXMOV AX,0010H,CPU,高位字节,低地址,高地址,10011H,10010H,内存,AX,低位字节,数据总线,内存地址空间和数据组织,例如:MOV AX,1000HMOV DS,AXMOV AX,0011H,CPU,高位字节,低地址,高地址,10012H,10011H,内存,AX,低位字节,数据总线,空闲,CPU,高位字节,低地址,高地址,10012H,10011H,AX,低位字节,数据总线,空闲,实模式下,1MB内存空间分通用和专用两个区域00000-0
16、03FF 专用,存放中断向量表00400-FFFFF通用,中断向量表表内指针用来指出相应的中断服务程序的起始点,表内每个指针占2个字,占据较高地址的是段基址,占据较低地址的是偏移量,?中断向量表可以包含 个中断指针,内存地址空间和数据组织,逻辑地址和物理地址,实模式下逻辑地址由段基址和偏移量两部分组成。编写程序时只能使用逻辑地址。段基址是段寄存器给出的段起始地址;偏移量为存储单元在段内相对于段起始地址的偏移距离,也称为偏移地址段基址和偏移量都为16位逻辑地址的表示形式段基址:偏移量段基址来自段寄存器。偏移量通常来自指令指针寄存器、基址寄存器、指针寄存器和变址寄存器,也可以由其中几个寄存器的内容
17、组合而成。,逻辑地址和物理地址,访问存储器的操作数类型不同,使用的段寄存器和段内偏移量的来源也不同。实模式下,缺省的段寄存器和偏移地址的结合方式:CSIP指令SSSP堆栈操作SSBP存取堆栈内的数据DSBX、SI、DI或指令中存取数据段的的局给出的8/16位地址部数据ESDI串操作的目标操作数,段寄存器 偏移地址 操作类型,物理地址是CPU与存储器进行数据交换时实际寻址所使用的地址。实模式下物理地址为20位。每个内存单元的物理地址都是唯一的,同一个物理地址可以由不同的逻辑地址来构成。,逻辑地址和物理地址,例.假设段寄存器内容为002A,偏移量为0023,求构成的物理地址,程序员在编制程序时要把
18、存储器划分成段,实模式下段内地址16位,所以每个段的大小最大可达64KB。实际编程时,可以根据需要来确定段大小,可以是64K范围内的任意字节数。段不能起始于任意地址,而必须从分段(paragraph)的首地址开始。分段:从0地址开始每16字节为一个分段。0000H,0001H,0002H,000EH,000FH第0分段 0010H,0011H,0012H,001EH,001FH 0020H,0021H,0022H,002EH,002FH FFF0H,FFF1H,FFF2H,FFFEH,FFFFH 第64K-1个分段其中第一列就是每个分段的首地址。,逻辑地址和物理地址,逻辑地址和物理地址,JMP
19、 F000:0100 MOV AX,D000MOV DS,AXMOV AX,A320MOV SS,AXMOV AX,7200MOV ES,AXMOV AX,3000MOV FS,AXMOV AX,1000MOV GS,AX,CSDSSSESFSGS,F000D000A320720030001000,64K代码段,64K数据段,64K堆栈段,64K数据段E,64K数据段F,64K数据段G,FFFFFF0000D0000A320072000300001000000000,F000:0100,逻辑地址和物理地址,MOV AX,FFFFMOV DS,AXMOV AL,0010,物理地址:FFFF0 0
20、010 100000,+,MOV AX,FFFFMOV DS,AXMOV AL,FFFF,物理地址:FFFF0 FFFF 10FFEF,+,物理地址1000010FFEF超出了实模式1MB寻址空间范围,逻辑地址和物理地址,通过开放地址线A20,使Pentium微处理器访问1BM以上的65520字节的内存空间HMA(High Memory Area,高端内存区)Pentium微处理器有一个输入引脚A20M#,用于确定是否开放A20地址线,PC兼容机一般通过92H端口的第1位控制控制A20M#。,IN AL,92HOR AL,00000010BOUT 92H,AL开放A20地址线,IN AL,92
21、HAND AL,11111101BOUT 92H,AL屏蔽A20地址线,逻辑地址和物理地址,当Pentium微处理器的A20M#引脚为低电平时,将在1MB处发生地址环绕8086微处理器对于1MB以上的物理内存只能进行地址环绕操作,堆栈操作,堆栈是按照“先进后出”原则组织的存储区域,实模式下堆栈的大小最大为64KB堆栈由堆栈段寄存器SS和堆栈指针寄存器SP来寻址,SS给出堆栈段的段基址,SP指向当前栈顶段基址到栈顶的偏移量栈底为堆栈空间的高地址单元,栈顶为低地址单元。实模式下,堆栈操作以字为单位。数据进栈,栈顶向低地址方向浮动,高位字节存入高地址单元,低位字节存入低地址单元数据出栈,栈顶向高地址
22、方向浮动,低位字节弹到目的操作数的低位,高位字节弹到目的操作数的高低位,堆栈操作,2.4 实模式输入/输出地址空间,Pentium微处理器的I/O地址空间与内存地址空间是相互独立的,I/O地址空间安排I/O端口。I/O地址空间的地址范围0000FFFF共64KB,I/O地址仅为16位,习题,1.实模式下Pentium微处理器的堆栈操作是怎样进行的,试举例说明2.字ABCD(H)存放在地址为0A002(H)的存储单元中,如何存放,是对准字还是非对准字?3.双字F0237614(H)存放在地址为0A002(H)的存储单元中,如何存放,是对准双字还是非对双准字?4.在实模式下,物理地址是如何形成的?
23、计算下列逻辑地址对应的物理地址:1000:12340100:ABCDF000:FFF00020:AA00,8086的总线周期的概念,8086 CPU通过总线对存储器或I/O端口进行一次访问所需要的时间称为一个总线周期,为了取得指令或传送数据,就需要CPU的总线接口部件执行一个总线周期。一个典型的总线周期序列为:,3.2 8086的外部结构,最小模式和最大模式的概念 8086的引脚信号和功能 8086的最小模式 8086的最大模式,最小模式和最大模式的概念,最小模式,就是在系统中只有8086一个微处理器。在这种系统中,所有的总线控制信号都直接由8086产生,因此,系统中的总统控制电路被减到最少。
24、这些特征就是最小模式名称的由来。最大模式是相对最小模式而言的。最大模式用在中等规模的或者大型的8086系统中。在最大模式系统中,总是包含有两个或多个微处理器,其中一个主处理器就是8086,其他的处理器称为协处理器,它们是协助主处理器工作的。,8086CPU的两种工作模式,8086可工作于两种模式:最小模式和最大模式最小模式为单处理机模式,控制信号较少,一般可不必接总线控制器。最大模式为多处理机模式,控制信号较多,须通过总线控制器与总线相连。,8086和8088引脚对比图,二、8086最小模式下的主要引脚,数据和地址引脚读写控制引脚中断请求和响应引脚总线请求和响应引脚其它引脚,8086的引脚特性
25、,VCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS1)INTA(QS0)TESTREADYRESET,8086有40个引脚,其中第33(最小/最大模式)脚很关键,它是一条输入线,可以加高电平,也可以加低电平,由该线所加电平的高或低电平决定24-31引脚的功能(24-31引脚的功能取决于8086工作在最小模式还是最大模式)其他引脚不受第33引脚的影响,我们把这部分引脚称为一般引脚。,最小模式1-40引脚的功能定义,MN/MXVCC、GN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 8086 微处理器

链接地址:https://www.31ppt.com/p-5302668.html