第1章 基础知识(4)-80X86处理器.ppt

上传人:s****8 文档编号:78353167 上传时间:2023-03-18 格式:PPT 页数:84 大小:526KB
返回 下载 相关 举报
第1章 基础知识(4)-80X86处理器.ppt_第1页
第1页 / 共84页
第1章 基础知识(4)-80X86处理器.ppt_第2页
第2页 / 共84页
点击查看更多>>
资源描述

《第1章 基础知识(4)-80X86处理器.ppt》由会员分享,可在线阅读,更多相关《第1章 基础知识(4)-80X86处理器.ppt(84页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1.4 80X86处理器的寄存器处理器的寄存器201308 GLUT_C11.4.1 8086处理器的寄存器处理器的寄存器1.4.1.1 8086的寄存器的寄存器 8086是是16位处理器位处理器16位数据总线宽度,内部寄存器,位数据总线宽度,内部寄存器,ALU都是都是16位的。位的。地址总线地址总线20位,以字节为单位对存储器进行编制,可寻位,以字节为单位对存储器进行编制,可寻址址220 1M字节。字节。我们只讨论与程序设计有关的寄存器我们只讨论与程序设计有关的寄存器.201308 GLUT_C28086的编程结构的编程结构201308 GLUT_C3与程序设计有关的寄存器与程序设计有关的寄

2、存器44个个16位数据寄存器可分位数据寄存器可分为为8个个8位寄存器使用位寄存器使用201308 GLUT_C4从功能上,从功能上,8086分为两部分,即分为两部分,即总线接口单元总线接口单元(bus interface unit,BIU)执行单元执行单元(execution unit,EU)201308 GLUT_C51执行单元执行单元EUl执行单元执行单元EU的功能只是负责执行指令。的功能只是负责执行指令。l执行的指令从指令队列缓冲器中直接得到,执行的指令从指令队列缓冲器中直接得到,l执执行行指指令令时时若若需需要要从从存存储储器器或或I/O端端口口读读写写操操作作数数时时,由由EU向向B

3、IU发出请求,再由发出请求,再由BIU对存储器或对存储器或I/O端口进行访问。端口进行访问。201308 GLUT_C6 16位算术逻辑单元位算术逻辑单元(ALU):进行算术和逻辑运算。:进行算术和逻辑运算。1616位标志寄存器位标志寄存器位标志寄存器位标志寄存器FLAGSFLAGS:存放存放CPU运算的状态和控制标志运算的状态和控制标志。数据数据暂存寄存器暂存寄存器:暂存参加运算的数据暂存参加运算的数据 通用寄存器通用寄存器:包括:包括4个个16位数据寄存器位数据寄存器AX、BX、CX、DX和和 4个个16位指针与变址寄存器位指针与变址寄存器SP、BP与与SI、DI。EU控制电路控制电路:它

4、是控制、定时与状态逻辑电路,接收从:它是控制、定时与状态逻辑电路,接收从BIU中指令队列取来的指令,经过指令译码形成各种定时控中指令队列取来的指令,经过指令译码形成各种定时控制信号,对制信号,对EU的各个部件实现特定的定时操作。的各个部件实现特定的定时操作。(1)执行单元执行单元EUEU由下列部件组成由下列部件组成201308 GLUT_C7(2)EU的任务的任务执行指令。执行指令。它负责从它负责从BIU的指令队列中取指令,并对指令进行译码,的指令队列中取指令,并对指令进行译码,根据指令的根据指令的要求向要求向EU内部各部件发出控制信号内部各部件发出控制信号,执行指令,执行指令规定的操作功能规

5、定的操作功能。201308 GLUT_C8(3)EU的寄存器l包括通用寄存器:包括通用寄存器:A、B、C、D、l堆栈指针寄存器堆栈指针寄存器SPl地址指针寄存器地址指针寄存器BP、SI、DIl标志寄存器标志寄存器FLAGS这些寄存器是程序设计中频繁使用的寄存器,这些寄存器是程序设计中频繁使用的寄存器,201308 GLUT_C9 4 4个通用寄存器,个通用寄存器,l四个四个1616位通用寄存器:位通用寄存器:AXAX、BXBX、CXCX、DXDX;1616位字长位字长l这这四四个个通通用用寄寄存存器器每每个个都都可可以以作作为为2 2个个独独立立的的8 8位位寄寄存存器器使使用。用。8 8位寄

6、存器符号:位寄存器符号:AHAH、ALAL、BHBH、BLBL、CHCH、CLCL、DHDH、DLDL201308 GLUT_C10 4 4个专用寄存器,即个专用寄存器,即l 基地址指针寄存器基地址指针寄存器BPBP(BaseBase Pointer Pointer)l 堆栈指针寄存器堆栈指针寄存器SP(StackSP(Stack Pointer)Pointer)l 源变址寄存器源变址寄存器SI(SourceSI(Source Index)Index)l 目的变址寄存器目的变址寄存器DI(DestinationDI(Destination Index)Index);201308 GLUT_C1

7、1 标志寄存器标志寄存器共有16位,其中7位未用,所用的各位含义如下:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OFOFDFDFIFIFTFTFSFSFZFZF AFAF PFPF CFCF根据功能,根据功能,8086的标志可以分为两类:的标志可以分为两类:状态标志状态标志控制标志控制标志201308 GLUT_C12状态标志状态标志有有6个,即个,即SF、ZF、PF、CF、AF和和OF 符号标志符号标志SF(Sign Flag)负数负数SF1,零标志零标志ZF(Zero Flag)运算

8、结果运算结果0,ZF=1 奇偶标志奇偶标志PF(Parity Flag)运算结果低运算结果低8位中位中1的个数为偶的个数为偶数,数,PF=1(PE),低),低8位中位中1的个数为奇数,的个数为奇数,PF=0(PO)。)。进位标志进位标志CF(Carry Flag)最高位产生进位最高位产生进位CF=1 辅助进位标志辅助进位标志(Auxiliary carry Flag)溢出标志溢出标志OF(Overflow Flag)算术运算产生溢出算术运算产生溢出8位运算结果超出位运算结果超出-128+127 16位运算结果超出位运算结果超出-32768+32767201308 GLUT_C13控制标志控制标

9、志有有3个,即个,即 方向标志方向标志DF(direction flag)中断允许标志中断允许标志IF(interrupt enable flag)跟踪标志跟踪标志TF(trap flag)又称为单步标志又称为单步标志80X86的标志寄存器各位可以通过程序进行修改。的标志寄存器各位可以通过程序进行修改。由于它特别重要,为防止意外被修改,因此对标志寄存器的由于它特别重要,为防止意外被修改,因此对标志寄存器的修改有特殊的指令和方法。修改有特殊的指令和方法。201308 GLUT_C14(6)、标志寄存器)、标志寄存器16位寄存器,其中有位寄存器,其中有7位未用。位未用。D15D0 OF DF IF

10、 TF SF ZF AF PF CF进进借借位位标标志志奇奇偶偶标标志志半半进进借借位位标标志志零零标标志志符符号号标标志志单单步步中中断断中中断断允允许许方方向向标标志志溢溢出出标标志志1-有进、借位有进、借位0-无进、借位无进、借位1-低低8位有偶数个位有偶数个10-低低8位有奇数个位有奇数个11-低低4位向高位向高4位有进、借位位有进、借位0-低低4位向高位向高4位无进、借位位无进、借位1-结果为结果为00-结果不为结果不为0201308 GLUT_C150101 0100 0011 1001+0100 0101 0110 10101001 1001 1010 0011最高位最高位=1

11、SF=1低八位低八位1的个数为的个数为 4 个个 PF=1运算结果不为运算结果不为 0 ZF=0低低 4 位向前有进位位向前有进位 AF=1最高位向前没有进位最高位向前没有进位 CF=0次高位向前有进位次高位向前有进位,最高位无进位最高位无进位 CF=0,DF=1,OF=115 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 O D I T S Z A P C 101011最高位无进位,CF=0向高4位有进位,AF=1201308 GLUT_C16例:例:设变量设变量x=11101111B,y=11001000B,A=0101101000001010B,B=0100110

12、0 10100011B,请问分别执,请问分别执行行x+y和和A+B操作操作后标志寄存器中各状态位的状态如何?后标志寄存器中各状态位的状态如何?11101111 +)11001000 10110111 1自动丢失0101101000001010 0100110010100011 1010011010101101CF=0CF=1DF=1DF=1x+yA+BAF=1CF=1次高位进位信号DF=1最高位进位信号CF=1OF=CF DF=0低8位有5个1,PF=0低8位有6个1,PF=1201308 GLUT_C17状态状态位位执行执行x+y后后执行执行A+B后后CF最高位最高位D7向前有进位,向前有进

13、位,CF=1最最 高高 位位 D15向向 前前 没没 有有 进进 位位,CF=0PF1的个数为偶数的个数为偶数(6),PF=11的个数为奇数的个数为奇数(5位位),PF=0AF低低4位向前有进位,位向前有进位,AF=1低低4位向前没有进位,位向前没有进位,AF=0ZF计算结果不为计算结果不为0,ZF=0计算结果不为计算结果不为0,ZF=0SF最高位最高位D7为为1,SF=1最高位最高位D15为为1,SF=1OFCF DF=0,没有溢出,没有溢出,OF=0CF DF=1,结果溢出,结果溢出,OF=1201308 GLUT_C182.总线接口部件总线接口部件(1 1)总线接口单元)总线接口单元)总

14、线接口单元)总线接口单元BIUBIU的任务:的任务:的任务:的任务:依据依据EU的请求,完成的请求,完成CPU与存储器、与存储器、CPU与与I/O设备之间的设备之间的信息传送。信息传送。读指令读指令当指令队列出现空字节当指令队列出现空字节(8088 有有1个空字节,个空字节,8086 有有2个空字节个空字节)时,从内存取出后续指令。时,从内存取出后续指令。BIU取指令时,取指令时,并不影响并不影响EU的执行,两者并行工作,大大提高了的执行,两者并行工作,大大提高了CPU的执行速的执行速度。度。读操作数读操作数EU需要从内存或外设端口读取操作数时,根据需要从内存或外设端口读取操作数时,根据EU给

15、出的地址从内存或外设端口读取数据供给出的地址从内存或外设端口读取数据供EU使用。使用。写操作数写操作数EU的运算结果、数据或控制命令等由的运算结果、数据或控制命令等由BIU送往送往指定的内存单元或外设端口。指定的内存单元或外设端口。201308 GLUT_C19 4个个16位段寄存器:位段寄存器:代码段寄存器代码段寄存器CS(Code Segment)、数据、数据段寄存器段寄存器DS(Data Segment)、堆栈段寄存器、堆栈段寄存器SS(Stack Segment)和附加数据段寄存器和附加数据段寄存器ES(Extra Segment);一一个个16位的指令指针寄存器位的指令指针寄存器IP

16、(Instruction Pointer);Pointer);一一个个20位地址加法器;位地址加法器;6字节指令队列缓冲器;字节指令队列缓冲器;一个一个与与EU通讯的内部通讯的内部寄存器以及寄存器以及总线控制电路总线控制电路等等等等。(2 2)总线接口单元()总线接口单元()总线接口单元()总线接口单元(BIUBIU)的组成)的组成)的组成)的组成201308 GLUT_C20 段寄存器段寄存器 8086CPU的的地地址址引引脚脚有有20根根,能能提提供供20位位的的地地址址信信息息,可可直接对直接对1M个存储单元进行访问个存储单元进行访问。但但CPU内部可用来提供地址信息的寄存器都是内部可用

17、来提供地址信息的寄存器都是16位的,位的,那么如何用那么如何用16位寄存器实现位寄存器实现20位地址的寻址呢?位地址的寻址呢?(3)BIU寄存器简介寄存器简介201308 GLUT_C218086/8088采用了分段结构的内存管理的方法。采用了分段结构的内存管理的方法。将将指令代码和数据分别指令代码和数据分别存储在存储在l代码段代码段l数据段数据段l堆栈段堆栈段l附加数据段附加数据段(简城附加段)(简城附加段)中,中,每一段最大每一段最大64KB(216个字节),可用个字节),可用16位的地址寄存位的地址寄存器管理。器管理。201308 GLUT_C22代码段段基地址代码段段基地址相对于段基地

18、相对于段基地址的偏移量址的偏移量数据段段基地址数据段段基地址相对于段基地相对于段基地址的偏移量址的偏移量这些段的段基地址分别由段这些段的段基地址分别由段寄存器寄存器CS、DS、SS、ES提供,提供,而代码或数据在段内的偏移而代码或数据在段内的偏移地址则由有关寄存器或立即地址则由有关寄存器或立即数给出。数给出。201308 GLUT_C23l 代码段寄存器代码段寄存器CS:存储存储程序当前使用的代码段的段地址。代码段用来存放程序的程序当前使用的代码段的段地址。代码段用来存放程序的指令代码。下一条要读取指令在代码段中的偏移地址由指令指指令代码。下一条要读取指令在代码段中的偏移地址由指令指针寄存器针

19、寄存器IP提供;提供;l 数据段寄存器数据段寄存器DS:用来用来存放程序当前使用的数据段的段地址。一般来说,程序中存放程序当前使用的数据段的段地址。一般来说,程序中所用到的原始数据、中间结果以及最终结果都存放在数据段所用到的原始数据、中间结果以及最终结果都存放在数据段中;中;201308 GLUT_C24l 堆栈段寄存器堆栈段寄存器SS:用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域;中开辟的一个特定区域;l 附加数据段寄存器附加数据段寄存器ES:用来存放程序当前使用的附加数据段的段地址。附加数据段通用来存放程序

20、当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。常用于存放字符串操作时的目的字符串。201308 GLUT_C25程序员在编写汇编语言源程序时,应该按照上述规定将程序程序员在编写汇编语言源程序时,应该按照上述规定将程序的各个部分放在规定的段内。的各个部分放在规定的段内。每个源程序必须至少有一个代码段,每个源程序必须至少有一个代码段,而数据段、堆栈段和附加数据段则根据程序的需要决定是否而数据段、堆栈段和附加数据段则根据程序的需要决定是否设置。设置。201308 GLUT_C26 指令指令指针寄存器指针寄存器指令指令指针指针寄存器寄存器IP:用来用来存放下一条要读取的

21、指令在代码段存放下一条要读取的指令在代码段中的偏移中的偏移地址。地址。IP在程序运行中能在程序运行中能自动修正自动修正,从而使其始终存放的是下一条,从而使其始终存放的是下一条要读取的指令在代码段的偏移要读取的指令在代码段的偏移地址。地址。由于由于CS和和IP的内容决定了程序的执行顺序,因此程序员不能的内容决定了程序的执行顺序,因此程序员不能直接用赋值指令对其内容进行直接用赋值指令对其内容进行修改。修改。有些有些指令能使指令能使IP和和CS的值改变(如跳转指令)或使其值压入的值改变(如跳转指令)或使其值压入堆栈或从堆栈中弹出恢复原值(如子程序调用指令和返回指令)堆栈或从堆栈中弹出恢复原值(如子程

22、序调用指令和返回指令)。201308 GLUT_C27 20位地址加法器位地址加法器 8086/8088CPU在在对对存存储储单单元元进进行行访访问问以以读读取取指指令令或或读读/写写操操作作数数时时,必必须须在在地地址址总总线线上上提提供供20位位的的地地址址信信息息,以以便便选选中中对应的对应的存储单元。存储单元。CPU的寄存器都是的寄存器都是16位(段基址寄存器和偏移地址都是)。位(段基址寄存器和偏移地址都是)。那么那么,CPU是如何产生是如何产生20位地址的呢?位地址的呢?CPU提供的用来对存储单元进行访问的提供的用来对存储单元进行访问的20位地址是由位地址是由BIU中的地址加法器产生

23、的。中的地址加法器产生的。201308 GLUT_C28 存储器中每个存储单元的地址可有以下两种表示方式:存储器中每个存储单元的地址可有以下两种表示方式:l逻辑地址:逻辑地址:其表达表达形式为形式为“段地址:段内偏移段地址:段内偏移地址地址”的的地址。地址。l段段内偏移地址又称为内偏移地址又称为“有效地址有效地址EA(Effective Address)。在读指令时,段地址由代码段寄存器在读指令时,段地址由代码段寄存器在读指令时,段地址由代码段寄存器在读指令时,段地址由代码段寄存器CSCS提供,当前要读取提供,当前要读取提供,当前要读取提供,当前要读取指令在代码段中的偏移地址由指令指针寄存器指

24、令在代码段中的偏移地址由指令指针寄存器指令在代码段中的偏移地址由指令指针寄存器指令在代码段中的偏移地址由指令指针寄存器IPIP提供;提供;提供;提供;在读取或存储操作数时,根据具体操作,段地址由在读取或存储操作数时,根据具体操作,段地址由在读取或存储操作数时,根据具体操作,段地址由在读取或存储操作数时,根据具体操作,段地址由DSDS、ESES或或或或SSSS提供,段内偏移地址由指令给出。提供,段内偏移地址由指令给出。提供,段内偏移地址由指令给出。提供,段内偏移地址由指令给出。201308 GLUT_C29物物理理地地址址:CPU与与存存储储器器进进行行数数据据交交换换时时在在地地址址总总线线上

25、上提提供供的的20位地址信息称为物理地址。位地址信息称为物理地址。物理地址的形成过程如图所物理地址的形成过程如图所示。示。201308 GLUT_C30段寄存器内容左移四位后(相当于乘以段寄存器内容左移四位后(相当于乘以10H),与),与16位段内偏位段内偏移地址,在移地址,在BIU中的地址加法器中进行相加,形成一个中的地址加法器中进行相加,形成一个20位的位的物理地址。这就是由逻辑地址求出物理地址的方法。由逻辑地物理地址。这就是由逻辑地址求出物理地址的方法。由逻辑地址求物理地址的公式为:址求物理地址的公式为:物理物理物理物理地址地址地址地址=段地址段地址段地址段地址 10H+10H+段内偏移

26、地址段内偏移地址段内偏移地址段内偏移地址 例如:假设当前例如:假设当前(CS)=1000H,取出当前指令后指,取出当前指令后指令指针令指针(IP)=4052H,求下一条指令的地址。,求下一条指令的地址。1000H 左移左移4位后为:位后为:10000H,它与它与4052H相加相加10000+4052=14052h。下一条指令所在存储单元的物理地址为下一条指令所在存储单元的物理地址为14052H。10000405214052201308 GLUT_C31 指令队列缓冲器指令队列缓冲器 8086的指令队列有的指令队列有6个字节,个字节,8088的指令队列有的指令队列有4个个字节。字节。对对8086

27、而言,当指令队列出现而言,当指令队列出现2个个空字节,空字节,对对8088而言,指令队列出现而言,指令队列出现1个空字节个空字节时,时,BIU就就自自动动执执行行一一次次取取指指令令操操作作,将将下下一一条条要要执执行行的的指指令令(1个个字字)从从内存单元读入到指令队列。内存单元读入到指令队列。指指令令队队列列采采用用“先先进进先先出出”原原则则,按按顺顺序序存存放放,并并按按顺顺序序取取到到EU中去执行。中去执行。指令队列的引入使得指令队列的引入使得EUEU和和BIUBIU可并行工作,即可并行工作,即BIUBIU在读指令时,在读指令时,并不影响并不影响EUEU单元执行指令,单元执行指令,E

28、UEU单元可以连续不断地直接从指令队单元可以连续不断地直接从指令队列中取到要执行的指令代码,从而减少了列中取到要执行的指令代码,从而减少了CPUCPU为取指令而等待的时为取指令而等待的时间,提高了间,提高了CPUCPU的利用率,加快了整机的运行速度。的利用率,加快了整机的运行速度。201308 GLUT_C32二者二者内部结构基本相似,执行单元内部结构基本相似,执行单元EU完全相同,其指令系统、完全相同,其指令系统、寻址方式及程序设计方法都寻址方式及程序设计方法都相同。相同。区别区别仅在于总线接口单元仅在于总线接口单元BIU,归纳起来主要有以下几个方面,归纳起来主要有以下几个方面的差异:的差异

29、:l外外部部数数据据总总线线位位数数不不同同。8086外外部部数数据据总总线线16位位,8088外外部部数据总线数据总线8位。位。l指指令令队队列列缓缓冲冲器器大大小小不不同同。8086指指令令队队列列可可容容纳纳6个个字字节节;而而8088指令队列只能容纳指令队列只能容纳4个字节。个字节。l 部分引脚的功能定义有所区别。部分引脚的功能定义有所区别。3.8088CPU3.8088CPU与与8086CPU8086CPU的异同的异同201308 GLUT_C334.8086的总线周期的概念 计算机中的所有工作,都是在严格的时钟脉冲控制下进计算机中的所有工作,都是在严格的时钟脉冲控制下进行的。行的。

30、总线周期总线周期完成一次总线操作所需要的时钟周期数。完成一次总线操作所需要的时钟周期数。一般总线操作一般总线操作一次存储器读或写操作。一次存储器读或写操作。201308 GLUT_C34典型的典型的8086总线周期序列:总线周期序列:由由4个基本时钟周期和若干个等待周期(可以是个基本时钟周期和若干个等待周期(可以是0个等待周个等待周期)组成。期)组成。201308 GLUT_C35 T1状态,发地址信息状态,发地址信息 T2状态,总线的高状态,总线的高4位输出状态信息位输出状态信息 T3状态,高状态,高4位输出状态信息,低位输出状态信息,低16位数据位数据 T3之后,可能插入之后,可能插入TW

31、(存储器或外设提供)(存储器或外设提供)在在T4状态,本总线周期结束。状态,本总线周期结束。201308 GLUT_C361.4.1.2 8086的引脚信号和工作模式的引脚信号和工作模式最大工作模式的功能201308 GLUT_C371.最小模式和最大模式的概念(1)(1)最小模式最小模式:在在系系统统中中只只有有一一个个微微处处理理器器,所所有有总总线线控控制制信信号号都都有有CPUCPU直接产生。直接产生。(2)最大模式:最大模式:两个或多个微处理器(主处理器、协处理器),总线控制两个或多个微处理器(主处理器、协处理器),总线控制信号由专门的电路产生。信号由专门的电路产生。与与8086配合

32、的协处理器配合的协处理器8087:数值运算处理器:数值运算处理器8089:输入:输入/输出协处理器输出协处理器201308 GLUT_C382.8086/8088的引脚信号和功能的引脚信号和功能注意点:注意点:8086/8088的数据线和地址线复用的数据线和地址线复用 8086有有16根数据线根数据线 第第21脚脚(RESET)为输入复位信号为输入复位信号 第第22引脚为引脚为“准备好准备好”(READY)信号信号 RD:指示:指示读读,WR:指示写操作:指示写操作 高高4位地址和状态线复用位地址和状态线复用 201308 GLUT_C39各引脚信号:各引脚信号:GND、V地和电源地和电源 A

33、D15AD0地址地址/数据复用数据复用 A19/S6A16/S3 地址地址/状态复用状态复用 BHE/S7 高高8位数据总线允许位数据总线允许/状态复用状态复用 NMI非屏蔽中断输入非屏蔽中断输入 201308 GLUT_C40 INTR可屏蔽中断请求信号输入可屏蔽中断请求信号输入 RD读信号输出读信号输出 CLK时钟输入时钟输入 RESET复位信号输入复位信号输入 READY“准备好准备好”信号输入信号输入 TEST测试信号输入测试信号输入 MN/MX最小和最大模式控制输入最小和最大模式控制输入 带带#的信号表示低电平有效的信号表示低电平有效201308 GLUT_C413.最小模式最小模式

34、 引脚信号:引脚信号:INTA中断响应信号输出中断响应信号输出 ALE地址锁存允许信号输出地址锁存允许信号输出 DEN数据允许信号数据允许信号 DT/R数据收发信号输出数据收发信号输出 201308 GLUT_C42 M/IO存储器存储器/输入输出控制信号输出输入输出控制信号输出 WR写信号输出写信号输出 HOLD总线保持请求信号输入总线保持请求信号输入 HLDA总线保持响应信号输出总线保持响应信号输出 201308 GLUT_C438086在在最最小小模模式式下下的的典典型型配配置置:201308 GLUT_C448086的引脚的引脚MN/nMAX=1,选择最小模式。,选择最小模式。在最小模

35、式下,需要一片时钟发生器在最小模式下,需要一片时钟发生器IC提供时钟、复位信号、提供时钟、复位信号、并同步外部并同步外部READY信号提供给信号提供给CPU。在最小模式下,系统的全部控制信号都由在最小模式下,系统的全部控制信号都由8086产生。产生。注意在硬件连接上,地址信号一定要在外部锁存。锁存器可注意在硬件连接上,地址信号一定要在外部锁存。锁存器可以使用以使用Intel的的8282,也可以使用通用的,也可以使用通用的74LS373.锁存控制信号锁存控制信号ALE数据信号是否需要驱动,要看外部接了多少器件。一般带负载数据信号是否需要驱动,要看外部接了多少器件。一般带负载能力能力8个个TTL负

36、载,如果接在负载,如果接在AD15AD0上的逻辑电路上的逻辑电路(存储器、外设)较多,则需要用总线收发器来增加数据(存储器、外设)较多,则需要用总线收发器来增加数据总线的驱动能力。总线的驱动能力。驱动可使用驱动可使用 8286,也可使用,也可使用74LS245201308 GLUT_C45CPU对存储器、外设的操作(读或写)由信号对存储器、外设的操作(读或写)由信号M/nIO,nRD,nWR的组合确定。的组合确定。注意:注意:nRD前面的小写前面的小写n表示该信号表示该信号RD低电平有效低电平有效画不出上划画不出上划线。线。201308 GLUT_C464.最大模式最大模式最大模式接地2013

37、08 GLUT_C47MN/MAX信号接地信号接地8086工作于最大模式。工作于最大模式。引脚信号:引脚信号:QS1、QS0指令队列状态信号输出指令队列状态信号输出 QS1QS0含义含义00无操作无操作01从指令队列的第一字节取走代码从指令队列的第一字节取走代码10指令队列空指令队列空11除第一字节外,还取走了后续字节中的代码除第一字节外,还取走了后续字节中的代码201308 GLUT_C48 S2#、S1#、S0#总线周期状态信号输出,它对应的总线总线周期状态信号输出,它对应的总线操作如表操作如表2.4所示。所示。S2S1S0含义含义000发中断响应信号发中断响应信号001读读I/O端口端口

38、010写写I/O端口端口011暂停暂停100取指令取指令101读内存读内存110写内存写内存111总线进入高阻态总线进入高阻态总线控制器总线控制器8288就是利用就是利用CPU提供提供的这些状态信号来的这些状态信号来产生计算机系统的产生计算机系统的相关控制信号相关控制信号201308 GLUT_C49 LOCK#(lock)总线封锁信号输出总线封锁信号输出 RQ#/GT1#、RQ#/GT0#总线请求信号输入、总线授权信总线请求信号输入、总线授权信号输出号输出8086在最大模式下的典型电路如下图在最大模式下的典型电路如下图201308 GLUT_C50201308 GLUT_C511.4.2 8

39、0286的寄存器的寄存器通用寄存器、段寄存器、指令指针、堆栈指针等与通用寄存器、段寄存器、指令指针、堆栈指针等与8086完全完全相同相同AX、BX、CX、DX、SP、BP、SI、DI、CS、DS、ES、SS、IP四个通用寄存器四个通用寄存器AX、BX、CX、DX可做可做16位通用寄存器使位通用寄存器使用,也可作用,也可作8位寄存器使用:位寄存器使用:AH、AL、BH、BL、CH、CL、DH、DL区别:区别:(1)标志寄存器增加了两个标志标志寄存器增加了两个标志任务嵌套标志任务嵌套标志NT(D14)和)和I/O特权级标志特权级标志IOPL(D13,D12)(2)增加了一个机器状态字寄存器增加了一

40、个机器状态字寄存器MSW201308 GLUT_C525380286 增加了增加了2位位(6)、标志寄存器)、标志寄存器16位寄存器,其中有位寄存器,其中有7位未用。位未用。D15D0进进借借位位标标志志奇奇偶偶标标志志半半进进借借位位标标志志零零标标志志符符号号标标志志单单步步中中断断中中断断允允许许方方向向标标志志溢溢出出标标志志1-有进、借位有进、借位0-无进、借位无进、借位1-低低8位有偶数个位有偶数个10-低低8位有奇数个位有奇数个11-低低4位向高位向高4位有进、借位位有进、借位0-低低4位向高位向高4位无进、借位位无进、借位1-结果为结果为00-结果不为结果不为0PFCFAFZF

41、SFTFIFDFOFIOPLNT任任务务嵌嵌套套标标志志IO特特权权层层标标志志201308 GLUT_C531.4.3 80386处理器的寄存器处理器的寄存器80386有有2累寄存器:基本寄存器和系统寄存器累寄存器:基本寄存器和系统寄存器80386有三种工作方式:有三种工作方式:l实地址方式实地址方式(real address mode)l保护虚拟地址方式保护虚拟地址方式(protected virtual address mode)即保即保护方式护方式l虚拟虚拟8086方式方式(virtual 8086 mode)201308 GLUT_C541.基本寄存器基本寄存器(1)通用寄存器通用寄

42、存器l将将8086的的8个通用寄存器个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI扩展为扩展为32位寄存器,低位寄存器,低16位就是位就是8086的寄存器。的寄存器。32位寄存器符号:位寄存器符号:EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDIl仍然可用于仍然可用于16位寄存器,做十六位寄存器使用时,符号为位寄存器,做十六位寄存器使用时,符号为AX、BX、CX、DX、SP、BP、SI、DIlAX、BX、CX、DX可以作为可以作为8个个8位寄存器使用,符号位寄存器使用,符号AH、AL、BH、BL、CH、CL、DH、DL201308 GLUT_C55(2)指令指针和标志

43、寄存器)指令指针和标志寄存器扩展为扩展为32位,符号:位,符号:EIP、EFLAGS,它们的低它们的低16位就是位就是8086的对应寄存器的对应寄存器IP、FLAGS。仍然可使用仍然可使用16位寄存器位寄存器IP、FLAGS在实模式下只能使用在实模式下只能使用IP和和FLAGS在标志寄存器高位字(在标志寄存器高位字(D31D16)增加了虚拟)增加了虚拟8086方式标方式标志志VM和恢复标志和恢复标志RF201308 GLUT_C56(3)段寄存器)段寄存器除了与除了与8086相同的相同的4个段寄存器个段寄存器 CS、DS、SS、ES外,增外,增加了两个加了两个16位段寄存器位段寄存器FS、GS

44、。FS、GS与与ES的作用相同。的作用相同。在实地址模式,段寄存器内容为段基地址在实地址模式,段寄存器内容为段基地址在保护模式下,段寄存器作为段选择子,通过段选择子在段在保护模式下,段寄存器作为段选择子,通过段选择子在段描述符表中选择段描述符,由段描述符给出段基地址及其他描述符表中选择段描述符,由段描述符给出段基地址及其他相关信息。相关信息。201308 GLUT_C572.系统寄存器系统寄存器(1)系统地址寄存器)系统地址寄存器四个:四个:GDTR:全局描述符表寄存器全局描述符表寄存器IDTR:中断描述符表寄存器中断描述符表寄存器LDTR:局部描述符表寄存器局部描述符表寄存器TR:任务寄存器

45、任务寄存器用于保护模式下的存储器管理。用于保护模式下的存储器管理。201308 GLUT_C58(2)控制寄存器)控制寄存器四个控制寄存器:四个控制寄存器:CR0、CR1、CR2、CR3(3)调试寄存器)调试寄存器8个调试寄存器:个调试寄存器:DR0DR7(4)测试寄存器测试寄存器2个测试寄存器:个测试寄存器:TR6、TR7201308 GLUT_C591.4.4 80486的寄存器的寄存器在在80386基础上新增了基础上新增了3个测试寄存器:个测试寄存器:TR3、TR4、TR5对标志寄存器进行了扩充,在对标志寄存器进行了扩充,在D18增加了一个对准检查标志增加了一个对准检查标志AC增加了浮点

46、处理单元及相关寄存器增加了浮点处理单元及相关寄存器其他与其他与80386相同。相同。201308 GLUT_C601.4.5 Pentium的寄存器的寄存器Pentium的寄存器的寄存器包括:包括:l基本寄存器、基本寄存器、l系统寄存器、系统寄存器、l浮点寄存器浮点寄存器1.基本寄存器基本寄存器类似于类似于8086,如有,如有图所示图所示除了段寄存器,其除了段寄存器,其他寄存器扩展为他寄存器扩展为32位。位。AHALAXBHBLBXCHCLCXDHDLDXSPBPSIDIIPFCSDSSSESFSGS累加器EDXECXEBXEAXESPEBPESIEDIEIPEFLAGS基址寄存器计数寄存器数

47、据寄存器堆栈指针基址指针源变址寄存器目的变址寄存器指令指针状态标志寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器附加段寄存器附加段寄存器201308 GLUT_C61(1)通用寄存器通用寄存器l8个个32位通用寄存器位通用寄存器l这个通用寄存器的低这个通用寄存器的低16位可以作为位可以作为16位寄存位寄存器使用。器使用。l类似于类似于8086处理器,处理器,AXDX还可以分为两还可以分为两个个8位寄存器使用。位寄存器使用。AHALAXBHBLBXCHCLCXDHDLDXSPBPSIDI累加器EDXECXEBXEAXESPEBPESIEDI基址寄存器计数寄存器数据寄存器堆栈指针基址指针源

48、变址寄存器目的变址寄存器201308 GLUT_C62(2)指令指针)指令指针EIP又叫指令指示器又叫指令指示器EIP是是32位的。位的。它用来存放下一条指令的偏移地址。它用来存放下一条指令的偏移地址。每取出一条指令,每取出一条指令,EIP会自动修改,指向下一条指令会自动修改,指向下一条指令EIP的低的低16位就是位就是8086处理器的处理器的IP,IP可以单独使用可以单独使用在保护模式下,处理器的指令指针是在保护模式下,处理器的指令指针是32位的位的EIP在实地址模式下,处理器只是用在实地址模式下,处理器只是用16位指令指针位指令指针IP201308 GLUT_C63(3)标志寄存器标志寄存

49、器EFLAGS标志寄存器标志寄存器EFLAGS为为32位。位。201308 GLUT_C6465.状态标志状态标志最基本的标志,有最基本的标志,有6个个用来记录指令执行结果的辅助信息用来记录指令执行结果的辅助信息加减运算和逻辑运算指令是主要设置它们加减运算和逻辑运算指令是主要设置它们其他有些指令的执行也会相应地设置它们其他有些指令的执行也会相应地设置它们处理器主要使用其中处理器主要使用其中5个构成各种条件,分支指令判断这些个构成各种条件,分支指令判断这些条件实现程序分支条件实现程序分支 OF11DF10IF9TF8SF7ZF605AF403PF211CF0这些标志与这些标志与8086相同。相同

50、。201308 GLUT_C65状态状态位位执行执行x+y后后执行执行X+Y后后CF最最高高位位D7向向前前有有进进位位,CF=1最最高高位位D15向向前前没没有有进进位位,CF=0PF1的个数为偶数的个数为偶数(6),PF=11的的 个个 数数 为为 奇奇 数数(5位位),PF=0AF低低4位向前有进位,位向前有进位,AF=1低低 4位位 向向 前前 没没 有有 进进 位位,AF=0ZF计算结果不为计算结果不为0,ZF=0计算结果不为计算结果不为0,ZF=0SF最高位最高位D7为为1,SF=1最高位最高位D15为为1,SF=1OFCF DF=0,没没有有溢溢出出,OF=0CF DF=1,结结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁