XCPU的寄存器和主存储器ppt课件_第1页
XCPU的寄存器和主存储器ppt课件_第2页
XCPU的寄存器和主存储器ppt课件_第3页
XCPU的寄存器和主存储器ppt课件_第4页
XCPU的寄存器和主存储器ppt课件_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4.2、80X86CPU的寄存器的寄存器和主存储器和主存储器4.2.1 80X86CPU的寄存器的寄存器4.2.2 80X86CPU的的主存储器主存储器返回返回4.2.1 80X86CPU的寄存器的寄存器1、 80X86CPU的寄存器分类的寄存器分类2、基本结构寄存器组、基本结构寄存器组返回返回1、 80X86CPU的寄存器分类的寄存器分类返回返回一般应用程序中只能访问(一般应用程序中只能访问(1)和()和(3),),(2)只能由系统程序访问,并且它的特权)只能由系统程序访问,并且它的特权级必须为零级。级必须为零级。(1)基本结构寄存器组)基本结构寄存器组(2)系统级寄存器组)系统级寄存器组(

2、3)浮点寄存器组)浮点寄存器组(1)基本结构寄存器组)基本结构寄存器组返回返回 通用寄存器通用寄存器指令指针寄存器指令指针寄存器标志寄存器标志寄存器段寄存器段寄存器EAXEBXECXEDXESPEBPESIEDIEIPEFLAGSFSGS80X86CPU基本结构寄存器组基本结构寄存器组(1)、通用寄存器)、通用寄存器8086/8088H 802868086/8088H 80286:1616位位8038680386及后继机型:及后继机型:3232位位8086/8088H 802868086/8088H 80286:A A、数据寄存器:、数据寄存器:AXAX、BXBX、CXCX、DXDX用来保存操

3、作数或运算结果等信用来保存操作数或运算结果等信息。息。AX累加器。使用频度最高,用于算累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。术、逻辑运算以及与外设传送信息等。 BX基址寄存器。常用于存放存储基址寄存器。常用于存放存储器地址。器地址。 CX计数器。一般作为循环或串操计数器。一般作为循环或串操作等指令中的隐含计数器。作等指令中的隐含计数器。 DX数据寄存器。常用来存放双字数据寄存器。常用来存放双字数据的高数据的高16位,或存放外设端口地址。位,或存放外设端口地址。B、地址寄存器:主要用于存放某个存、地址寄存器:主要用于存放某个存储单元的偏移地址。储单元的偏移地址。 SI:存

4、放数据段中某源操作数所在存:存放数据段中某源操作数所在存储单元相对段首址的偏移量。储单元相对段首址的偏移量。 DI:存放数据段中某目的操作数所在:存放数据段中某目的操作数所在存储单元相对段首址的偏移量。存储单元相对段首址的偏移量。 SP:用于存放当前堆栈段中栈顶单:用于存放当前堆栈段中栈顶单元的偏移地址;元的偏移地址; BP:用于存放堆栈段中某一存储单:用于存放堆栈段中某一存储单元的偏移地址。元的偏移地址。 8038680386及后继机型及后继机型:3232位的通用寄存器:位的通用寄存器:EAXEAX、EBXEBX、ECXECX、EDXEDX、ESPESP、EBPEBP、ESIESI、EDIE

5、DI; 可以用来存放不同宽度的数据;可以用来存放不同宽度的数据; 所有所有3232位寄存器既可以存放数据,也可以存位寄存器既可以存放数据,也可以存放地址;放地址; 每个寄存器的专用特性与每个寄存器的专用特性与8086/8088的对应寄的对应寄存器一致。存器一致。(2)系统级寄存器组)系统级寄存器组包括:包括:系统地址寄存器系统地址寄存器控制指针寄存器控制指针寄存器测试寄存器测试寄存器调试寄存器调试寄存器返回返回(3)浮点寄存器组)浮点寄存器组包括:包括:数据寄存器数据寄存器标记指针寄存器标记指针寄存器指令和数据指针寄存器指令和数据指针寄存器控制字寄存器控制字寄存器返回返回(2)指令指针寄存器和

6、标志寄存器)指令指针寄存器和标志寄存器指令指针指令指针IP:存放下一条指令的地址。:存放下一条指令的地址。在程序的执行过程中,每当从主存读在程序的执行过程中,每当从主存读取指令后,自动修改取指令后,自动修改IP的值,使的值,使IP内容内容为下一条指令起始字节所在单元的偏移为下一条指令起始字节所在单元的偏移量。量。返回本节返回本节指令队列指令队列 按先进先出的原则,存放从主存中读取按先进先出的原则,存放从主存中读取的指令。当的指令。当EU执行指令时,从指令队执行指令时,从指令队列中取最先进入队列的指令给以执行。列中取最先进入队列的指令给以执行。 8086:6个字节的指令队列(空出个字节的指令队列

7、(空出2个字个字节且无其它总线请求)节且无其它总线请求) 8088:4个字节的指令个字节的指令队列(空出(空出1个字个字节且无其它总线请求)节且无其它总线请求)标志寄存器: 存放条件标志、控制标志、系统标志位;条件标志、控制标志、系统标志位; 8086/8088H 802868086/8088H 80286:1616位位 8038680386及后继机型:及后继机型:3232位位 1条件标志条件标志 2控制标志控制标志 3、系统标志位、系统标志位1条件标志:条件标志:主要用于保存一条指令执行主要用于保存一条指令执行后,后,CPU所处状态信息及运算结果的特征。所处状态信息及运算结果的特征。 (1)

8、进位标志)进位标志CF(2)零标志)零标志ZF(3)符号标志)符号标志SF(4)溢出标志)溢出标志 OF (5)奇偶标志)奇偶标志 PF (6)辅助进位标志)辅助进位标志AF2控制标志控制标志 (1)方向标志)方向标志DF返回本节返回本节3系统标志系统标志 可以用于可以用于I/O、可屏蔽中断、程序调试、可屏蔽中断、程序调试、任务切换和系统工作发生等的控制。任务切换和系统工作发生等的控制。返回本节返回本节(1)跟踪标志)跟踪标志TF(2)中断允许标志)中断允许标志IF(3)I/O特权级标志特权级标志(4)嵌套任务()嵌套任务(5)恢复)恢复(6)虚拟)虚拟8086模式位模式位(7)对准检查方式位

9、)对准检查方式位(8)虚拟中断)虚拟中断(9)虚拟中断未决标志)虚拟中断未决标志(10)标识标志)标识标志返回本节返回本节D15D0 OF DF IF TF SF ZF AF PF CF进进借借位位标标志志奇奇偶偶标标志志半半进进借借位位标标志志零零标标志志符符号号标标志志单单步步中中断断中中断断允允许许方方向向标标志志溢溢出出标标志志1-有进、借位有进、借位0-无进、借位无进、借位1-低低8位有偶数个位有偶数个10-低低8位有奇数个位有奇数个11-低低4位向高位向高4位有进、借位位有进、借位0-低低4位向高位向高4位无进、借位位无进、借位1-结果为结果为00-结果不为结果不为0(3)、段寄存

10、器)、段寄存器 段寄存器:用来确定该段在内存中段寄存器:用来确定该段在内存中的起始地址。的起始地址。 CS、DS、ES、SS、FS、GS4.2.2 80X86的主存储器的主存储器返回返回1、存储器的地址和内容存储器的地址和内容2、实模式存储器寻址、实模式存储器寻址3、保护模式存储器寻址、保护模式存储器寻址4 、808X6CPU逻辑地址的来源逻辑地址的来源1、存储器的地址和内容存储器的地址和内容1)在存储器里以字节为单位存储信息。)在存储器里以字节为单位存储信息。2)每一个字节单元给予一个唯一的编号,)每一个字节单元给予一个唯一的编号,即存储单元地址(物理地址)。地址从即存储单元地址(物理地址)

11、。地址从0开始编号,顺序地每次加开始编号,顺序地每次加1,机器里以无,机器里以无符号二进制整数表示,书写格式为符号二进制整数表示,书写格式为16进进制数。制数。3)8086/8088的地址总线为的地址总线为20位,可寻址空间位,可寻址空间为为00000HFFFFFH。 80286的地址总线为的地址总线为24位,可寻址空间为位,可寻址空间为000000HFFFFFFH。 80386、80486和和Pentium的地址总线为的地址总线为32位,位,可寻址空间为可寻址空间为00000000HFFFFFFFFH。 Pentium Pro 和和Pentium的地址总线为的地址总线为36位,位,可寻址空间

12、为可寻址空间为000000000HFFFFFFFFFH。4)一个存储单元中存放的信息称为该存)一个存储单元中存放的信息称为该存储单元的内容。(储单元的内容。(0004H)=78H5)一个字数据占用两个相邻的存储单元。)一个字数据占用两个相邻的存储单元。采用采用“低对低、高对高低对低、高对高”的原则。低字的原则。低字节所在存储单元的地址作为该字数据的节所在存储单元的地址作为该字数据的单元地址。双字、单元地址。双字、4字单元的存放方法与字单元的存放方法与此类似。此类似。主存主存00000H10002H10001H10000H10003H12H34H56H78H(10001H)= 34H(10002

13、H)= 56H(10000H)= 12H(10003H)= 78H(10000H)= 3412H(10001H)= 5634H(10002H)= 7856H字字 节节 单单 元元 字字 单单 元元(34560H)= 34H(34561H)= 12H(34560H)= 1234H(34561H)= 5612H例(例(0004H)=5678H(0004H)=12345678H(X)=Z 存储单元存储单元:主存由若干个存储单元组成。:主存由若干个存储单元组成。每个存储单元内存放每个存储单元内存放8位二进制数。位二进制数。 存储单元地址存储单元地址 :8086系统中,为了标识系统中,为了标识 和存取每

14、一个存储单元,给每个存储单和存取每一个存储单元,给每个存储单元规定一个编号,这就是存储单元地址。元规定一个编号,这就是存储单元地址。从从 0 开始顺次编号。开始顺次编号。 存储单元的内容存储单元的内容 :一个存储单元中存放一个存储单元中存放的信息称为该存储单元的内容。的信息称为该存储单元的内容。 2、实模式存储器寻址实模式存储器寻址(1)存储器的)存储器的分段:分段: 8086/8088只能在实模式下工作外,其他的只能在实模式下工作外,其他的CPU均可在实模式或保护模式下工作。均可在实模式或保护模式下工作。实模式下允许的最大寻址空间为实模式下允许的最大寻址空间为 1MB。 8086/8088的

15、地址总线为的地址总线为20位,用位,用20位无符号位无符号二进制数表示存储单元的地址二进制数表示存储单元的地址 (5位十六进制位十六进制数表示数表示,即即00000HFFFFFH)。十六进制地址十六进制地址二进制地址二进制地址存储单元存储单元00000H00001H00002H00003HFFFFEHFFFFFH0000,0000,0000,0000,00000000,0000,0000,0000,00010000,0000,0000,0000,00030000,0000,0000,0000,00021111,1111,1111,1111,11101111,1111,1111,1111,111

16、1708086/8088主存储器主存储器16位字长的机器里如何提供位字长的机器里如何提供20位地址?位地址?将将1MB1MB主存分为若干段;主存分为若干段;3、16位的段寄存器中存放该段在内存中位的段寄存器中存放该段在内存中的起始地址的高的起始地址的高16位,称为段基值。位,称为段基值。机器机器将段起始地址的最低四位设置为将段起始地址的最低四位设置为0 0;(段;(段基址为基址为2020位)位)2 2、每个段的长度不同,但不能超过、每个段的长度不同,但不能超过64K64K字字节。(段内地址为节。(段内地址为16 16 位);位); 段内地址(偏移地址):一个主存段内地址(偏移地址):一个主存单

17、元与所在段的段基址之间的字节单元与所在段的段基址之间的字节距离,计算得到或由距离,计算得到或由IPIP提供。提供。 CPU 访问某个主存单元内容时由段访问某个主存单元内容时由段寄存器给出该单元所在段的段基值,寄存器给出该单元所在段的段基值,并给出该单元在该段内的偏移量。段并给出该单元在该段内的偏移量。段基值和段内的偏移量构成物理地址。基值和段内的偏移量构成物理地址。8086/8088CPU中有一个地址加法器,它中有一个地址加法器,它将段寄存器提供的段基值自动左移将段寄存器提供的段基值自动左移4位,位,然后与然后与16位的偏移地址相加,形成。物位的偏移地址相加,形成。物理地址理地址 = 段基值段

18、基值 * 16 +偏移地址。偏移地址。段寄存器值段寄存器值偏移量偏移量+物理地址物理地址16位位4位位16位位20位位存储器物理地址的计算方法存储器物理地址的计算方法 每个段寄存器用来确定该段在内存中的每个段寄存器用来确定该段在内存中的起始地址。起始地址。(2 2)段寄存器)段寄存器 808680286:CS、DS、SS、ES。 8038680386及后继机型:及后继机型: CS、DS、SS、ES、FS、GS。 80X86中段寄存器与其对应存放偏移地中段寄存器与其对应存放偏移地址的寄存器之间有一种默认的组合关系。址的寄存器之间有一种默认的组合关系。1)CS:存放代码段的段首址的高存放代码段的段

19、首址的高16位。位。代码段中用来存放程序的指令序代码段中用来存放程序的指令序列。列。2)DS:存放数据段的段首址的高存放数据段的段首址的高16位。位。数据段中存放程序的有关数据。数据段中存放程序的有关数据。3)SS:存放堆栈段的段首址的高存放堆栈段的段首址的高16位。堆位。堆栈段用于存放按后进先出顺序存取栈段用于存放按后进先出顺序存取的信息。的信息。4)DS:存放数据段的段首址的高存放数据段的段首址的高16位。附位。附加段中常存放运算结果和辅助数据。加段中常存放运算结果和辅助数据。8086存储器的段结构存储器的段结构 把把1M字节的存储器分为任意个段。字节的存储器分为任意个段。一个逻辑段是存储

20、器中可独立寻址的一个一个逻辑段是存储器中可独立寻址的一个逻辑单位,每个段的长度不超过逻辑单位,每个段的长度不超过64K字节。字节。 各段起始单元的物理地址,称为段基址各段起始单元的物理地址,称为段基址(段首址)每个段基址为(段首址)每个段基址为20位,低四位都位,低四位都为为0,能被,能被16整除。整除。1)段的大小按实际需要确定,最大为)段的大小按实际需要确定,最大为64K,实,实 际应用中可能小于际应用中可能小于64K。2)不同的段可以是)不同的段可以是相邻的、间隔的、或部分重、间隔的、或部分重叠的或完全重叠或交叉的。叠的或完全重叠或交叉的。3)段的实体不能重叠。)段的实体不能重叠。4)C

21、PU可以通过四个段寄存器访问四个不同的可以通过四个段寄存器访问四个不同的当前段当前段。注意事项:注意事项:【例】各独立段的分配情况示例。【例】各独立段的分配情况示例。 设设 CS=B000H、DS=1CDEH、 SS=4200H、ES=0150H, 它们分别为代码段、数据段、堆栈它们分别为代码段、数据段、堆栈段和附加段的段基值。自每个段首段和附加段的段基值。自每个段首址开始,各段均占址开始,各段均占64KB的范围,各的范围,各段之间互不重叠。如图所示。段之间互不重叠。如图所示。【例】各段相邻接情况示例。【例】各段相邻接情况示例。 设设CS=0200H、DS=0400H、SS=0480H,这样代

22、码段、数据段和,这样代码段、数据段和堆栈段的物理首地址分别为堆栈段的物理首地址分别为02000H、04000H和和04800H。其中代码段占。其中代码段占8KB地址空间,数据段占地址空间,数据段占2KB,堆栈,堆栈段占段占256B,SP=0100H。如图。如图1.6所示。所示。 图图1.6 各段邻接存储单元分配图各段邻接存储单元分配图3、保护模式存储器寻址、保护模式存储器寻址引入保护模式的原因:引入保护模式的原因:实模式下的寻址空间太小;实模式下的寻址空间太小;它使微机系统能支持多任务处理;它使微机系统能支持多任务处理;多任务处理:多个应用程序在一台计算多任务处理:多个应用程序在一台计算机上同

23、时运行,而且它们之间必须相互隔机上同时运行,而且它们之间必须相互隔离,使应用程序中缺陷或故障不会破坏系离,使应用程序中缺陷或故障不会破坏系统农业不会影响其它应用程序的运行。统农业不会影响其它应用程序的运行。!保护模式寻址支持虚拟存储器特性;!保护模式寻址支持虚拟存储器特性;实模式:实模式:逻辑地址(逻辑地址(程序)程序)物理地址物理地址(执行指令时计算)(执行指令时计算)逻辑地址逻辑地址= 段基值:偏移地址段基值:偏移地址保护模式:保护模式:逻辑地址逻辑地址(程序)(程序)物理地址物理地址(间接方法)(间接方法)逻辑地址逻辑地址=段选择器:偏移地址段选择器:偏移地址2、段基值再和偏移地址相加,

24、从而求得线、段基值再和偏移地址相加,从而求得线性地址;性地址;1、段选择器存放在段寄存器中,它不能直、段选择器存放在段寄存器中,它不能直接确定段基值,而由接确定段基值,而由CPU通过一定的方通过一定的方法求得相应的段基值;法求得相应的段基值;3、线性地址再通过分页部件转换成物理地、线性地址再通过分页部件转换成物理地址。址。 段选择器是通过描述符表取得描述符,段选择器是通过描述符表取得描述符,从而得到段基址。从而得到段基址。(2)描述符)描述符描述符有描述符有8个字节长,用来说明段的起个字节长,用来说明段的起始地址、大小、段在存储器中的位置及始地址、大小、段在存储器中的位置及有关的控制和状态信息

25、。有关的控制和状态信息。Base(B15B0)Limit(l15l0)0P DPL S TYPEABase(B23B16)311516080286描述符描述符段基址段基址(Base):用来指定段的起始地址。:用来指定段的起始地址。 段界限段界限(Limit):用来存放该段的段长度。:用来存放该段的段长度。访问权(访问权(Access Rights)附加字段附加字段段基址(段基址(Base): 用来指定段的起始地址。用来指定段的起始地址。80286的段基址为的段基址为24位,段可以从位,段可以从16MB存储器的任何地址开始;存储器的任何地址开始;80386及以上处理器的段基址为及以上处理器的段基

26、址为32位,位,段可以从段可以从4GB存储器的任何地址开始;存储器的任何地址开始;段界限段界限(Limit):用来存放该段的段长度。用来存放该段的段长度。 80286的段界限为的段界限为16位,段长可从位,段长可从1B到到64KB; 80386及以上处理器的段界限为及以上处理器的段界限为20位,同位,同时段描述符中又给出了一个粒度位时段描述符中又给出了一个粒度位G。 G=0时:时:段长的粒度单位为字节,段界限可从段长的粒度单位为字节,段界限可从1B到到1MB;步距为;步距为1B; G=1时:时:段长的粒度单位为页,每页为段长的粒度单位为页,每页为4KB。段。段界限可从界限可从1*4KB到到1M

27、*4KB;即从;即从4KB到到4GB,步距为,步距为4KB;例:段起始于例:段起始于F00000H单元结束于单元结束于F000FFH单元:单元: 80286的段基址为的段基址为F00000H,界限为,界限为00FFH; 80386及后继极型段基址为及后继极型段基址为00F00000H,界限为界限为000FFH,G位为位为0;访问权(访问权(Access Rights):有):有8位,用位,用来说明该段在系统中的功能,并给出访来说明该段在系统中的功能,并给出访问该段的一些控制信息。问该段的一些控制信息。PDPLSED/CW/RAE706 54321附加字段:附加字段:80386及后继机型中存在。

28、及后继机型中存在。包括包括G、D/B、0和和AVL共共4位。位。如何根据段选择器找到描述符?如何根据段选择器找到描述符?(3)段选择器和描述符表)段选择器和描述符表描述符表存放在存储器中,主要有描述符表存放在存储器中,主要有4种描述种描述符表:符表:全局描述符表全局描述符表GDT局部描述符表局部描述符表LDT中断描述符表中断描述符表IDT任务状态段任务状态段TSS描述符表都存放在存储器中,每个表分别构描述符表都存放在存储器中,每个表分别构成一个成一个64KB长的段,表中可存放长的段,表中可存放8K个描述个描述符。符。GDT中的描述符所指定的段可用于所有程中的描述符所指定的段可用于所有程序;序;

29、LDT中的描述符所指定的段通常只用于一中的描述符所指定的段通常只用于一个用户程序(或称一个任务)。个用户程序(或称一个任务)。在整个系统里只有一个在整个系统里只有一个GDT和一个和一个IDT;二二LDT可以有多个,他们分别对应于不同可以有多个,他们分别对应于不同的任务。的任务。段选择器存放在段寄存器中,段选择器存放在段寄存器中,16位长。位长。其格式如下:其格式如下:INDEXTIRPL15 3021INDEX:索引值,即描述符表索引值,:索引值,即描述符表索引值,给出所选描述符在描述符表中的地址。共给出所选描述符在描述符表中的地址。共13位,可从表中位,可从表中8K个描述符中选取一个。个描述

30、符中选取一个。为了提高保护模式存储器寻址的速度,为了提高保护模式存储器寻址的速度,CPU中设置了中设置了6个个64位的描述符寄存器,位的描述符寄存器,用来存放对应段的描述符。用来存放对应段的描述符。1、从段寄存器中读取段选择器的值;、从段寄存器中读取段选择器的值;2、硬件自动地根据段选择器的索引值,从系、硬件自动地根据段选择器的索引值,从系统描述符表中取出一个统描述符表中取出一个8字节的描述符,装字节的描述符,装入到相应的段描述符寄存器中;入到相应的段描述符寄存器中;3、以后每当出现对该段的访问时,就直接使、以后每当出现对该段的访问时,就直接使用相应的段描述符寄存器中段基值计算线用相应的段描述符寄存器中段基值计算线性地址,而不需要在内存中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论