1、作业:P231-7 1,3,51-8 1,3,51-9 1,3,51-101,2,31-161-7将下列十进制数转换为二进制数1、123、635、10001-8将下列二进制数转换为十进制数1、100100B3、11101B5、00100010B1-9将1-8中的二进制转换成十六进制1-10将下列十六进制数分别转换为二进制和十进制数1、2B9H2、F44H3、912H1-16求下列各式的补码运算1、40+172、85+(-63)3、72-504、28-(-60)第第2 2章章 INTEL 8X86INTEL 8X86微处理器微处理器2.1 8086/8088 CPU的结构的结构2.2 8086/
2、8088 CPU的引脚信号和工作模式的引脚信号和工作模式2.3 8086存储器系统存储器系统2.4 8086/8088 的主要操作功能的主要操作功能2.5 80286微处理器微处理器 2.6 80386/80486微处理器微处理器 2.7 Pentium微处理器微处理器 8086和和8088CPU的内部结构基本相同,但是外的内部结构基本相同,但是外部性能有所区别,部性能有所区别,8086是是16位数据总线,而位数据总线,而8088是是8位数据总线位数据总线 8088用于处理外设数据及检测控制系统用于处理外设数据及检测控制系统2.1.1 执行部件执行部件8086CPU总线接口部件(总线接口部件(
3、Bus Interface Unit,BIU)执行部件(执行部件(Execution Unit,EU)8086与与8088差异差异负责指令的执行,将指令译码并利用内部的负责指令的执行,将指令译码并利用内部的寄存器和寄存器和ALU对数据进行处理对数据进行处理通用寄存器组通用寄存器组专用寄存器组专用寄存器组算术逻辑运算单元(算术逻辑运算单元(ALU)标志寄存器标志寄存器内部控制逻辑内部控制逻辑(1)通用寄存器组功能功能:存放操作数和中间结果存放操作数和中间结果处理处理“字字”指令时,指令时,用用16位寄存器,处位寄存器,处理理“字节字节”指令时,指令时,用用8位寄存器位寄存器AX(AH,AL)累加
4、器)累加器 存放参加运算的操作数和运算结果,有些指令存放参加运算的操作数和运算结果,有些指令约约定定AX(AL)寄存器为累加器,如乘法、除法、输)寄存器为累加器,如乘法、除法、输入入/出指令。所有寄存器均可作累加器出指令。所有寄存器均可作累加器AXBXCXDXAHALBHBLCHCLDHDLBX(BH,BL)基址寄存器)基址寄存器 计算地址时用作基地址寄存器,用于扩展寻址,计算地址时用作基地址寄存器,用于扩展寻址,起变址作用起变址作用CX(CH,CL)计数寄存器)计数寄存器 在某些指令中作隐含的计数器。例如循环操作、在某些指令中作隐含的计数器。例如循环操作、串操作及移位操作等串操作及移位操作等
5、 DX(DH,DL)数据寄存器)数据寄存器 存放操作数和列表数据,存放操作数和列表数据,在某些在某些I/O操作期间,用操作期间,用来保存来保存I/O端口地址,在乘除运算中有专用端口地址,在乘除运算中有专用(2)专用寄存器组SP 堆栈指针寄存器堆栈指针寄存器 访问堆栈段的栈顶单元。栈是一种访问堆栈段的栈顶单元。栈是一种先进后出先进后出的的数据结构,最后入栈的数据为栈顶数据,其单元数据结构,最后入栈的数据为栈顶数据,其单元地址称为栈顶地址地址称为栈顶地址入栈:入栈:“船高水涨船高水涨”出栈:出栈:“水落船低水落船低”2003H2002H2001H2000HSP15HSP16H17H18H16位位S
6、PBPDISIBP 堆栈区基地址寄存器堆栈区基地址寄存器 对堆栈段寄存器对堆栈段寄存器相对寻址相对寻址的基地址寄存器,可访问堆的基地址寄存器,可访问堆栈段的任意单元栈段的任意单元SI 源变址寄存器源变址寄存器 源操作数偏址存于源操作数偏址存于SIDI 目的变址寄存器目的变址寄存器 目的操作数偏址存于目的操作数偏址存于DI寄存器间接寻址、寄存器间接寻址、相对寻址、相对寻址、基址变址寻址、基址变址寻址、相对基址变址、相对基址变址、访问数据段的任意单元访问数据段的任意单元在数据串中专用在数据串中专用(3)算术逻辑单元)算术逻辑单元加法器,完成加法器,完成16位或位或8位算术逻辑运算位算术逻辑运算(4
7、)标志寄存器)标志寄存器 FR15 11 9 8 7 6 5 4 3 2 1 0XXXX OF DF IF TF SF ZF XAFX PFX CF指令指示器标志寄存器进位标志位奇偶标志位半进位标志零标志符号标志溢出标志方向标志中断标志单步标志标志寄存器共有标志寄存器共有16位,其中位,其中7位未用位未用功能功能条件(状态)标志(条件(状态)标志(6位)位)控制标志(控制标志(3位)位)状态标志状态标志CF(carry flag):进进/借位标志借位标志当做当做16位或位或8位加减法运算时,最高位有进位加减法运算时,最高位有进/借位,则借位,则CF=1,否则,否则CF=0。循环指令影响进位标志
8、。循环指令影响进位标志用于寄存器程序运行的状态信号,由硬件根据运算用于寄存器程序运行的状态信号,由硬件根据运算结果结果自动自动设定,用作后续指令判断依据设定,用作后续指令判断依据PF(parity flag)奇偶标志奇偶标志/奇偶校验位奇偶校验位运算结果中若低运算结果中若低8位中的位中的“1”的个数为偶数,的个数为偶数,PF=1,若为,若为奇数奇数PF=0(奇校验方式)(奇校验方式)AF(Auxiliary Carry Flag)辅助进辅助进/借位标志借位标志当作当作16位或位或8位加减法运算时,最低四位向高四位有进借位加减法运算时,最低四位向高四位有进借位位AF=1,否则,否则AF=0,用于
9、,用于BCD码的调整。专用码的调整。专用BCD加减加减法法ZF(Zero Flag)零标志零标志当算术或逻辑与计算指令生成结果为零时,则当算术或逻辑与计算指令生成结果为零时,则ZF=1,否,否则则ZF=0SF(Sign Flag)符号标志符号标志与运算结果的最高位相同,若运算结果为负数,则与运算结果的最高位相同,若运算结果为负数,则SF=1,若为正数若为正数SF=0OF(Over Flag)溢出标志溢出标志 当运算结果超出了机器数所能表示的范围时,称为溢出当运算结果超出了机器数所能表示的范围时,称为溢出OF=1,否则,否则OF=0 字节字节 -128+127 字字 3276832767 通常通
10、常CF用于无符号数运算结果的溢出判断,而用于无符号数运算结果的溢出判断,而OF则用于有符号数的运算结果溢出判断则用于有符号数的运算结果溢出判断在在8086系统中,有一条中断指令系统中,有一条中断指令INTO(中断类型(中断类型4)能)能够在发生溢出时,产生一个内部中断,够在发生溢出时,产生一个内部中断,CPU自动转入溢自动转入溢出中断服务程序中,并对溢出作相应处理,一般在指令出中断服务程序中,并对溢出作相应处理,一般在指令运算后加上该指令运算后加上该指令11001010+01111000101000010CF=1,PF=1,AF=1,ZF=0,SF=0,OF=0看作看作无符号无符号数运算:数运
11、算:202+120=322,显然超出了,显然超出了8位二进制数所能表示的最大位二进制数所能表示的最大无符号数无符号数255,运算结果溢出,运算结果溢出CF=1看作看作有符号有符号数运算:数运算:-54+(+120)=+66,运算结果不溢出,运算结果不溢出OF=0 控制标志控制标志IF(Interrupt Flag)中断标志中断标志 可由指令设置。当可由指令设置。当IF=1时,时,CPU开中断;当开中断;当IF=0时,时,CPU关中断,关中断,IF只能对可屏蔽中断产生影响,而只能对可屏蔽中断产生影响,而对非屏蔽中断和内部中断无影响对非屏蔽中断和内部中断无影响DF(Direction Flag)方
12、向标志方向标志 在在串处理串处理指令中,用于控制串处理的方向。当指令中,用于控制串处理的方向。当DF=0时,时,SI、DI自动增量;当自动增量;当DF=1时,时,SI、DI自动减量;该指令自动减量;该指令由方向控制指令设置或清除由方向控制指令设置或清除TF(Trap Flag)(跟踪)(跟踪)陷阱标志陷阱标志 可由指令设置。当可由指令设置。当TF=1时,表示以单步方式执行程序,时,表示以单步方式执行程序,即即CPU每执行完一条指令,就自动产生一次内部单步中断每执行完一条指令,就自动产生一次内部单步中断中断类型中断类型1(也称为陷阱),进入系统控制程序,利(也称为陷阱),进入系统控制程序,利用此
13、功能可跟踪指令的执行状况,用于程序调试用此功能可跟踪指令的执行状况,用于程序调试(5)内部控制逻辑电路内部控制逻辑电路 从指令队列缓冲器中取出指令,进行译码,产生从指令队列缓冲器中取出指令,进行译码,产生各种控制信号,控制各种部件的工作各种控制信号,控制各种部件的工作2.总线接口部件(总线接口部件(BIU)2.1.2 总线接口部件总线接口部件 负责与存储器、负责与存储器、I/O端口传送数据,包括对存储端口传送数据,包括对存储器的读写数据操作,对器的读写数据操作,对I/O端口的读写操作以及取指端口的读写操作以及取指令操作,即令操作,即BIU管理在存储器中读写程序和数据的管理在存储器中读写程序和数
14、据的实际处理能力实际处理能力段寄存器段寄存器指令指针寄存器指令指针寄存器地址加法器地址加法器内部暂存器内部暂存器指令队列缓冲器指令队列缓冲器I/O控制逻辑(总线控制逻辑)控制逻辑(总线控制逻辑)8086/8088地址引脚有地址引脚有20根,所以其寻址空间为根,所以其寻址空间为2201MB,其地址范围为:其地址范围为:00000HFFFFFH 将将1MB空间分成空间分成16段,每段最大为段,每段最大为64KB,每段的首,每段的首地址必须能被地址必须能被16整除(即凡是能被整除(即凡是能被16整除的地址均可定整除的地址均可定义为段首地址)义为段首地址)目的目的:与:与8位机在软件保持兼容位机在软件
15、保持兼容各段之间可以是连续、分开、部分重叠或完全重叠的各段之间可以是连续、分开、部分重叠或完全重叠的当段首地址确定后,段内的当段首地址确定后,段内的16位地址称为偏移地址位地址称为偏移地址由于由于8086存储系统数据存贮器和程序存储器是统一编址存储系统数据存贮器和程序存储器是统一编址的,分段可以使他们隔离,互不相扰的,分段可以使他们隔离,互不相扰(1)段寄存器)段寄存器逻辑地址逻辑地址:程序中出现的地址是逻辑地址,是用符号地址表:程序中出现的地址是逻辑地址,是用符号地址表示的。逻辑地址包括段基址和偏移地址,示的。逻辑地址包括段基址和偏移地址,CPU执行程序时,执行程序时,需要将逻辑地址转换为物
16、理地址,称为地址重定位需要将逻辑地址转换为物理地址,称为地址重定位 物理地址和逻辑地址物理地址和逻辑地址 物理地址物理地址:是指信息在存储器中实际有效的地址单元号,:是指信息在存储器中实际有效的地址单元号,CPU访问内存是按物理地址寻址的。每一个物理地址是由段访问内存是按物理地址寻址的。每一个物理地址是由段基址和段内偏移量组成基址和段内偏移量组成 物理地址段基址物理地址段基址16偏移量偏移量 1MB的存储空间可分为四种类型的段(代码段、数据的存储空间可分为四种类型的段(代码段、数据段、堆栈段、附加段),段基址分别存放在对应的段寄存段、堆栈段、附加段),段基址分别存放在对应的段寄存器中器中 CS
17、 代码段寄存器代码段寄存器 保存当前执行程序所在段的段基址,保存当前执行程序所在段的段基址,CS中的数乘中的数乘16,再加上指令指针寄存器再加上指令指针寄存器IP中的内容,即是下一条将要取中的内容,即是下一条将要取出指令的代码的地址出指令的代码的地址CS=2000H,IP=2200H物理地址物理地址2000H162200H=22200HDS 数据段寄存器数据段寄存器 保存有数据段的段基址。数据段是用来保存当前程序保存有数据段的段基址。数据段是用来保存当前程序中的操作数和变量中的操作数和变量SS 堆栈段寄存器堆栈段寄存器 保存有堆栈段的段基址,保存有堆栈段的段基址,SS中的数据乘中的数据乘16,
18、加上堆栈,加上堆栈指针寄存器指针寄存器SP中的数形成栈顶地址中的数形成栈顶地址ES 附加段寄存器附加段寄存器 进行字符串操作时,作为进行字符串操作时,作为目的目的段地址使用,是一种附加段地址使用,是一种附加的数据区,若要使用附加段,必须对的数据区,若要使用附加段,必须对ES置初值。在附加段中,置初值。在附加段中,DI寄存器用于存放附加段的偏移量寄存器用于存放附加段的偏移量(2)指令指针寄存器指令指针寄存器IP16位寄存器位寄存器 目的目的:产生:产生20位的物理地址。物理地址的获得方法:位的物理地址。物理地址的获得方法:将段寄存器中的内容左移将段寄存器中的内容左移4位(或者乘以位(或者乘以16
19、)与偏移)与偏移地址(即对段首的偏移量)在地址加法器内相加,产地址(即对段首的偏移量)在地址加法器内相加,产生生20位的物理地址位的物理地址 用来存放将要取出指令的偏移地址,每执行一条指令,用来存放将要取出指令的偏移地址,每执行一条指令,IP其增量大小与已执行指令的字节长度有关。程序以代码其增量大小与已执行指令的字节长度有关。程序以代码的形式存在于存储器中,每一条指令都有一个存放地址,的形式存在于存储器中,每一条指令都有一个存放地址,IP总要指向下一条将要执行的指令地址总要指向下一条将要执行的指令地址(3)地址加法器地址加法器 物理地址段基址物理地址段基址16偏移量偏移量 (4)指令队列缓冲器
20、指令队列缓冲器 8086有有6字节缓冲器,字节缓冲器,8088有有4字节缓冲器。在执行部件字节缓冲器。在执行部件执行指令的同时,可以从内存中取出下一条或下几条指令执行指令的同时,可以从内存中取出下一条或下几条指令放到缓冲器,一条指令执行完后,可立即译码执行下一条放到缓冲器,一条指令执行完后,可立即译码执行下一条指令,从而解决了以往指令,从而解决了以往CPU取指令期间,运算器的等待问题。取指令期间,运算器的等待问题。由于取指令和执行指令并行进行,从而提高了由于取指令和执行指令并行进行,从而提高了CPU的效率的效率(5)输入输入/出控制电路出控制电路 输入输入/出控制电路控制出控制电路控制CPU与
21、外部电路的数据交换。与外部电路的数据交换。8086有有20条地址线,条地址线,16条数据线,由输入条数据线,由输入/出控制电路控制出控制电路控制分时分时复用复用的的CPU芯片的芯片的16个引脚个引脚(6)内部暂存器内部暂存器 用于内部数据的暂存,该部分对用户透明,用户无权访问用于内部数据的暂存,该部分对用户透明,用户无权访问 计算机是在时钟控制下进行工作的,若干个时钟完成一计算机是在时钟控制下进行工作的,若干个时钟完成一个基本操作,一个基本操作就是一个个基本操作,一个基本操作就是一个总线周期总线周期,CPU有若有若干种典型操作,构成相应的总线周期。如存储器的读写总干种典型操作,构成相应的总线周
22、期。如存储器的读写总线周期,线周期,I/O读写总线周期等读写总线周期等执行一条指令的时间称为执行一条指令的时间称为指令周期指令周期,指令周期是由若干总,指令周期是由若干总线周期构成线周期构成8086/8088的基本总线周期是由的基本总线周期是由4个个时钟周期时钟周期组成,在执行组成,在执行WAIT指令或指令或READY引脚输入的状态为低电平时,都需要引脚输入的状态为低电平时,都需要在在T3和和T4之间插入之间插入1个或若干个等待时钟周期个或若干个等待时钟周期Tw 2.1.3 8086总线的工作周期总线的工作周期T2状态状态 CPU从总线上撤销有效地址,使地址总线低从总线上撤销有效地址,使地址总
23、线低16位呈位呈高阻状态,为数据传输做准备。总线的高高阻状态,为数据传输做准备。总线的高4位(位(A19A16)输出总线周期的状态信息,用于表示中断允许状态输出总线周期的状态信息,用于表示中断允许状态及正在使用的段寄存器名及正在使用的段寄存器名T1状态状态 CPU向多路复用总线上发送地址信息,指出要寻址向多路复用总线上发送地址信息,指出要寻址的内存单元地址或的内存单元地址或I/O端口地址。这期间端口地址。这期间CPU还要送出还要送出ALE(正向脉冲),在(正向脉冲),在ALE下降沿将内存单元地址或下降沿将内存单元地址或I/O端口地址打入地址锁存器端口地址打入地址锁存器T3状态状态 A19A16
24、上的状态信息不变,地址总线低上的状态信息不变,地址总线低16位上出现位上出现CPU要写出的或准备读入的数据。若外设与内存来不及要写出的或准备读入的数据。若外设与内存来不及与总线交换数据,则应通过与总线交换数据,则应通过CPU的的READY信号,在信号,在T3前前沿(下降沿)之前向沿(下降沿)之前向CPU申请插入等待状态申请插入等待状态TW,在,在T3及及TW前沿查询前沿查询READY信号,查到高电平则结束等待状态,信号,查到高电平则结束等待状态,进入下一状态。否则继续插入等待进入下一状态。否则继续插入等待T4状态状态:总线周期结束总线周期结束 在一个总线周期之后,若不立即进入下一个总线周期,在
25、一个总线周期之后,若不立即进入下一个总线周期,即即CPU不与内存或外设交换数据或者指令队列已满,系统不与内存或外设交换数据或者指令队列已满,系统总线处于空闲状态,总线处于空闲状态,CPU执行总线空闲周期,总线执行总线空闲周期,总线空闲周空闲周期期一般由一个或多个时钟周期组成一般由一个或多个时钟周期组成2.2.12.2.1 8086/8088CPU8086/8088CPU的引脚信号和功能的引脚信号和功能 8086为为40引脚双列直插式封装,某些引脚具有双引脚双列直插式封装,某些引脚具有双重功能,称为重功能,称为引脚复用引脚复用 分时复用分时复用 在同一个总线周期中不同的时钟周期内功能不同在同一个
26、总线周期中不同的时钟周期内功能不同 模式复用模式复用 根据工作模式的不同引脚定义不同根据工作模式的不同引脚定义不同AD15AD0 地址地址/数据复用总线引脚,双向,分时复用数据复用总线引脚,双向,分时复用 构造总线必须加锁存器,构造总线必须加锁存器,8088的高的高8位不做位不做 复用,地址引脚是单向的复用,地址引脚是单向的A16/S3A19/S6 地址地址/状态复用引脚,单向,分时复用访问状态复用引脚,单向,分时复用访问 存储器时,在总线周期的存储器时,在总线周期的T1时刻,做高时刻,做高4位位 地址,地址,T2、T3、TW、T4状态时,用于输出状态时,用于输出 状态信息。访问状态信息。访问
27、I/O端口时,输出均为低电端口时,输出均为低电 平,平,8086最多可访问最多可访问64K个个I/O端口端口 S5=1,允许可屏蔽中断,允许可屏蔽中断S5=0,禁止一切可屏蔽中断,禁止一切可屏蔽中断 S4 S3 0 0 ES 0 1 SS 1 0 CS 1 1 DSS6=0,8086/8088当前与总线相连当前与总线相连BHE/S7 高高8位数据总线允许位数据总线允许/状态复用引脚,输出状态复用引脚,输出在总线周期的在总线周期的T1时刻,输出低电平,表示总线高时刻,输出低电平,表示总线高8位位AD15AD8上的数据有效。在上的数据有效。在T2T4期间,输出期间,输出S7状态状态(S7在当前的在
28、当前的8086芯片中未被定义),芯片中未被定义),BHE与地址线与地址线A0组组合,可对存储器读写时的数据格式实现控制合,可对存储器读写时的数据格式实现控制NMI 非屏蔽中断,输入,上升沿有效非屏蔽中断,输入,上升沿有效 当该引脚出现有效信号时,当该引脚出现有效信号时,CPU执行完指令后,执行完指令后,立即响应中断,不受立即响应中断,不受IF影响,软件也屏蔽不掉,中断类影响,软件也屏蔽不掉,中断类型号是型号是2INTR 可屏蔽中断,输入,高电平有效可屏蔽中断,输入,高电平有效 CPU在执行每一条指令的最后一个时钟周期采样该引在执行每一条指令的最后一个时钟周期采样该引脚,若为高电平(若脚,若为高
29、电平(若IF=1),则响应中断),则响应中断CLK 时钟,输入时钟,输入 CPU和总线控制的基准定时脉冲,一个时钟周期内具和总线控制的基准定时脉冲,一个时钟周期内具有有1/3有效高电平(即占空比有效高电平(即占空比33),其频率为),其频率为4MHz、5MHz、8 MHz、10 MHz等等,CPU的所有操作都是在时钟的所有操作都是在时钟同步下进行的同步下进行的RESET 复位信号,高电平有效复位信号,高电平有效 8086/8088要求复位信号要求复位信号至少维持至少维持4个时钟周期的高个时钟周期的高电平电平,以完成,以完成CPU内部寄存器的复位操作。复位后内部寄存器的复位操作。复位后CPU从从
30、FFFF0H单元启动,在此处安排一条长转移指令,单元启动,在此处安排一条长转移指令,使使CPU执行一条特定的启动程序,称为执行一条特定的启动程序,称为引导程序引导程序RD 读信号、输出,低电平有效读信号、输出,低电平有效 当当CPU执行存储器或执行存储器或I/O读操作指令时,读操作指令时,RD 为低电平为低电平READY “准备好准备好”信号信号 ,输入,输入,高电平有效,高电平有效 用来使用来使CPU和慢速的存储器(或和慢速的存储器(或I/O设备设备)之间的速度匹配。之间的速度匹配。当被访问的设备、数据没有准备好之前,该信号为低电平当被访问的设备、数据没有准备好之前,该信号为低电平使使CPU
31、自动插入等待状态自动插入等待状态TW来延长总线周期,当数据或设来延长总线周期,当数据或设备准备好时,该信号为高电平,备准备好时,该信号为高电平,CPU继续执行该总线周期继续执行该总线周期为避免失误设备送来的为避免失误设备送来的READY信号,必须先经过时钟发生信号,必须先经过时钟发生器器8284,与时钟,与时钟CLK同步后,再送入同步后,再送入CPU的的READY引脚引脚MN/MX 最小最小/最大模式控制信号最大模式控制信号该引脚固定接到该引脚固定接到+5V电源时,电源时,CPU处于最小工作模式,如果处于最小工作模式,如果接地,接地,CPU处于最大工作模式处于最大工作模式TEST 测试信号,输
32、入,低电平有效测试信号,输入,低电平有效 当执行当执行WAIT指令时,每隔指令时,每隔5个时钟周期,个时钟周期,CPU就对该就对该引脚采样,若为高电平,就使引脚采样,若为高电平,就使CPU重复执行重复执行WAIT指令而指令而处于等待状态,直到变为低电平,处于等待状态,直到变为低电平,CPU脱离等待继续执脱离等待继续执行下一条指令。该引脚与行下一条指令。该引脚与WAIT配合,可以实现配合,可以实现CPU与外与外设同步工作设同步工作2.2.2 最小工作模式最小工作模式INTA 中断响应、输出、低电平有效中断响应、输出、低电平有效 CPU响应外部中断请求后,发给请求中断请求设备的响应外部中断请求后,
33、发给请求中断请求设备的回答信号,在每个中断周期的回答信号,在每个中断周期的T2、T3和和TW期间,它变为低期间,它变为低电平。一般发送电平。一般发送两个负脉冲信号两个负脉冲信号,第一个通知外设,它发,第一个通知外设,它发生的中断请求已被响应,第二个通知中断源送出中断矢量生的中断请求已被响应,第二个通知中断源送出中断矢量码(即读取矢量码的选通信号)码(即读取矢量码的选通信号)ALE 地址所存允许信号、输出、高定平有效地址所存允许信号、输出、高定平有效 在总线周期在总线周期T1期间,期间,ALE的下降沿将出现在的下降沿将出现在AD15AD0总线上的地址信息锁在锁存器的输出端,并保持到数总线上的地址
34、信息锁在锁存器的输出端,并保持到数据的输入据的输入/输出完成。输出完成。ALE不能浮空不能浮空 DEN 数据允许,输出,低电平有效数据允许,输出,低电平有效在最小模式下作为输出信号的输出端,有时数据总线需在最小模式下作为输出信号的输出端,有时数据总线需要加双向驱动器(要加双向驱动器(8286、74LS245)就用)就用DEN作为驱动作为驱动器的选通信号,在每个存储器读、写,器的选通信号,在每个存储器读、写,I/O读、写或中断读、写或中断响应周期中,响应周期中,DEN都变为有效低电平都变为有效低电平M/IO 存储器存储器/外设访问控制,输出外设访问控制,输出当当M/IO为高电平时,表示为高电平时
35、,表示CPU访问存储器,若为低电平访问存储器,若为低电平时,表示时,表示CPU执行输入执行输入/出出(INOUT)指令对外设进行访问指令对外设进行访问DT/R 数据发送数据发送/接收控制,输出接收控制,输出当数据总线需要双向驱动时,用来做方向控制;当为高当数据总线需要双向驱动时,用来做方向控制;当为高电平时,则进行数据发送,当为低电平则为数据接收电平时,则进行数据发送,当为低电平则为数据接收HLDA 总线请求回答信号,输出,高电平有效总线请求回答信号,输出,高电平有效 HLDA=1,表示,表示CPU同意让出总线同意让出总线WR 写信号、输出,低电平有效写信号、输出,低电平有效 当当CPU执行存
36、储器或执行存储器或I/O写操作指令时,写操作指令时,WR为低电平为低电平HOLD 请求占用总线,输入,高电平有效请求占用总线,输入,高电平有效 当系统中其它模块或部件需要占用总线时,向当系统中其它模块或部件需要占用总线时,向CPU发出发出申请申请时钟发生器时钟发生器(8284)石英晶体振荡器石英晶体振荡器(晶振)(晶振)6MHz、8MHz、10MHz等时钟发等时钟发生器产生系统需要的时钟信号生器产生系统需要的时钟信号CLK,同时对外部,同时对外部READY信信号和系统复位信号号和系统复位信号RESET进行同步,输出到相应的进行同步,输出到相应的8086引引脚,保证脚,保证READY信号能够出现
37、在总线周期的信号能够出现在总线周期的T3时刻时刻 当当8086CPU的的MN/MX引脚接到引脚接到5V时,就处于最小时,就处于最小工作模式工作模式 地址锁存器地址锁存器(8282/74LS373)用于用于20位地址和位地址和BHE信号锁存,使得整个总线周期地址信号锁存,使得整个总线周期地址信号始终有效,以支持信号始终有效,以支持8086CPU地址地址/数据总线分时复用的数据总线分时复用的工作方式。一片工作方式。一片8282只能锁存只能锁存8位的地址,所以至少要位的地址,所以至少要3片片才能完整的锁存才能完整的锁存20位的地址位的地址 地址锁存信号要一直有效,地址锁存信号要一直有效,8282输出
38、允许端输出允许端OE要接地要接地(低电平有效),在(低电平有效),在T1状态,状态,CPU输出地址锁存允许信号输出地址锁存允许信号ALE,将,将ALE接向接向8282的选通输入端的选通输入端STB,当,当ALE=1时,时,8282输出跟随输入变化,用输出跟随输入变化,用ALE的下降沿将总线上的已稳的下降沿将总线上的已稳定的信号锁入定的信号锁入8282当系统中所连的存储器或外设较多时,需要增加数据总当系统中所连的存储器或外设较多时,需要增加数据总线的驱动能力,可以接总线驱动芯片线的驱动能力,可以接总线驱动芯片8286,一片,一片8286只只能驱动能驱动8位数据线,需位数据线,需2片。片。OE端为
39、输出使能端低电平有效,当端为输出使能端低电平有效,当OE=1时,控制门关,时,控制门关,8286两端均处于高阻状,该信号由两端均处于高阻状,该信号由DEN控制。数据传送控制。数据传送方向受方向受T端控制,当端控制,当T=1时,数据传送方向时,数据传送方向AB,当,当T=0时,数据从时,数据从B A总线收发器总线收发器 8286 2.2.3 最大工作模式最大工作模式QS1和和QS0指令队列状态信号,输出指令队列状态信号,输出 这两个信号提供总线周期的前一个状态中指令队这两个信号提供总线周期的前一个状态中指令队列的状态列的状态 、及及 总线周期状态信号,输出总线周期状态信号,输出 提供当前总线周期
40、中所进行的数据传输过程类型提供当前总线周期中所进行的数据传输过程类型 2S1S0SRQ/GT1,RQ/GT0 总线请求信号(输入)总线请求信号(输入)/总线请求允许总线请求允许信号(输出)信号(输出)可供可供CPU以外两个协处理器用来发出使用总线请求和接以外两个协处理器用来发出使用总线请求和接收收CPU对总线请求信号的回答信号。这两个应答信号都是对总线请求信号的回答信号。这两个应答信号都是双向的双向的 LOCK 封锁信号,低电平有效,输出封锁信号,低电平有效,输出 当当LOCK为低电平时,就封锁了总线,其它设备不为低电平时,就封锁了总线,其它设备不能获得总线控制权的机会,它的状态可由指令设置,
41、如能获得总线控制权的机会,它的状态可由指令设置,如果果CPU执行一条加有执行一条加有LOCK前缀的指令(例前缀的指令(例 LOCK XCHG AX,SEM)则在指令执行过程中)则在指令执行过程中LOCK引脚一引脚一直输出低电平,直到加前缀的指令执行完毕。使用此功直输出低电平,直到加前缀的指令执行完毕。使用此功能,可以防止某条指令在执行过程中被打断,在能,可以防止某条指令在执行过程中被打断,在DMA期间,期间,LOCK被置为高阻状态被置为高阻状态2.3.1 存储器结构存储器结构 8086/8088系统中存储器按字节编址,可寻址的存系统中存储器按字节编址,可寻址的存储器空间为储器空间为1MB。1M
42、B为为220,因此每个字节所对,因此每个字节所对应的地址应是应的地址应是20位(二进制数),这个位(二进制数),这个20位的地位的地址称为物理地址。址称为物理地址。8086/8088存储空间中,存储空间中,把把16字节的存储空间称作字节的存储空间称作一节。为了简化操作,要一节。为了简化操作,要求各个逻辑段从节的整数求各个逻辑段从节的整数边界开始,也就是说段首边界开始,也就是说段首地址低地址低4位应该是位应该是“0”,因此就把段首地址的高因此就把段首地址的高16位称为位称为“段基址段基址”,存放,存放在段寄存器在段寄存器DS,CS,SS或或ES中,段内的偏移地址存放中,段内的偏移地址存放在在IP
43、或或SP中。中。图2-7 存储器的逻辑分段=64K=64K0段1段00000HFFFFFH=64K2段=64Kn段2.存储器中的逻辑地址和物理地址存储器中的逻辑地址和物理地址 任何一个逻辑地址由段基址和偏移地址两个部分任何一个逻辑地址由段基址和偏移地址两个部分构成,它们都是无符号的构成,它们都是无符号的16位二进制数。位二进制数。存储器中任何一个存储单元对应一个存储器中任何一个存储单元对应一个20位的物理位的物理地址,也称为绝对地址,它是由逻辑地址变换得地址,也称为绝对地址,它是由逻辑地址变换得来的来的 BHE和A0作为奇地址存储体和偶地址存储体的选通信号2.3.2 堆栈概念及堆栈概念及808
44、6堆栈堆栈1.堆栈概念堆栈概念 堆栈是在内存中开辟的一个特定的区域,用以存堆栈是在内存中开辟的一个特定的区域,用以存放放CPU寄存器或存储器中暂时不用的数据。它也寄存器或存储器中暂时不用的数据。它也是一种数据结构,只允许在其一端进行数据插入是一种数据结构,只允许在其一端进行数据插入或删除操作的线性表。或删除操作的线性表。访问堆栈原则访问堆栈原则:后进先出,即先进栈的内容后出:后进先出,即先进栈的内容后出栈,后进栈的内容先出栈。栈,后进栈的内容先出栈。堆栈的类型堆栈的类型:向上生长型和向下生长型。:向上生长型和向下生长型。2.8086堆栈堆栈 8086系统中的堆栈属于向下生长型。它在内存中系统中
45、的堆栈属于向下生长型。它在内存中所处的段称为堆栈段,其段基址存放在堆栈段寄所处的段称为堆栈段,其段基址存放在堆栈段寄存器存器SS内。内。堆栈的堆栈的用途用途:1)在调用子程序(或过程)或发生中断时用推入)在调用子程序(或过程)或发生中断时用推入堆栈的办法保护断点的地址,当子程序返回或中堆栈的办法保护断点的地址,当子程序返回或中断返回时将断点地址从堆栈中弹出,以便继续执断返回时将断点地址从堆栈中弹出,以便继续执行主程序。行主程序。2.4.1 系统的复位和启动操作系统的复位和启动操作 8086/8088的复位和启动操作是在的复位和启动操作是在RESET引脚上引脚上加上触发信号来执行的加上触发信号来
46、执行的 复位信号(复位信号(RESET)至少有至少有4个时钟周期的高电个时钟周期的高电平,如果是初次加电的启动,则要求有大于平,如果是初次加电的启动,则要求有大于50s的高电平。的高电平。2.4.2 最小模式下的总线操作最小模式下的总线操作 总线操作:总线读操作及总线写操作。总线读操作指总线操作:总线读操作及总线写操作。总线读操作指CPU从存储器或外设端口读取数据。总线写操作指从存储器或外设端口读取数据。总线写操作指CPU把数据把数据写入存储器或外设端口。写入存储器或外设端口。1.最小工作模式下的最小工作模式下的总线读操作总线读操作 2.5 802862.5 80286微处理器微处理器1.1.
47、8028680286 微处理器微处理器是一种超级是一种超级16位微处理器位微处理器AB线:线:24根;根;DB线:线:16根根特点特点:运行方式运行方式实地址方式实地址方式保护方式保护方式与与8086兼容兼容物理存储器(物理存储器(16MB)存储器存储器虚拟存储器虚拟存储器(1GB)虚拟存储器与物理存储器的虚拟存储器与物理存储器的区别区别:空间大小不相同空间大小不相同虚拟存储器是虚拟存储器是程序程序可占有的空间,这个空间是由磁盘等外可占有的空间,这个空间是由磁盘等外部存储器来实现的部存储器来实现的物理存储器是物理存储器是CPUCPU可以访问的存储器可以访问的存储器 映射映射:虚拟地址(逻辑地址
48、):虚拟地址(逻辑地址)物理地址物理地址 方法方法:段描述符:段描述符 8028680286寄存器组寄存器组:A HA LD HD LC HC LB HB L专 用 寄 存 器 功 能乘 除、I/O 指 令循 环/移 位/重 复/计 数基 址 寄 存 器基 址 指 针 寄 存 器串 指 示 器堆 栈 指 示 器通 用 数 据 寄 存 器S PA XD XC XB XB PS ID I 7 0 7 01 5 0FM S WIP状 态 和 控 制 寄 存 器指 令 指 示 器标 志机 器 状 态 字A HA LD HD LC HC LB HB L专 用 寄 存 器 功 能乘 除、I/O 指 令循
49、环/移 位/重 复/计 数基 址 寄 存 器基 址 指 针 寄 存 器串 指 示 器堆 栈 指 示 器通 用 数 据 寄 存 器S PA XD XC XB XB PS ID I 7 0 7 01 5 0FM S WIP状 态 和 控 制 寄 存 器指 令 指 示 器标 志机 器 状 态 字C SD SS SE S1 5 0段 选 择 寄 存 器(由 程 序 装 入 段 选 择 符)访 问 权段 基 址段 长 度7 02 3 01 5 0段 描 述 符 高 速 缓 存 寄 存 器4 7 4 0 3 9 1 6 1 5 0访 问 权段 基 址段 长 度7 02 3 01 5 01 5 04 7 4
50、 0 3 9 1 6 1 5 0T RL D T R(由 操 作 系 统 和 C P U装 入 的 寄 存 器)任 务 寄 存 器 与 描 述 符 表 寄 存 器(C a c h e)段 选 择 寄 存 器I D T RG D T R(C a c h e)不可见不可见高速缓冲存储器(高速缓冲存储器(CACHECACHE)命中率命中率:在:在CPUCPU访问访问CacheCache时,所需信息恰好在时,所需信息恰好在CacheCache中的中的概率概率CacheCache与内存的空间比为与内存的空间比为1 1:128128CPU内存内存Cache机器状态寄存器机器状态寄存器(MSWMSW):16