《第03章8086微处理器课件.ppt》由会员分享,可在线阅读,更多相关《第03章8086微处理器课件.ppt(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 3 3 章章8086微处理器微处理器教学重点教学重点8086/8088的编程结构引脚信号工作模式8086/8088的总线操作与时序8086/8088的I/O组织教学要求教学要求理解微处理器的内、外部逻辑结构了解8086/8088的功能结构理解各个寄存器组织方式和I/O组织方式理解存储器的地址空间与寻址的概念了解数据的存储格式,理解存储器分段的概念熟练掌握物理地址的形成方法掌握信息的分段存储与段寄存器之间的关系理解8086/8088的引脚定义和两种系统组织方式(最大模式和最小模式)理解时序的概念了解8086/8088的典型总线时序及其分析方法第第3章章 8086微处理器微处理器3.1 80
2、86微处理器的编程结构微处理器的编程结构3.2 8086的外部结构的外部结构3.3 8086CPU的基本操作时序的基本操作时序3.1 8086微处理器的编程结构微处理器的编程结构80868086的功能部件的功能部件 80868086的总线周期的概念的总线周期的概念 80868086的功能部件的功能部件从功能上8086分为两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。总线接口部件的功能是负责与存储器、I/O端口传送数据。执行部件的功能就是负责指令的执行。8086/8088 CPU编程结构图编程结构图AH ALBH BLCH C
3、LDH DLSPBPDISI通通 用用 寄寄 存存 器器AXBXCXDXALU数据总线(数据总线(16位)位)运算寄存器运算寄存器ALU标志寄存器标志寄存器EU 控控制电路制电路执行部件执行部件EUCSDSSSESIP内部暂存器内部暂存器1 2 3 4 5 6数据总线数据总线8088:8位位8086:16位位输入输入/输输出出 控制控制电路电路地址总线地址总线20位位指令队列缓冲器指令队列缓冲器80888086Q总线总线(8位)位)指令指针指令指针段段寄寄存存器器外部外部总线总线总线接口部件总线接口部件BIUBIU地址加法器地址加法器总线接口部件总线接口部件BIU 总线接口部件由下列各部分组成
4、:四个段地址寄存器,即 CS16位的代码段寄存器,DS16位的数据段寄存器,ES16位的扩展段寄存器,SS一16位的堆栈段寄存器;16位的指令指针寄存器IP;20位的地址加法器;6字节的指令队列;输入输出控制电路。段寄存器与存储器分段段寄存器与存储器分段实实模模式式下下,Pentium微微处处理理器器的的1MB内内存存空空间间被被分分成成段段,每每段段具具有有64KB的连续存储区。的连续存储区。段段是是可可独独立立寻寻址址的的内内存存单单位位,每每个个段段的的起起始始地地址址由由一一个个基基址址设设定定,它是一个段最低的地址。它是一个段最低的地址。实实模模式式下下最最多多可可以以同同时时有有6
5、个个段段处处于于活活动动状状态态:一一个个代代码码段段、一一个个堆堆栈栈段段、4个个数数据据段段。内内存存中中哪哪些些段段处处于于活活动动状状态态由由6个个段段寄寄存存器器确定,每个段寄存器保存确定,每个段寄存器保存16位基址。位基址。CS代码段代码段(Code Segment)DS数据段数据段(Data Segment)SS堆栈段堆栈段(Stack Segment)ES附加段附加段(Extra Segment)FS 数据段数据段FGS 数据段数据段G指令指针寄存器指令指针寄存器用来确定代码段中当前用来确定代码段中当前将要被执行的将要被执行的指令的偏移地址(相对指令的偏移地址(相对于代码段基址
6、)于代码段基址)IP由控制程序分支的指令、中断以及异常等隐含控制,用户由控制程序分支的指令、中断以及异常等隐含控制,用户程序不能直接控制程序不能直接控制 IP。IP(Instruction Pointer)执行部件执行部件EU 执行部件由下列几个部分组成:四个通用寄存器,即AX、BX、CX、DX;四个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI;标志寄存器PSW;算术逻辑单元ALU。通用寄存器通用寄存器包括包括4个通用数据寄存器,个通用数据寄存器,2个变址寄存器和个变址寄存器和2个指针寄存器个指针寄存器通用数据寄存器通用数据寄存器累加寄存器累加寄存
7、器 (Accumulator)基址寄存器(基址寄存器(Base)计数寄存器(计数寄存器(Counter)数据寄存器(数据寄存器(Data)可以存放可以存放32位双字数据、低位双字数据、低16位可以存放字数据、低位可以存放字数据、低16位的两个位的两个8位可以存放字节数据位可以存放字节数据在进行算术运算和逻辑运算时,通用数据寄存器任何一个都可以在进行算术运算和逻辑运算时,通用数据寄存器任何一个都可以作为源操作数或目的操作数。作为源操作数或目的操作数。用来暂存计算过程中所用到的操作数,结果或其它信息。用来暂存计算过程中所用到的操作数,结果或其它信息。为与为与8086微处理器兼容,通用寄存器的低微处
8、理器兼容,通用寄存器的低16位部分与位部分与8086有相同的名称有相同的名称累加器累加器是算术运算的主要寄存器,是算术运算的主要寄存器,例如:例如:ADD AX,BX所有所有I/O指令都使用这一寄存器与外部设备交换数据。指令都使用这一寄存器与外部设备交换数据。例如:例如:IN AL,20HOUT 30H,AX通用数据寄存器通用数据寄存器基址寄存器基址寄存器在计算内存储器地址时,经常用来存放基址。在计算内存储器地址时,经常用来存放基址。例如:例如:MOV AX,BX+03H由于实模式下存放地址值的长度只能是由于实模式下存放地址值的长度只能是16位,因此当位,因此当BX作为基址作为基址指针使用时,
9、只能使用指针使用时,只能使用BX通用数据寄存器通用数据寄存器通用数据寄存器通用数据寄存器计数寄存器计数寄存器 在循环在循环LOOP指令和串处理指令中用作隐含计数器。指令和串处理指令中用作隐含计数器。例如:例如:MOV CX,200HAGAIN:LOOP AGAIN ;(CX)-1(CX),结果结果 0转转AGAIN通用数据寄存器通用数据寄存器数据寄存器数据寄存器一般在双字长乘除法运算时,把一般在双字长乘除法运算时,把DX和和AX组合在一起存放一个双字组合在一起存放一个双字长长(32位位)数,数,DX用来存放高用来存放高16位位;例如:例如:MUL BX ;(AX)(BX)(DX)(AX)对某些
10、对某些I/O操作操作DX可用来存放可用来存放I/O的端口地址(端口地址的端口地址(端口地址 256)。)。例如:例如:IN AL,DX指针与变址寄存器指针与变址寄存器015163178SPBPSIDIESPEBPESIEDI用于存放偏移量地址。用于存放偏移量地址。实模式下存放地址值的长度只能是实模式下存放地址值的长度只能是16位,因此指针与变址寄存器位,因此指针与变址寄存器只能使用只能使用SP、BP、SI、DI32位寄存器位寄存器ESP、EBP、ESI、EDI可以作为通用数据寄存器使可以作为通用数据寄存器使用用偏移量地址偏移量地址表示某一存储单元相对于段寄存器所指定的基址表示某一存储单元相对于
11、段寄存器所指定的基址的位移量。的位移量。SP堆栈指针堆栈指针(stack pointer)用来用来指示栈顶的偏移地址指示栈顶的偏移地址BP基址指针基址指针(base pointer)存放堆栈段中一个数据区基地址的偏移地址存放堆栈段中一个数据区基地址的偏移地址SP和和BP为指针寄存器,用为指针寄存器,用于访问堆栈段中的数据于访问堆栈段中的数据015163178SPBPSIDIESPEBPESIEDI指针与变址寄存器指针与变址寄存器SI和和DI为变址寄存器,用于访问数据段和附加段中的数据为变址寄存器,用于访问数据段和附加段中的数据SI源变址(源变址(Source Index)存放源操作数的偏移地址
12、存放源操作数的偏移地址DI目的变址(目的变址(Destination Index)存放目的操作数的偏移地址存放目的操作数的偏移地址指针与变址寄存器指针与变址寄存器常用来确定数据段中某一存储单元的地址常用来确定数据段中某一存储单元的地址 例如:例如:MOV AX,SI指针与变址寄存器指针与变址寄存器例:例:MOV SI,2000HMOV DI,3000HMOV CX,100HCLD.MOVSB.在在串串处处理理指指令令中中,SI、DI作作为为隐隐含含的的源源变变址址和和目目的的变变址址寄寄存存器器分分别别达达到到在在数数据据段段和和附附加段中寻址的目的。加段中寻址的目的。SI,DI具有自动增量和
13、自动减量功能具有自动增量和自动减量功能标志寄存器标志寄存器实模式下标志寄存器有实模式下标志寄存器有9个标志位:个标志位:6个状态标志位,个状态标志位,3个控制标志位个控制标志位状态标志位反映算术或逻辑运算后结果的状态,状态标志位反映算术或逻辑运算后结果的状态,由处理器根据计算结由处理器根据计算结果自动设置果自动设置FCF进位标志进位标志(Carry Flag)运算结果最高位产生进位或借位,置运算结果最高位产生进位或借位,置CF=1FPF奇偶标志奇偶标志(Parity Flag)结果低结果低8位中位中1的个数为偶数,置的个数为偶数,置PF=1FAF辅助进位辅助进位标志标志(Auxiliary C
14、arry Flag)低低4位产生进位置位产生进位置AF=1,用于十进制数运算调整用于十进制数运算调整FLAGS015FZF 零零标志标志(Zero Flag)运算结果为运算结果为0,置,置ZF=1FSF 符号符号标志标志(Sign Flag)与运算结果的最高位与运算结果的最高位(符号位符号位)相同相同FOF溢出溢出标志标志(Overflow Flag)补码运算结果超过了机器表示的范围,置补码运算结果超过了机器表示的范围,置OF=1可以用来判断有符号整数补码运算结果的正确性可以用来判断有符号整数补码运算结果的正确性FLAGS标志寄存器标志寄存器015例如例如:MOV ALMOV AL,4FH 0
15、100 11114FH 0100 1111 ADD ALADD AL,31H 31H +0011 0001+0011 0001 1000 00001000 0000则对标志影响为:则对标志影响为:CF=0D7未产生进位;未产生进位;PF=01的个数为奇数;的个数为奇数;AF=1D3有进位;有进位;ZF=0结果非零;结果非零;SF=1最高位为最高位为1;OF=1结果为结果为128标志寄存器标志寄存器FLAGS015控制标志用于控制控制标志用于控制CPU的操作,由程序设置或清除:的操作,由程序设置或清除:FDF方向方向标志标志(Direction Flag)控制数据串操作指令的步进方向控制数据串操
16、作指令的步进方向 STD指令将指令将DF置置1,使串操作过程中地址自动递减,使串操作过程中地址自动递减 CLD指令将指令将DF清清0,使串操作过程中地址自动递增,使串操作过程中地址自动递增FIF中断允许中断允许标志标志(Interupt Flag)控制可屏蔽中断控制可屏蔽中断 STI指令将指令将IF置置1,允许,允许CPU接受可屏蔽中断请求接受可屏蔽中断请求 CLI指令将指令将IF清清0,禁止,禁止CPU接受可屏蔽中断请求接受可屏蔽中断请求FTF陷阱陷阱标志标志(Trap Flag)为调试程序而设为调试程序而设 将将TF置置1,CPU处于单步工作方式处于单步工作方式 将将TF清清0,CPU正常
17、执行程序正常执行程序FLAGS015标志寄存器标志寄存器BIU和和EU的动作管理和协调工作的动作管理和协调工作 BIU和EU作为CPU的两大部件,虽然不是同步工作的,但是它们相互配合,并行工作,提高了效率。具体表现为:每当每当8086的的BIU的的6指令队列中有指令队列中有2个字节为空的个字节为空的时候,时候,BIU会自动从内存中取出下面的指令的字会自动从内存中取出下面的指令的字节放到指令队列中。节放到指令队列中。EU在执行指令的时候总是从在执行指令的时候总是从BIU的指令队列的前的指令队列的前部取出将要执行的指令,然后用几个时钟周期去部取出将要执行的指令,然后用几个时钟周期去执行。执行。在执
18、行指令的过程中,如果指令需要访问内存或在执行指令的过程中,如果指令需要访问内存或者端口,则者端口,则EU请求请求BIU进入总线周期,从而完成进入总线周期,从而完成访问。如果请求时,访问。如果请求时,BIU正好空闲,那么正好空闲,那么BIU会马会马上响应请求;如果此时上响应请求;如果此时BIU正忙着取指令,那么正忙着取指令,那么访问内存和端口的请求必须要访问内存和端口的请求必须要BIU完成指令的读完成指令的读取后方可被响应。取后方可被响应。当指令队列已满,并且当指令队列已满,并且EU没有对没有对BIU的内存和端的内存和端口访问请求时,口访问请求时,BIU进入空闲状态,这其实是进入空闲状态,这其实
19、是BIU对对EU的等待。的等待。在执行各种控制转移指令时,下面要执行的指令在执行各种控制转移指令时,下面要执行的指令不是程序中紧接着的指令了,但是指令队列中已不是程序中紧接着的指令了,但是指令队列中已经将那些指令装入了指令队列,而这些指令是没经将那些指令装入了指令队列,而这些指令是没有用的。此时,有用的。此时,BIU会将指令队列清空,接着往会将指令队列清空,接着往指令队列中装入转向目标地址处的指令。指令队列中装入转向目标地址处的指令。内存地址空间和数据组织内存地址空间和数据组织实模式下实模式下Pentium微处理器只有微处理器只有20条条地址线有效,因此实模式下内存空间地址线有效,因此实模式下
20、内存空间为为220=1MB,物理地址由,物理地址由00000-FFFFF(H)编码编码实模式内存地址空间组织实模式内存地址空间组织存储单元地址按照字节编址存储单元地址按照字节编址.1100 1111B1100 1111B.物理地址物理地址内存内存00000H00000H00001H00001H00002H00002H0ABCDH0ABCDH0FFFFFH0FFFFFH内存地址空间和数据组织内存地址空间和数据组织若存放的信息是字节,则按顺序存放若存放的信息是字节,则按顺序存放若存放的信息是字,则将字的低位字节存放在低地址,高若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址位字
21、节存放在高地址若存放的信息是双字,则将双字的低位字存放在低地址,若存放的信息是双字,则将双字的低位字存放在低地址,高位字存放在高地址高位字存放在高地址低字节低地址,高字节高地址低字节低地址,高字节高地址例例.双字双字A00055FF如何存储在地址为如何存储在地址为02102的存储单元中的存储单元中例例.字字23AB如何存储在地址为如何存储在地址为02102的存储单元中的存储单元中对准双字:对应地址是对准双字:对应地址是4的倍数的倍数对准字:对应地址是对准字:对应地址是2的倍数的倍数内存地址空间和数据组织内存地址空间和数据组织存放数据的起始地址可以任意,但是字数据存放在偶数地址存放数据的起始地址
22、可以任意,但是字数据存放在偶数地址单元,双字数据存放在能被单元,双字数据存放在能被4整除的地址单元,可以改善程整除的地址单元,可以改善程序性能。序性能。处理器对内存的访问只需一个总线周期处理器对内存的访问只需一个总线周期内存地址空间和数据组织内存地址空间和数据组织例如:例如:MOV AX,1000HMOV DS,AXMOV AX,0010H CPUCPU高位字节高位字节低地址低地址高地址高地址10011H10011H10010H10010H内存内存AX低位字节低位字节数据总线内存地址空间和数据组织内存地址空间和数据组织例如:MOV AX,1000HMOV DS,AXMOV AX,0011H C
23、PUCPU高位字节高位字节低地址低地址高地址高地址10012H10012H10011H10011H内存内存AX低位字节低位字节数据总线空闲CPUCPU高位字节高位字节低地址低地址高地址高地址10012H10012H10011H10011HAX低位字节低位字节数据总线空闲实模式下,实模式下,1MB内存空间分通用和专用两个区域内存空间分通用和专用两个区域00000-003FF 专用,存放中断向量表专用,存放中断向量表00400-FFFFF通用通用中断向量表表内指针用来指出相应的中断服务程序的中断向量表表内指针用来指出相应的中断服务程序的起始点,表内每个指针占起始点,表内每个指针占2个字,占据较高地
24、址的是个字,占据较高地址的是段基址,占据较低地址的是偏移量段基址,占据较低地址的是偏移量?中断向量表可以包含?中断向量表可以包含 个中断指针个中断指针内存地址空间和数据组织内存地址空间和数据组织逻辑地址和物理地址逻辑地址和物理地址实模式下实模式下逻辑地址逻辑地址由段基址和偏移量两部分组成。由段基址和偏移量两部分组成。编写程序时只能使用逻辑地址。编写程序时只能使用逻辑地址。段基址段基址是段寄存器给出的段起始地址;是段寄存器给出的段起始地址;偏移量偏移量为存储单元在段为存储单元在段内相对于段起始地址的偏移距离,也称为内相对于段起始地址的偏移距离,也称为偏移地址偏移地址段基址和偏移量都为段基址和偏移
25、量都为16位位逻辑地址的表示形式逻辑地址的表示形式段基址段基址:偏移量偏移量段基址来自段寄存器。偏移量通常来自指令指针寄存器、基址段基址来自段寄存器。偏移量通常来自指令指针寄存器、基址寄存器、指针寄存器和变址寄存器,也可以由其中几个寄存器寄存器、指针寄存器和变址寄存器,也可以由其中几个寄存器的内容组合而成。的内容组合而成。逻辑地址和物理地址逻辑地址和物理地址访问存储器的操作数类型不同,使用的段寄存器和段内偏移量的来源也不访问存储器的操作数类型不同,使用的段寄存器和段内偏移量的来源也不同。同。实模式下,缺省的段寄存器和偏移地址的结合方式:实模式下,缺省的段寄存器和偏移地址的结合方式:CSIP指令
26、指令SSSP堆栈操作堆栈操作SSBP存取堆栈内的数据存取堆栈内的数据DSBX、SI、DI或指令中或指令中存取数据段的的局存取数据段的的局给出的给出的8/16位地址位地址部数据部数据ESDI串操作的目标操作数串操作的目标操作数段寄存器段寄存器 偏移地址偏移地址 操作类型操作类型物理地址物理地址是是CPU与存储器进行数据与存储器进行数据交换时实际寻址所使用的地址。实交换时实际寻址所使用的地址。实模式下物理地址为模式下物理地址为20位。位。每个内存单元的物理地址都是唯一每个内存单元的物理地址都是唯一的,同一个物理地址可以由不同的的,同一个物理地址可以由不同的逻辑地址来构成。逻辑地址来构成。逻辑地址和
27、物理地址逻辑地址和物理地址例例.假设段寄存器内容为假设段寄存器内容为002A,偏移量为偏移量为0023,求构成的物理,求构成的物理地址地址程序员在编制程序时要把程序员在编制程序时要把存储器划分成段存储器划分成段,实模式下段内地址,实模式下段内地址16位,位,所以所以每个段的大小最大可达每个段的大小最大可达64KB。实际编程时,可以根据需要来确定段大小,实际编程时,可以根据需要来确定段大小,可以是可以是64K范围内的任意字节数。范围内的任意字节数。段不能起始于任意地址,而段不能起始于任意地址,而必须从分段(必须从分段(paragraph)的首地址开始。)的首地址开始。分段:从分段:从0地址开始每
28、地址开始每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 F000:0100 MOV AX,D000MOV DS,AXMOV AX,A320MOV SS,AXMOV AX,7200MOV ES,AXM
29、OV AX,3000MOV FS,AXMOV AX,1000MOV GS,AXCSDSSSESFSGSF000D000A32072003000100064K代码段64K数据段64K堆栈段64K数据段E64K数据段F64K数据段GFFFFFF0000D0000A320072000300001000000000F000:0100逻辑地址和物理地址逻辑地址和物理地址MOV AX,FFFFMOV DS,AXMOV AL,0010物理地址:FFFF0 0010 100000+MOV AX,FFFFMOV DS,AXMOV AL,FFFF物理地址:FFFF0 FFFF 10FFEF+物理地址物理地址100
30、0010FFEF超出了实模式超出了实模式1MB寻址空间范围寻址空间范围逻辑地址和物理地址逻辑地址和物理地址通通过过开开放放地地址址线线A20,使使Pentium微微处处理理器器访访问问1BM以以上上的的65520字字节节的的内内存存空空间间HMA(High Memory Area,高高端端内内存存区区)Pentium微微处处理理器器有有一一个个输输入入引引脚脚A20M#,用用于于确确定定是是否否开开放放A20地地址址线线,PC兼兼容容机机一一般般通通过过92H端端口口的的第第1位位控控制制控控制制A20M#。IN AL,92HOR AL,00000010BOUT 92H,AL开放开放A20地址
31、线地址线IN AL,92HAND AL,11111101BOUT 92H,AL屏蔽屏蔽A20地址线地址线逻辑地址和物理地址逻辑地址和物理地址当当Pentium微处理器的微处理器的A20M#引脚为低电平时,将在引脚为低电平时,将在1MB处发生处发生地址环绕地址环绕8086微处理器对于微处理器对于1MB以上的物理内存只能进行地址环绕操作以上的物理内存只能进行地址环绕操作堆栈操作堆栈操作堆栈是按照堆栈是按照“先进后出先进后出”原则组织的存储区域,实模式下堆栈的大小原则组织的存储区域,实模式下堆栈的大小最大为最大为64KB堆栈由堆栈段寄存器堆栈由堆栈段寄存器SS和堆栈指针寄存器和堆栈指针寄存器SP来寻
32、址,来寻址,SS给出堆栈段给出堆栈段的段基址,的段基址,SP指向当前栈顶指向当前栈顶段基址到栈顶的偏移量段基址到栈顶的偏移量栈底为堆栈空间的高地址单元,栈顶为低地址单元。栈底为堆栈空间的高地址单元,栈顶为低地址单元。实模式下,堆栈操作以字为单位。实模式下,堆栈操作以字为单位。数据进栈,栈顶向低地址方向浮动,高位字节存入高地址单元,数据进栈,栈顶向低地址方向浮动,高位字节存入高地址单元,低位字节存入低地址单元低位字节存入低地址单元数据出栈,栈顶向高地址方向浮动,低位字节弹到目的操作数数据出栈,栈顶向高地址方向浮动,低位字节弹到目的操作数的低位,高位字节弹到目的操作数的高低位的低位,高位字节弹到目
33、的操作数的高低位堆栈操作堆栈操作2.4 实模式输入实模式输入/输出地址空间输出地址空间Pentium微处理器的微处理器的I/O地址空间与内存地址空间地址空间与内存地址空间是相互独立的,是相互独立的,I/O地址空间安排地址空间安排I/O端口。端口。I/O地址空间的地址范围地址空间的地址范围0000FFFF共共64KB,I/O地址仅为地址仅为16位位习题习题1.实模式下实模式下Pentium微处理器的堆栈操作是怎样进行微处理器的堆栈操作是怎样进行的,试举例说明的,试举例说明2.字字ABCD(H)存放在地址为存放在地址为0A002(H)的存储单元中,的存储单元中,如何存放,是对准字还是非对准字?如何
34、存放,是对准字还是非对准字?3.双字双字F0237614(H)存放在地址为存放在地址为0A002(H)的存储单的存储单元中,如何存放,是对准双字还是非对双准字?元中,如何存放,是对准双字还是非对双准字?4.在实模式下,物理地址是如何形成的?计算下列逻在实模式下,物理地址是如何形成的?计算下列逻辑地址对应的物理地址:辑地址对应的物理地址:1000:12340100:ABCDF000:FFF00020:AA00 8086的总线周期的概念的总线周期的概念 8086 CPU通过总线对存储器或I/O端口进行一次访问所需要的时间称为一个总线周期,为了取得指令或传送数据,就需要CPU的总线接口部件执行一个总
35、线周期。一个典型的总线周期序列为:3.2 8086的外部结构的外部结构 最小模式和最大模式的概念最小模式和最大模式的概念 8086的引脚信号和功能的引脚信号和功能 8086的最小模式的最小模式 8086的最大模式的最大模式 最小模式和最大模式的概念最小模式和最大模式的概念最小模式,就是在系统中只有8086一个微处理器。在这种系统中,所有的总线控制信号都直接由8086产生,因此,系统中的总统控制电路被减到最少。这些特征就是最小模式名称的由来。最大模式是相对最小模式而言的。最大模式用在中等规模的或者大型的8086系统中。在最大模式系统中,总是包含有两个或多个微处理器,其中一个主处理器就是8086,
36、其他的处理器称为协处理器,它们是协助主处理器工作的。8086的公用引脚信号的公用引脚信号GND、VCC 地和电源 AD15AD0地址数据复用引脚 A19/S6A16/S3(Address/Status)地址状态复用引脚 /S7高位数据总线允许状态复用引脚 NMI(Non-Maskable Interrupt)非屏蔽中断输入引脚 INTR(Interrupt Request)可屏蔽中断请求信号输入 (Read)读信号输出 CLK(Clock)时钟输入 RESET(Reset)复位信号输入 READY(Ready)“准备好”信号输入 (Test)测试信号输入 MN/最小最大模式控制信号输入 808
37、6的最小模式下的专用引脚的最小模式下的专用引脚 (Interrupt Acknowledge)中断响应信号输出 ALE(Address Lock Enable)地址锁存允许信号 (Data Enable)数据允许信号 DT(Data Transmit/Receive)数据收发信号输出 M/(Memory/Input and Output)存储器输入输出控制信号输出 (Write)写信号输出 HOLD(Hold Request)总线保持请求信号输入 HLDA(Hold Acknowledge)总线保持响应信号输出 8086在最小模式下的典型配置 8086的最大模式的最大模式 QS1、QS0(In
38、struction Queue Status)指令队列状态信号输出 2 1 0(Bus Cycle Status)总线周期状态信号输出 (Lock)总线封锁信号输出 1 0(Request/Grant)总线请求信号输入总线请求允许信号输出 8086在最大模式下的典型配置 3.1 8086CPU的基本操作时序的基本操作时序 系统的复位和启动操作;暂停操作;总线操作;中断操作;最小模式下的总线保持;最大模式下的总线请求/允许。系统的复位和启动操作系统的复位和启动操作 8086的复位和启动操作是通过的复位和启动操作是通过RESET引脚上的触发信号来实现的。引脚上的触发信号来实现的。8086要求复位信
39、号要求复位信号RESET起码维起码维持个时钟周期的高电平,如果是持个时钟周期的高电平,如果是初次加电引起的复位,则要求维持初次加电引起的复位,则要求维持不小于不小于50微秒的高电平。微秒的高电平。当当RESET信号一进入高电平,信号一进入高电平,8086 CPU就会结束现行操作,并就会结束现行操作,并且,只要且,只要RESET信号停留在高电平信号停留在高电平状态,状态,CPU就维持在复位状态。在就维持在复位状态。在复位状态,复位状态,CPU各内部寄存器都被各内部寄存器都被设为初值。设为初值。从右表中看到,在复位的时候,代从右表中看到,在复位的时候,代码段寄存器码段寄存器CS和指令指针寄存器和指
40、令指针寄存器IP分别初始化为分别初始化为FFFFH和和0000H。所。所以在复位之后再重新启动时,便从以在复位之后再重新启动时,便从内存的内存的FFFF0H处开始执行指令。处开始执行指令。因此,一般在因此,一般在FFFF0H处存放一条处存放一条无条件转移指令,转移到系统程序无条件转移指令,转移到系统程序的入口处。这样,系统一旦启动,的入口处。这样,系统一旦启动,便自动进入系统程序。便自动进入系统程序。复位时寄存器初值 标标志寄存器志寄存器清零清零指令指指令指针针(IP IP)0000H0000HCS寄存器寄存器 FFFFH DS寄存器寄存器 0000H SS寄存器寄存器 0000H ES寄存器
41、寄存器 0000H 指令队列指令队列 空空 其他寄存器其他寄存器 0000H 最小模式下的总线读操作时序图8086 最小模式下写周期时序 最大模式下的总线读操作时序 最大模式下的写操作时序 空操作时序空操作时序 只有在只有在CPU和内存及和内存及I/O接口之间传输数据时,接口之间传输数据时,CPU才执才执行总线周期;行总线周期;CPU在不执行总线周期时,总线接口部件就在不执行总线周期时,总线接口部件就不和总线打交道,此时,进入总线空闲周期。不和总线打交道,此时,进入总线空闲周期。总线空闲周期中,状态信息总线空闲周期中,状态信息S6S3和前一个总线周期和前一个总线周期(可能为读周期,也可能是写周
42、期)的一样。如果前面一(可能为读周期,也可能是写周期)的一样。如果前面一个总线周期是写周期,地址数据复用引脚上还会在空闲个总线周期是写周期,地址数据复用引脚上还会在空闲周期中继续驱动前一个总线周期的数据周期中继续驱动前一个总线周期的数据AD15AD0。如。如果前面一个总线周期是读周期,则果前面一个总线周期是读周期,则AD15AD0在空闲周在空闲周期中处于高阻状态。期中处于高阻状态。在空闲周期中,尽管在空闲周期中,尽管CPU对总线进行空操作,但在对总线进行空操作,但在CPU内内部,仍然进行着有效的操作。比如执行某个运算,在内部部,仍然进行着有效的操作。比如执行某个运算,在内部寄存器之间传输数据等
43、,按照寄存器之间传输数据等,按照8086编程结构,可以想到这编程结构,可以想到这些动作都是由执行部件进行的。实际上,总线空操作是总些动作都是由执行部件进行的。实际上,总线空操作是总线接口部件对执行部件的等待。线接口部件对执行部件的等待。练习题8088CPU有6个状态标志,其中的4个是_、_、_、_。8086的存储器空间最大为_,利用_方法可以实现16位寄存器对20位地址的寻址,写出取指令时,20位物理地址的形成情况_。加电启动时,8086的启动程序应从_开始执行。该执行单元一般存放_指令。8086CPU在内部结构上由_和_组成。8086CPU的四个段寄存器分别是_、_、_、_。8086上电复位
44、后,其内部(CS)=_,(IP)=_。8088CPU的标志位ZF=1表示_;标志位IF=1表示_。8088 CPU内部设置有一个_字节的指令队列寄存器。在8086系统中,若某一存贮单元的逻辑地址为7FFF:5020H,则其物理地址为_已知当前CS=2020H,那么该代码段的首地址为_8088 CPU的外部数据线有_条,内部数据线有_条。系统总线由_、_、_三类传输线组成。8086被复位后,寄存器(PSW)=_;(IP)=_;(CS)=_。8086与与8088这两个微处理器在结构上有何相同点,有这两个微处理器在结构上有何相同点,有何主要区别?何主要区别?答:相同点:答:相同点:(1)内部均由)内部均由EU、BIU两大部分组成,结构基本相同。两大部分组成,结构基本相同。(2)用户编程使用的寄存器等功能部件均为)用户编程使用的寄存器等功能部件均为16位。位。(3)内部数据通路为)内部数据通路为16位。位。主要区别主要区别:(1)对外数据总线)对外数据总线 8086:16位位,8088:8位。位。(2)指令队列)指令队列 8086:6级级 ,8088:4级。级。