第3章. 80868088微处理器及其系统(精品).ppt
T拓宽教育网拓宽教育网开始开始学习愉快画面宁静,使人可以安静的进入学习状态,唤醒人的学习意识.宁静以致远新编16/32位微型计算机原理及应用李继灿 主编第第 3 3 章章 8086808680888088微处理器及其系统微处理器及其系统 以以以以Intel8086Intel8086Intel8086Intel80868088808880888088、Z8000Z8000Z8000Z8000和和和和MC68000MC68000MC68000MC68000为代表为代表为代表为代表的的的的16161616位微处理器是第位微处理器是第位微处理器是第位微处理器是第3 3 3 3代产品,以它们为核心部件代产品,以它们为核心部件代产品,以它们为核心部件代产品,以它们为核心部件组成的微机系统组成的微机系统组成的微机系统组成的微机系统,其性能已达到中、高档小型计算其性能已达到中、高档小型计算其性能已达到中、高档小型计算其性能已达到中、高档小型计算机的水平。机的水平。机的水平。机的水平。20202020多年来多年来多年来多年来,Intel,Intel,Intel,Intel系列系列系列系列CPUCPUCPUCPU一直占着主导一直占着主导一直占着主导一直占着主导地位。尽管地位。尽管地位。尽管地位。尽管8086/80888086/80888086/80888086/8088后续的后续的后续的后续的80286802868028680286、80386803868038680386、80486804868048680486以及以及以及以及PentiumPentiumPentiumPentium系列系列系列系列CPUCPUCPUCPU结构与功能已经发生很大变化,结构与功能已经发生很大变化,结构与功能已经发生很大变化,结构与功能已经发生很大变化,但从基本概念与结构以及指令格式上来讲但从基本概念与结构以及指令格式上来讲但从基本概念与结构以及指令格式上来讲但从基本概念与结构以及指令格式上来讲,它们仍它们仍它们仍它们仍然是经典的然是经典的然是经典的然是经典的8086/8088CPU8086/8088CPU8086/8088CPU8086/8088CPU的延续与提升。并且,其的延续与提升。并且,其的延续与提升。并且,其的延续与提升。并且,其他系列流行的他系列流行的他系列流行的他系列流行的CPU(CPU(CPU(CPU(如如如如AMDAMDAMDAMD公司的公司的公司的公司的6X86MX/M6X86MX/M6X86MX/M6X86MX/M等等等等)也与也与也与也与80 x86CPU80 x86CPU80 x86CPU80 x86CPU兼容。兼容。兼容。兼容。3.1 8086/80883.1 8086/8088微处理器微处理器3.2 8086/80883.2 8086/8088系统的最小系统的最小/最大工作方式最大工作方式3.3 8086/80883.3 8086/8088的存储器的存储器3.4 8086/80883.4 8086/8088指令系统指令系统3.1 80863.1 808680888088微处理器微处理器 8086 8086 8086 8086是是是是IntelIntelIntelIntel系列的系列的系列的系列的16161616位微处理器,是位微处理器,是位微处理器,是位微处理器,是iAPX86iAPX86iAPX86iAPX8688888888系系系系列微机的基础。它采用高速运算性能的列微机的基础。它采用高速运算性能的列微机的基础。它采用高速运算性能的列微机的基础。它采用高速运算性能的HMOSHMOSHMOSHMOS工艺制造工艺制造工艺制造工艺制造,芯芯芯芯片上集成有片上集成有片上集成有片上集成有2.92.92.92.9万个晶体管,用单一的万个晶体管,用单一的万个晶体管,用单一的万个晶体管,用单一的+5+5+5+5伏电源和伏电源和伏电源和伏电源和40404040条引条引条引条引脚的双列直插式封装;时钟频率为脚的双列直插式封装;时钟频率为脚的双列直插式封装;时钟频率为脚的双列直插式封装;时钟频率为5MHz5MHz5MHz5MHz10MHz10MHz10MHz10MHz,最快的,最快的,最快的,最快的指令执行时间为指令执行时间为指令执行时间为指令执行时间为0.40.40.40.4ssss。8086808680868086有有有有16161616根数据线和根数据线和根数据线和根数据线和20202020根地址线,可以处理根地址线,可以处理根地址线,可以处理根地址线,可以处理8 8 8 8位或位或位或位或16161616位数据,寻址位数据,寻址位数据,寻址位数据,寻址1MB1MB1MB1MB的存储单元和的存储单元和的存储单元和的存储单元和64KB64KB64KB64KB的的的的I I I IO O O O端口。它的主端口。它的主端口。它的主端口。它的主机设计较之机设计较之机设计较之机设计较之8 8 8 8位机的性能大约提高了位机的性能大约提高了位机的性能大约提高了位机的性能大约提高了10101010倍。倍。倍。倍。在推出在推出在推出在推出8086808680868086之后不久之后不久之后不久之后不久,Intel,Intel,Intel,Intel公司还推出了准公司还推出了准公司还推出了准公司还推出了准16161616位微处位微处位微处位微处理器理器理器理器8088808880888088。8088808880888088的内部寄存器、运算器以及内部数据总线的内部寄存器、运算器以及内部数据总线的内部寄存器、运算器以及内部数据总线的内部寄存器、运算器以及内部数据总线都是按都是按都是按都是按16161616位设计的位设计的位设计的位设计的,但外部数据总线只有但外部数据总线只有但外部数据总线只有但外部数据总线只有8 8 8 8条。这样设计的条。这样设计的条。这样设计的条。这样设计的目的主要是为了与目的主要是为了与目的主要是为了与目的主要是为了与IntelIntelIntelIntel原有的原有的原有的原有的8 8 8 8位外围接口芯片直接兼容。位外围接口芯片直接兼容。位外围接口芯片直接兼容。位外围接口芯片直接兼容。在本节中,我们对在本节中,我们对在本节中,我们对在本节中,我们对8088808880888088也将加以说明。也将加以说明。也将加以说明。也将加以说明。一、一、一、一、80868086808680868088CPU8088CPU8088CPU8088CPU的内部结构的内部结构的内部结构的内部结构 从功能上讲,从功能上讲,从功能上讲,从功能上讲,8086808680868086可分为两个部分,即总线接口单元可分为两个部分,即总线接口单元可分为两个部分,即总线接口单元可分为两个部分,即总线接口单元BIU(BusBIU(BusBIU(BusBIU(Bus Interface Unit)Interface Unit)Interface Unit)Interface Unit)和执行单元和执行单元和执行单元和执行单元EU(ExecutionEU(ExecutionEU(ExecutionEU(Execution Unit Unit Unit Unit)。(一一一一)总线接口单元总线接口单元总线接口单元总线接口单元BIUBIUBIUBIU 总线接口单元总线接口单元总线接口单元总线接口单元BIUBIUBIUBIU的功能是负责完成的功能是负责完成的功能是负责完成的功能是负责完成CPUCPUCPUCPU与存储器或与存储器或与存储器或与存储器或I I I IO O O O设备之间的数据传送。其具体任务是:设备之间的数据传送。其具体任务是:设备之间的数据传送。其具体任务是:设备之间的数据传送。其具体任务是:BIUBIUBIUBIU要从内存取要从内存取要从内存取要从内存取指令送到指令队列缓冲器;指令送到指令队列缓冲器;指令送到指令队列缓冲器;指令送到指令队列缓冲器;CPUCPUCPUCPU执行指令时,总线接口单执行指令时,总线接口单执行指令时,总线接口单执行指令时,总线接口单元要配合执行单元从指定的内存单元或者外设端口中取数元要配合执行单元从指定的内存单元或者外设端口中取数元要配合执行单元从指定的内存单元或者外设端口中取数元要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果据,将数据传送给执行单元,或者把执行单元的操作结果据,将数据传送给执行单元,或者把执行单元的操作结果据,将数据传送给执行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口中。传送到指定的内存单元或外设端口中。传送到指定的内存单元或外设端口中。传送到指定的内存单元或外设端口中。BIU BIU BIU BIU内有内有内有内有4 4 4 4个个个个16161616位段地址寄存器位段地址寄存器位段地址寄存器位段地址寄存器CS(CS(CS(CS(代码段寄存器代码段寄存器代码段寄存器代码段寄存器)、DS(DS(DS(DS(数据段寄存器数据段寄存器数据段寄存器数据段寄存器)、SS(SS(SS(SS(堆栈段寄存器堆栈段寄存器堆栈段寄存器堆栈段寄存器)和和和和ES(ES(ES(ES(附加段寄存附加段寄存附加段寄存附加段寄存器器器器),16161616位指令指针位指令指针位指令指针位指令指针IPIPIPIP,6 6 6 6字节指令队列缓冲器,字节指令队列缓冲器,字节指令队列缓冲器,字节指令队列缓冲器,20202020位地址位地址位地址位地址加法器和总线控制电路。加法器和总线控制电路。加法器和总线控制电路。加法器和总线控制电路。1.1.1.1.指令队列缓冲器指令队列缓冲器指令队列缓冲器指令队列缓冲器:8086808680868086的指令队列为的指令队列为的指令队列为的指令队列为6 6 6 6个字节,而个字节,而个字节,而个字节,而8088808880888088的指令队列为的指令队列为的指令队列为的指令队列为4 4 4 4个个个个字节。在执行指令的同时,字节。在执行指令的同时,字节。在执行指令的同时,字节。在执行指令的同时,从内存中取下面从内存中取下面从内存中取下面从内存中取下面1 1 1 1条或几条指条或几条指条或几条指条或几条指令,取来的指令依次放在指令队列中。令,取来的指令依次放在指令队列中。令,取来的指令依次放在指令队列中。令,取来的指令依次放在指令队列中。“先进先出先进先出先进先出先进先出”的原则:的原则:的原则:的原则:(1)(1)(1)(1)取指时当指令队列缓冲器中存满取指时当指令队列缓冲器中存满取指时当指令队列缓冲器中存满取指时当指令队列缓冲器中存满1 1 1 1条指令后,条指令后,条指令后,条指令后,EUEUEUEU执执执执 行。行。行。行。(2)(2)(2)(2)指令队列缓冲器中只要空出指令队列缓冲器中只要空出指令队列缓冲器中只要空出指令队列缓冲器中只要空出2 2 2 2个个个个(对对对对8086)8086)8086)8086)或空出或空出或空出或空出1 1 1 1个个个个 (对对对对8088)8088)8088)8088)指令字节时,指令字节时,指令字节时,指令字节时,BIUBIUBIUBIU自动执行取指操作,直到自动执行取指操作,直到自动执行取指操作,直到自动执行取指操作,直到 填满。填满。填满。填满。(3)(3)(3)(3)在在在在EUEUEUEU执行指令的过程中,指令需要对存储器或执行指令的过程中,指令需要对存储器或执行指令的过程中,指令需要对存储器或执行指令的过程中,指令需要对存储器或I I I IO O O O设备设备设备设备 存取数据时,存取数据时,存取数据时,存取数据时,BIUBIUBIUBIU将在执行完现行取指的存储器周期后的将在执行完现行取指的存储器周期后的将在执行完现行取指的存储器周期后的将在执行完现行取指的存储器周期后的 下一个存储器周期,对指定的内存单元或下一个存储器周期,对指定的内存单元或下一个存储器周期,对指定的内存单元或下一个存储器周期,对指定的内存单元或I I I IO O O O设备进行设备进行设备进行设备进行 存取操作存取操作存取操作存取操作,交换的数据经交换的数据经交换的数据经交换的数据经BIUBIUBIUBIU由由由由EUEUEUEU进行处理。进行处理。进行处理。进行处理。(4)(4)(4)(4)当当当当EUEUEUEU执行完转移、调用和返回指令时,则要清除指令队执行完转移、调用和返回指令时,则要清除指令队执行完转移、调用和返回指令时,则要清除指令队执行完转移、调用和返回指令时,则要清除指令队 列缓冲器,并要求列缓冲器,并要求列缓冲器,并要求列缓冲器,并要求BIUBIUBIUBIU从新的地址重新开始取指令,新取从新的地址重新开始取指令,新取从新的地址重新开始取指令,新取从新的地址重新开始取指令,新取 的第的第的第的第1 1 1 1条指令将直接经指令队列送到条指令将直接经指令队列送到条指令将直接经指令队列送到条指令将直接经指令队列送到EUEUEUEU去执行,随后取来去执行,随后取来去执行,随后取来去执行,随后取来 的指令将填入指令队列缓冲器。的指令将填入指令队列缓冲器。的指令将填入指令队列缓冲器。的指令将填入指令队列缓冲器。2.2.2.2.地址加法器和段寄存器:地址加法器和段寄存器:地址加法器和段寄存器:地址加法器和段寄存器:8086808680868086有有有有20202020根地址线,内部寄存器有根地址线,内部寄存器有根地址线,内部寄存器有根地址线,内部寄存器有16161616位,采用了位,采用了位,采用了位,采用了16161616位位位位的段寄存器与的段寄存器与的段寄存器与的段寄存器与16161616位的偏移地址即位的偏移地址即位的偏移地址即位的偏移地址即“段加偏移段加偏移段加偏移段加偏移”的技术。的技术。的技术。的技术。利用各段寄存器分别来存放确定各段的起始地址的利用各段寄存器分别来存放确定各段的起始地址的利用各段寄存器分别来存放确定各段的起始地址的利用各段寄存器分别来存放确定各段的起始地址的16161616位段地址信息,而由位段地址信息,而由位段地址信息,而由位段地址信息,而由IPIPIPIP提供或由提供或由提供或由提供或由EUEUEUEU按寻址方式计算出寻址按寻址方式计算出寻址按寻址方式计算出寻址按寻址方式计算出寻址单元的单元的单元的单元的16161616位偏移地址位偏移地址位偏移地址位偏移地址(又称为逻辑地址或简称为偏移量又称为逻辑地址或简称为偏移量又称为逻辑地址或简称为偏移量又称为逻辑地址或简称为偏移量),然后,将它与左移然后,将它与左移然后,将它与左移然后,将它与左移4 4 4 4位后的段寄存器的内容同时送到地址位后的段寄存器的内容同时送到地址位后的段寄存器的内容同时送到地址位后的段寄存器的内容同时送到地址加法器进行相加,最后形成一个加法器进行相加,最后形成一个加法器进行相加,最后形成一个加法器进行相加,最后形成一个20202020位的实际地址位的实际地址位的实际地址位的实际地址(又称为又称为又称为又称为物理地址物理地址物理地址物理地址),以对存储单元寻址。,以对存储单元寻址。,以对存储单元寻址。,以对存储单元寻址。3.3.3.3.1616位指令指针位指令指针IPIP(Instruction Pointer)(Instruction Pointer)(Instruction Pointer)(Instruction Pointer)其功能与其功能与其功能与其功能与8 8 8 8位位位位CPUCPUCPUCPU中的中的中的中的PCPCPCPC类类类类似。正常运行时似。正常运行时似。正常运行时似。正常运行时,IP,IP,IP,IP中含有中含有中含有中含有BIUBIUBIUBIU要取的下要取的下要取的下要取的下1 1 1 1条指令条指令条指令条指令(字节字节字节字节)的偏的偏的偏的偏移地址。移地址。移地址。移地址。IPIPIPIP在程序运行中能自在程序运行中能自在程序运行中能自在程序运行中能自动加动加动加动加1 1 1 1修正修正修正修正,使之指向要执行的使之指向要执行的使之指向要执行的使之指向要执行的下下下下1 1 1 1条指令条指令条指令条指令(字节字节字节字节)。有些指令。有些指令。有些指令。有些指令能使能使能使能使IPIPIPIP值改变或使值改变或使值改变或使值改变或使IPIPIPIP值压进堆值压进堆值压进堆值压进堆栈,或由堆栈弹出恢复原值。栈,或由堆栈弹出恢复原值。栈,或由堆栈弹出恢复原值。栈,或由堆栈弹出恢复原值。(二二二二)执行单元执行单元执行单元执行单元EUEUEUEU 执行单元执行单元执行单元执行单元EUEUEUEU并不与系统的总线控制电路直接相并不与系统的总线控制电路直接相并不与系统的总线控制电路直接相并不与系统的总线控制电路直接相连连连连,这使得它能与总线接口单元之间保持既相互联系这使得它能与总线接口单元之间保持既相互联系这使得它能与总线接口单元之间保持既相互联系这使得它能与总线接口单元之间保持既相互联系又相互独立的关系。又相互独立的关系。又相互独立的关系。又相互独立的关系。EUEUEUEU的功能只是负责执行指令;执的功能只是负责执行指令;执的功能只是负责执行指令;执的功能只是负责执行指令;执行的指令从行的指令从行的指令从行的指令从BIUBIUBIUBIU的指令队列缓冲器中取得,执行指令的指令队列缓冲器中取得,执行指令的指令队列缓冲器中取得,执行指令的指令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由的结果或执行指令所需要的数据,都由的结果或执行指令所需要的数据,都由的结果或执行指令所需要的数据,都由EUEUEUEU向向向向BIUBIUBIUBIU发出发出发出发出请求,再由请求,再由请求,再由请求,再由BIUBIUBIUBIU经总线控制电路对存储器或外设存取。经总线控制电路对存储器或外设存取。经总线控制电路对存储器或外设存取。经总线控制电路对存储器或外设存取。EUEUEUEU由下列部分组成。由下列部分组成。由下列部分组成。由下列部分组成。1.161.161.161.16位算术逻辑单元位算术逻辑单元位算术逻辑单元位算术逻辑单元(ALU)(ALU)(ALU)(ALU):它可以用于进行算术、逻辑运算,也可以按指令的它可以用于进行算术、逻辑运算,也可以按指令的它可以用于进行算术、逻辑运算,也可以按指令的它可以用于进行算术、逻辑运算,也可以按指令的 寻址方式计算出寻址单元的寻址方式计算出寻址单元的寻址方式计算出寻址单元的寻址方式计算出寻址单元的16161616位偏移量。位偏移量。位偏移量。位偏移量。2.162.162.162.16位标志寄存器位标志寄存器位标志寄存器位标志寄存器F F F F:它用来反映它用来反映它用来反映它用来反映CPUCPUCPUCPU运算的状态特征或存放控制标志。运算的状态特征或存放控制标志。运算的状态特征或存放控制标志。运算的状态特征或存放控制标志。3.3.3.3.数据暂存寄存器数据暂存寄存器数据暂存寄存器数据暂存寄存器:它协助它协助它协助它协助ALUALUALUALU完成运算,暂存参加运算的数据。完成运算,暂存参加运算的数据。完成运算,暂存参加运算的数据。完成运算,暂存参加运算的数据。4.4.4.4.通用寄存器组通用寄存器组通用寄存器组通用寄存器组:它包括它包括它包括它包括4 4 4 4个个个个16161616位数据寄存器位数据寄存器位数据寄存器位数据寄存器AXAXAXAX、BXBXBXBX、CXCXCXCX、DXDXDXDX和和和和4 4 4 4个个个个16161616位位位位指针与变址寄存器指针与变址寄存器指针与变址寄存器指针与变址寄存器SPSPSPSP、BPBPBPBP与与与与SISISISI、DIDIDIDI。5.EU5.EU5.EU5.EU控制电路:控制电路:控制电路:控制电路:它是控制、定时与状态逻辑电路,接收从它是控制、定时与状态逻辑电路,接收从它是控制、定时与状态逻辑电路,接收从它是控制、定时与状态逻辑电路,接收从BIUBIUBIUBIU中指中指中指中指令队列取来的指令令队列取来的指令令队列取来的指令令队列取来的指令,经过指令译码形成各种定时控制信经过指令译码形成各种定时控制信经过指令译码形成各种定时控制信经过指令译码形成各种定时控制信号,对号,对号,对号,对EUEUEUEU的各个部件实现特定的定时操作。的各个部件实现特定的定时操作。的各个部件实现特定的定时操作。的各个部件实现特定的定时操作。EUEUEUEU中所有的寄存器和数据通道中所有的寄存器和数据通道中所有的寄存器和数据通道中所有的寄存器和数据通道(除队列总线为除队列总线为除队列总线为除队列总线为8 8 8 8位外位外位外位外)都是都是都是都是16161616位的宽度,可实现数据的快速传送。位的宽度,可实现数据的快速传送。位的宽度,可实现数据的快速传送。位的宽度,可实现数据的快速传送。8088CPU8088CPU8088CPU8088CPU内部结构与内部结构与内部结构与内部结构与8086808680868086的基本相似,只是的基本相似,只是的基本相似,只是的基本相似,只是8088BIU8088BIU8088BIU8088BIU中中中中指令队列长度为指令队列长度为指令队列长度为指令队列长度为4 4 4 4个字节;个字节;个字节;个字节;8088BIU8088BIU8088BIU8088BIU通过总线控制电路与通过总线控制电路与通过总线控制电路与通过总线控制电路与外部交换数据的总线宽度是外部交换数据的总线宽度是外部交换数据的总线宽度是外部交换数据的总线宽度是8 8 8 8位,总线控制电路与专用位,总线控制电路与专用位,总线控制电路与专用位,总线控制电路与专用寄存器组之间的数据总线宽度也是寄存器组之间的数据总线宽度也是寄存器组之间的数据总线宽度也是寄存器组之间的数据总线宽度也是8 8 8 8位。位。位。位。80868086808680868088808880888088的内部寄存的内部寄存的内部寄存的内部寄存器编程结构共有器编程结构共有器编程结构共有器编程结构共有13131313个个个个16161616位寄存器和位寄存器和位寄存器和位寄存器和1 1 1 1个只用了个只用了个只用了个只用了9 9 9 9位的标志寄存器。位的标志寄存器。位的标志寄存器。位的标志寄存器。二、二、8086808680888088的寄存器结构的寄存器结构(一一一一)通用寄存器通用寄存器通用寄存器通用寄存器1.1.1.1.数据寄存器:数据寄存器:数据寄存器:数据寄存器:执行单元执行单元执行单元执行单元EUEUEUEU中有中有中有中有4 4 4 4个个个个16161616位数据寄存器位数据寄存器位数据寄存器位数据寄存器AXAXAXAX、BXBXBXBX、CXCXCXCX和和和和DX.DX.DX.DX.每个数据寄存器分为高字节每个数据寄存器分为高字节每个数据寄存器分为高字节每个数据寄存器分为高字节H H H H和低字节和低字节和低字节和低字节L L L L,它们均可作为,它们均可作为,它们均可作为,它们均可作为8 8 8 8位数据寄存器独立寻址,独立使用。位数据寄存器独立寻址,独立使用。位数据寄存器独立寻址,独立使用。位数据寄存器独立寻址,独立使用。数据寄存器是用在算术运算或逻辑运算指令中,用来数据寄存器是用在算术运算或逻辑运算指令中,用来数据寄存器是用在算术运算或逻辑运算指令中,用来数据寄存器是用在算术运算或逻辑运算指令中,用来进行算术逻辑运算。在有些指令中进行算术逻辑运算。在有些指令中进行算术逻辑运算。在有些指令中进行算术逻辑运算。在有些指令中,它们则有特定的用途它们则有特定的用途它们则有特定的用途它们则有特定的用途:如如如如AXAXAXAX作累加器;作累加器;作累加器;作累加器;BXBXBXBX作基址寄存器作基址寄存器作基址寄存器作基址寄存器,在查表指令在查表指令在查表指令在查表指令XLATXLATXLATXLAT中存放中存放中存放中存放表的起始地址;表的起始地址;表的起始地址;表的起始地址;CXCXCXCX作计数寄存器作计数寄存器作计数寄存器作计数寄存器,在使用带有重复前缀在使用带有重复前缀在使用带有重复前缀在使用带有重复前缀(如如如如REP)REP)REP)REP)的数据串操作指令中用来存放数据串元素的个数;的数据串操作指令中用来存放数据串元素的个数;的数据串操作指令中用来存放数据串元素的个数;的数据串操作指令中用来存放数据串元素的个数;DXDXDXDX作数据寄存器作数据寄存器作数据寄存器作数据寄存器,在字的除法运算指令在字的除法运算指令在字的除法运算指令在字的除法运算指令DIVDIVDIVDIV中存放余数。这些中存放余数。这些中存放余数。这些中存放余数。这些寄存器在指令中的特定功能是被系统隐含使用的。寄存器在指令中的特定功能是被系统隐含使用的。寄存器在指令中的特定功能是被系统隐含使用的。寄存器在指令中的特定功能是被系统隐含使用的。2.2.2.2.指针寄存器和变址寄存器:指针寄存器和变址寄存器:指针寄存器和变址寄存器:指针寄存器和变址寄存器:指针寄存器是指堆栈指针寄存器指针寄存器是指堆栈指针寄存器指针寄存器是指堆栈指针寄存器指针寄存器是指堆栈指针寄存器SPSPSPSP和堆栈基址指针寄和堆栈基址指针寄和堆栈基址指针寄和堆栈基址指针寄存器存器存器存器BPBPBPBP,简称为,简称为,简称为,简称为P P P P组。变址寄存器是指源变址寄存器组。变址寄存器是指源变址寄存器组。变址寄存器是指源变址寄存器组。变址寄存器是指源变址寄存器SISISISI和和和和目的变址寄存器目的变址寄存器目的变址寄存器目的变址寄存器DI,DI,DI,DI,简称为简称为简称为简称为I I I I组。它们都是组。它们都是组。它们都是组。它们都是16161616位寄存器位寄存器位寄存器位寄存器,一一一一般用来存放偏移地址。般用来存放偏移地址。般用来存放偏移地址。般用来存放偏移地址。指针寄存器指针寄存器指针寄存器指针寄存器SPSPSPSP和和和和BPBPBPBP都用来指示存取位于当前堆栈段都用来指示存取位于当前堆栈段都用来指示存取位于当前堆栈段都用来指示存取位于当前堆栈段中的数据所在的地址中的数据所在的地址中的数据所在的地址中的数据所在的地址,但但但但SPSPSPSP和和和和BPBPBPBP在使用上有区别。入栈在使用上有区别。入栈在使用上有区别。入栈在使用上有区别。入栈(PUSH)(PUSH)(PUSH)(PUSH)和出栈和出栈和出栈和出栈(POP)(POP)(POP)(POP)指令是由指令是由指令是由指令是由SPSPSPSP给出栈顶的偏移地址,故给出栈顶的偏移地址,故给出栈顶的偏移地址,故给出栈顶的偏移地址,故称为堆栈指针寄存器。而称为堆栈指针寄存器。而称为堆栈指针寄存器。而称为堆栈指针寄存器。而BPBPBPBP则是存放位于堆栈段中的一则是存放位于堆栈段中的一则是存放位于堆栈段中的一则是存放位于堆栈段中的一个数据区基地址的偏移地址,故称为堆栈基址指针寄存个数据区基地址的偏移地址,故称为堆栈基址指针寄存个数据区基地址的偏移地址,故称为堆栈基址指针寄存个数据区基地址的偏移地址,故称为堆栈基址指针寄存器。显然,由器。显然,由器。显然,由器。显然,由SPSPSPSP所指定的堆栈存储区的栈顶和由所指定的堆栈存储区的栈顶和由所指定的堆栈存储区的栈顶和由所指定的堆栈存储区的栈顶和由BPBPBPBP所指所指所指所指定的堆栈段中某一块数据区的首地址是两个不同的意思定的堆栈段中某一块数据区的首地址是两个不同的意思定的堆栈段中某一块数据区的首地址是两个不同的意思定的堆栈段中某一块数据区的首地址是两个不同的意思,不可混淆。不可混淆。不可混淆。不可混淆。(二二)段寄存器段寄存器 80868086808680868088 CPU8088 CPU8088 CPU8088 CPU有有有有20202020条地址线,具有寻址条地址线,具有寻址条地址线,具有寻址条地址线,具有寻址1MB1MB1MB1MB存储存储存储存储空间。空间。空间。空间。80868086808680868088808880888088指令中给出的地址码仅有指令中给出的地址码仅有指令中给出的地址码仅有指令中给出的地址码仅有16161616位位位位,指针指针指针指针寄存器和变址寄存器也只有寄存器和变址寄存器也只有寄存器和变址寄存器也只有寄存器和变址寄存器也只有16161616位长,不能直接寻址位长,不能直接寻址位长,不能直接寻址位长,不能直接寻址1MB1MB1MB1MB大小的内存空间。大小的内存空间。大小的内存空间。大小的内存空间。在在在在80868086808680868088CPU8088CPU8088CPU8088CPU内部设计了一组内部设计了一组内部设计了一组内部设计了一组16161616位的段寄存器位的段寄存器位的段寄存器位的段寄存器,用这些段寄存器的内容作为段地址用这些段寄存器的内容作为段地址用这些段寄存器的内容作为段地址用这些段寄存器的内容作为段地址,再由段寄存器左移再由段寄存器左移再由段寄存器左移再由段寄存器左移4 4 4 4位形成位形成位形成位形成20202020位的段起始地址位的段起始地址位的段起始地址位的段起始地址,被称为段基地址或段基址被称为段基地址或段基址被称为段基地址或段基址被称为段基地址或段基址;这样,这样,这样,这样,80868086808680868088808880888088就有可能寻址就有可能寻址就有可能寻址就有可能寻址1MB1MB1MB1MB存储空间并将其分存储空间并将其分存储空间并将其分存储空间并将其分成为若干个逻辑段,使每个逻辑段的长度为成为若干个逻辑段,使每个逻辑段的长度为成为若干个逻辑段,使每个逻辑段的长度为成为若干个逻辑段,使每个逻辑段的长度为64KB64KB64KB64KB(它(它(它(它由由由由16161616位的偏移地址限定)。位的偏移地址限定)。位的偏移地址限定)。位的偏移地址限定)。80868086808680868088CPU8088CPU8088CPU8088CPU的的的的BIUBIUBIUBIU中有中有中有中有4 4 4 4个个个个16161616位段寄存器,位段寄存器,位段寄存器,位段寄存器,80868086808680868088808880888088的指令可以直接访问这的指令可以直接访问这的指令可以直接访问这的指令可以直接访问这4 4 4 4个段寄存器个段寄存器个段寄存器个段寄存器.(三三三三)标志寄存器标志寄存器标志寄存器标志寄存器 80868086808680868088808880888088的的的的16161616位标志寄存器位标志寄存器位标志寄存器位标志寄存器F F F F只用了其中的只用了其中的只用了其中的只用了其中的9 9 9 9位作标位作标位作标位作标志位,即志位,即志位,即志位,即6 6 6 6个状态标志位,个状态标志位,个状态标志位,个状态标志位,3 3 3 3个控制标志位。个控制标志位。个控制标志位。个控制标志位。AF(AuxiliaryAF(AuxiliaryAF(AuxiliaryAF(Auxiliary Carry Flag)Carry Flag)Carry Flag)Carry Flag)辅助进位标志:辅助进位标志:辅助进位标志:辅助进位标志:标志一般用在标志一般用在标志一般用在标志一般用在BCDBCDBCDBCD码运算中作为是否需要对码运算中作为是否需要对码运算中作为是否需要对码运算中作为是否需要对ALALALAL寄存器寄存器寄存器寄存器进行十进制调整的依据。进行十进制调整的依据。进行十进制调整的依据。进行十进制调整的依据。ZF(ZeroZF(ZeroZF(ZeroZF(Zero Flag)Flag)Flag)Flag)零标志:零标志:零标志:零标志:零标志表示一个算术或逻辑操作的结果是否为零。若零标志表示一个算术或逻辑操作的结果是否为零。若零标志表示一个算术或逻辑操作的结果是否为零。若零标志表示一个算术或逻辑操作的结果是否为零。若当前的运算结果为零,当前的运算结果为零,当前的运算结果为零,当前的运算结果为零,ZFZFZFZF为为为为1 1 1 1;否则为;否则为;否则为;否则为0 0 0 0。SF(SignSF(SignSF(SignSF(Sign Flag)Flag)Flag)Flag)符号标志:符号标志:符号标志:符号标志:符号标志保持算术或逻辑运算指令执行后结果的算术符号标志保持算术或逻辑运算指令执行后结果的算术符号标志保持算术或逻辑运算指令执行后结果的算术符号标志保持算术或逻辑运算指令执行后结果的算术符号。它和运算结果的最高位相同。符号。它和运算结果的最高位相同。符号。它和运算结果的最高位相同。符号。它和运算结果的最高位相同。OF(OverflowOF(OverflowOF(OverflowOF(Overflow Flag)Flag)Flag)Flag)溢出标志:溢出标志:溢出标志:溢出标志:溢出标志用于判断在有符号数进行加法或减法时是否溢出标志用于判断在有符号数进行加法或减法时是否溢出标志用于判断在有符号数进行加法或减法时是否溢出标志用于判断在有符号数进行加法或减法时是否可能出现溢出。溢出将指示运算结果已超出机器能够表示可能出现溢出。溢出将指示运算结果已超出机器能够表示可能出现溢出。溢出将指示运算结果已超出机器能够表示可能出现溢出。溢出将指示运算结果已超出机器能够表示的数值范围。的数值范围。的数值范围。的数值范围。控制标志有控制标志有控制标志有控制标志有3 3 3 3个,用来控制个,用来控制个,用来控制个,用来控制CPUCPUCPUCPU的操作,由程序设置或清除。的操作,由程序设置或清除。的操作,由程序设置或清除。的操作,由程序设置或清除。DF(DirectionDF(DirectionDF(DirectionDF(Direction Flag)Flag)Flag)Flag)方向标志:方向标志:方向标志:方向标志:它用来控制数据串操作指令的步进方向。若用它用来控制数据串操作指令的步进方向。若用它用来控制数据串操作指令的步进方向。若用它用来控制数据串操作指令的步进方向。若用STDSTDSTDSTD指令指令指令指令将将将将DFDFDFDF置置置置1,1,1,1,则数据串操作过程中地址会自动递减;若用则数据串操作过程中地址会自动递减;若用则数据串操作过程中地址会自动递减;若用则数据串操作过程中地址会自动递减;若用CLDCLDCLDCLD指指指指令将令将令将令将DFDFDFDF清清清清0 0 0 0,则数据串操作过程中地址会自动递增。,则数据串操作过程中地址会自动递增。,则数据串操作过程中地址会自动递增。,则数据串操作过程中地址会自动递增。IF(InterruptIF(InterruptIF(InterruptIF(Interrupt Enable Flag)Enable Flag)Enable Flag)Enable Flag)中断允许标志:中断允许标志:中断允许标志:中断允许标志:控制可屏蔽中断的标志。若用控制可屏蔽中断的标志。若用控制可屏蔽中断的标志。若用控制可屏蔽中断的标志。若用STISTISTISTI指令将指令将指令将指令将IFIFIFIF置置置置1,1,1,1,则表示则表示则表示则表示允许允许允许允许8086/8088 CPU8086/8088 CPU8086/8088 CPU8086/8088 CPU接受外部从其接受外部从其接受外部从其接受外部从其INTRINTRINTRINTR引脚上发来的可屏蔽引脚上发来的可屏蔽引脚上发来的可屏蔽引脚上发来的可屏蔽中断请求信号;若用中断请求信号;若用中断请求信号;若用中断请求信号;若用CLICLICLICLI指令将指令将指令将指令将IFIFIFIF清清清清0 0 0 0,则禁止,则禁止,则禁止,则禁止CPUCPUCPUCPU接受外来接受外来接受外