第2章 微处理器及指令系统-wy01_第1页
第2章 微处理器及指令系统-wy01_第2页
第2章 微处理器及指令系统-wy01_第3页
第2章 微处理器及指令系统-wy01_第4页
第2章 微处理器及指令系统-wy01_第5页
已阅读5页,还剩173页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章 微处理器和指令系统微处理器和指令系统n2010.9.32-22.1.12.1.1 8086/8088 8086/8088 微处理器微处理器2.1.2 80486 2.1.2 80486 微处理器微处理器2.1.3 Pentium 2.1.3 Pentium 微处理器微处理器(80586)(80586)2.1.4 Pentium Pro 2.1.4 Pentium Pro 微处理器微处理器2.1.5 Pentium 2.1.5 Pentium 微处理器微处理器2.1.6 Pentium 2.1.6 Pentium 微处理器微处理器2.1.7 Pentium 4 2.1.7 Pent

2、ium 4 微处理器微处理器2.1 2.1 IntelIntel系列微处理器概述系列微处理器概述2-32.1.1 2.1.1 8086/8088 8086/8088 微处理器微处理器 8086 8086是是19781978年推出的全年推出的全1616位微处理器位微处理器, 8088, 8088是是19781978年推出的准年推出的准1616位微处理器。二者除外数据总线位数(位微处理器。二者除外数据总线位数(80868086为为1616位,位,80888088为为8 8位)及与此相关的部分逻辑稍有差别外位)及与此相关的部分逻辑稍有差别外, ,内部结构和基本性能相同内部结构和基本性能相同, ,指令

3、系统完全兼容。指令系统完全兼容。 在在8086/80888086/8088的设计中,引入了两个重要的结构概念:的设计中,引入了两个重要的结构概念: 指令流水线指令流水线 存储器分段存储器分段 这两个概念在以后升级的这两个概念在以后升级的IntelIntel系列微处理器中一直被沿用和发系列微处理器中一直被沿用和发展。正是这两个概念的引入,使展。正是这两个概念的引入,使8086/80888086/8088比原来的比原来的8 8位位MPUMPU在运行速在运行速度、处理能力和对存储空间的访问等性能方面有很大提高。度、处理能力和对存储空间的访问等性能方面有很大提高。2-42.2.1 8086/80881

4、 8086/8088微处理器微处理器内部结构内部结构指令流水线指令流水线存储器分段存储器分段 8086 8086是全是全1616位微处理器,位微处理器,80888088是准是准1616位微处理器。二位微处理器。二者除了外数据总线位数及与此相关的部分逻辑稍有差别外,者除了外数据总线位数及与此相关的部分逻辑稍有差别外,内部结构和基本性能相同,指令系统完全兼容。内部结构和基本性能相同,指令系统完全兼容。 2-51. 1.内部结构内部结构2. 2.1.1 8086/80881.1 8086/8088微处理器微处理器2020位位 ABABEUEU控制电路控制电路总线总线控制电路控制电路通用寄存器通用寄存

5、器累加器累加器基址寄存器基址寄存器计数寄存器计数寄存器数据寄存器数据寄存器堆栈指针堆栈指针基址指针基址指针目的变址目的变址源变址源变址指针寄存器指针寄存器变址寄存器变址寄存器地址加法器地址加法器运算暂存器运算暂存器ALUALU标志寄存器标志寄存器指令指针指令指针内部暂存器内部暂存器指令队列指令队列总线接口单元总线接口单元( (BIU)BIU)执行单元执行单元( (EU)EU)外部总线外部总线8086/80888086/8088DBDB8088:88088:8位位8086:168086:16位位CSCSDSDSSSSSESESIPIP1 2 3 4 5 61 2 3 4 5 68 8位位8088

6、808880868086AX AH ALAX AH ALBX BH BLBX BH BLCX CH CLCX CH CLDX DH DL DX DH DL SPSPBPBPDIDISISIALU DBALU DB1616位位2-6 8086 CPU 8086 CPU内部指令执行流程内部指令执行流程段寄存器段寄存器CS CS 程序指针寄存器程序指针寄存器IP IP 内容经过地址加法器形成内容经过地址加法器形成20 20 位地址;位地址;由由CPUCPU内部地址总线内部地址总线AB AB , 经过总线地址控制电路,经过总线地址控制电路, 向外部向外部总线发读取指令的的控制信号,总线发读取指令的的控

7、制信号, 外部总线开始总线操作;外部总线开始总线操作;读取指令送入到指令队列中,读取指令送入到指令队列中, 等待执行;等待执行;EUEU单元从队列中去一条指令到单元从队列中去一条指令到EUEU控制电路,译码指令需要控制电路,译码指令需要做的系列操作,包括寄存器的内容送累加器;做的系列操作,包括寄存器的内容送累加器;操作结果经过内部数据总线,操作结果经过内部数据总线, 存放到寄存器或内部暂存器,存放到寄存器或内部暂存器,同时置同时置FRFR;1. 1.根据根据DSDS寄存器的内容,寄存器的内容, 及指令寻址方式产生的偏移量,经及指令寻址方式产生的偏移量,经过地址加法器过地址加法器 , 形成数据保

8、存地址形成数据保存地址 , 并送到外部总线。并送到外部总线。CPU CPU 发写总线操作命令,将暂存器的内容,发写总线操作命令,将暂存器的内容, 通过总线,通过总线, 写写到指定内存单元。到指定内存单元。2-72.2.指令流水线指令流水线 指令队列的存在使指令队列的存在使EUEU和和BIUBIU并行工作并行工作, ,取指令和分析、取指令和分析、执行指令操作可重叠进行,形成了两级指令流水线结构,执行指令操作可重叠进行,形成了两级指令流水线结构,减少了减少了CPUCPU等待时间,提高了等待时间,提高了CPUCPU的利用率,加快了整机的利用率,加快了整机运行速度,降低了对存储器存取速度的要求。运行速

9、度,降低了对存储器存取速度的要求。BIUBIUEUEU 8086/8088 8086/8088的指令的指令“流水流水”操作操作取指令取指令1 1取指令取指令2 2译码译码1 1取数据取数据1 1执行执行1 1取指令取指令3 3译码译码2 2存结果存结果1 1执行执行2 2取指令取指令4 4译码译码3 3取指令取指令5 5等待等待2-83.3.存储器分段存储器分段8086物理地址(1M=220)2-9 将将1 1MBMB的物理存储空的物理存储空间分成若干个逻辑段间分成若干个逻辑段, ,每每段大小为段大小为6464KBKB。 64KB30000H( (段基址段基址) ) 段的起始单元地址段的起始单

10、元地址叫叫段基址段基址,存放在段寄,存放在段寄存器中。通过存器中。通过4 4个段寄个段寄存器,存器,CPUCPU每次可同时每次可同时对对4 4个段进行寻址。个段进行寻址。内存内存 00000H00001H00002H00003HFFFFFH2-10 分段方式不分段方式不唯一,各段之间唯一,各段之间可以连续、分离、可以连续、分离、部分重叠或完全部分重叠或完全重叠,这主要取重叠,这主要取决于对各个段寄决于对各个段寄存器的预置内容。存器的预置内容。1000H2000H3100H3100H代码段代码段(64KB)堆栈段堆栈段(64KB)数据段与数据段与附加数据附加数据段重叠段重叠(64KB)CS100

11、00H20000H31000HSSDSES1FFFFH2FFFFH40FFFH 存储器分段结构示例存储器分段结构示例2-112-122-13 物理地址物理地址是是1 1MBMB存储存储空间中的某一单元地址,空间中的某一单元地址,用用2020位地址码表示位地址码表示, ,CPUCPU访问存储器时,地址总访问存储器时,地址总线上送出的就是物理地线上送出的就是物理地址。址。 逻辑地址逻辑地址在编程时在编程时采用,由段基址和偏移采用,由段基址和偏移地址组成,两者均为地址组成,两者均为1616位。位。内存内存20000H20A00H0A00H物理地址物理地址20A00H逻辑地址逻辑地址2000 物理地址

12、和逻辑地址物理地址和逻辑地址2-14逻辑地址与逻辑地址与2020位物理地址的变换关系:位物理地址的变换关系: 物理地址物理地址= =段基址段基址16+16+偏移地址偏移地址偏移地址偏移地址段基址段基址段基址段基址 000000002020位物理地址位物理地址逻辑地址逻辑地址15 0 15 015 0 15 0 左移四位左移四位19 019 0地址地址加法器加法器 逻辑逻辑地址与物理地址的变换地址与物理地址的变换2-15【例】 若数据段寄存器DS2100H,试确定该存储区段物理地址的范围。 一个逻辑段的最大容量为64KB; 第一个存储单元的偏移地址为0; 最后一个存储单元的偏移地址为FFFFH。

13、 该数据区段由低至高相应存储单元的偏移地址为: 0000H FFFFH。 存储区的首地址 DS16偏移地址 2100H160000H21000H存储区的末地址DS16偏移地址 2100H16FFFFH 30FFFH2-16 2.2.2 Pentium2 Pentium微处理器微处理器2.2.2.1 2.1 内部结构与外部引脚内部结构与外部引脚2.2.2.2 2.2 内部寄存器内部寄存器2.2.2.3 Pentium2.3 Pentium的四种工作方式的四种工作方式2-17 PentiumPentium在结构上由如下功能部件组成:在结构上由如下功能部件组成: 整数执行单元整数执行单元 浮点单元浮

14、点单元 指令指令CacheCache和数据和数据CacheCache 指令预取单元指令预取单元 指令译码单元指令译码单元 地址转换与管理单元地址转换与管理单元 总线接口单元总线接口单元 控制单元控制单元 这些功能部件除地址转换与管理单元与这些功能部件除地址转换与管理单元与80386/8048680386/80486保持兼容外,其他都进行了重新设计。保持兼容外,其他都进行了重新设计。 2.2.2.1 2.1 内部结构和外部引脚内部结构和外部引脚2-181. 内部结构内部结构地址地址转换转换与与存储存储管理管理单元单元APICDP逻辑逻辑控制控制ROM浮点单元浮点单元8KB指令指令高速缓存高速缓存

15、TLB预取预取地址地址指令预取单元指令预取单元指令译码单元指令译码单元总线总线单元单元8KB数据数据高速缓存高速缓存TLB控制单元控制单元地址生成地址生成U流水线流水线地址生成地址生成V流水线流水线整数寄存器组整数寄存器组ALUU流水线流水线ALUV流水线流水线控制控制寄存器组寄存器组加法加法除法除法乘法乘法桶形移位器桶形移位器控制控制指令指令指针指针分支检验分支检验与目标地址与目标地址32位位地址地址总线总线323232326464位数位数据总线据总线数据数据控制控制控制控制64位位数据数据总线总线32位地位地址总线址总线分支目标分支目标缓冲器缓冲器32323280801)1)总线接口单元总

16、线接口单元 主要用于管理访问外主要用于管理访问外部存储器和部存储器和 I/OI/O端口必端口必须的地址、数据和控制须的地址、数据和控制总线,完成预取指令、总线,完成预取指令、读读/ /写数据等总线操作。写数据等总线操作。2) 2) 整数执行单元整数执行单元 由由“U”U”和和“V”V”两条指两条指令流水线构成超标量流水令流水线构成超标量流水线结构,其中每条流水线线结构,其中每条流水线都有自己的都有自己的ALUALU、 地址生地址生成逻辑和成逻辑和CacheCache接口。接口。3)3)预取缓冲单元预取缓冲单元 预取缓冲单元在总线预取缓冲单元在总线接口单元空闲时,负责接口单元空闲时,负责提前去内

17、存或指令提前去内存或指令CacheCache预取指令。其指令预取预取指令。其指令预取缓冲器在前一条指令执缓冲器在前一条指令执行结束之前可以预取多行结束之前可以预取多达达9494个字节的指令代码。个字节的指令代码。4)4)指令译码单元指令译码单元 将预取的指令译成将预取的指令译成PentiumPentium可以执行的控制信号并送控可以执行的控制信号并送控制单元。对绝大多数指令来制单元。对绝大多数指令来说说, ,PentiumPentium微处理器可以做微处理器可以做到每个时钟周期以并行方式到每个时钟周期以并行方式完成两条指令的译码操作。完成两条指令的译码操作。 5)5)控制单元控制单元 负责解释

18、来自指令译码负责解释来自指令译码单元的指令字和控制单元的指令字和控制ROMROM的微代码。控制部件的输的微代码。控制部件的输出直接控制两条指令流水出直接控制两条指令流水线和浮点单元。线和浮点单元。 6)6)地址转换与存储管理单元地址转换与存储管理单元 Pentium Pentium的地址转换与存储的地址转换与存储管理单元与管理单元与80386/8048680386/80486保持保持完全兼容,由分段和分页部完全兼容,由分段和分页部件组成。件组成。PentiumPentium除继续支持除继续支持4 4KBKB大小的页面外,还允许使大小的页面外,还允许使用高达用高达4 4MBMB的页面,从而减少的

19、页面,从而减少了页面切换的频率,并加快了页面切换的频率,并加快了某些应用程序的执行。了某些应用程序的执行。 7)7)独立的指令独立的指令CacheCache和和 数据数据CacheCache PentiumPentium片内有两个片内有两个8 8KBKB的超高速缓存器,的超高速缓存器,一个是指令一个是指令CacheCache,一一个是数据个是数据CacheCache。指令指令和数据分别使用不同的和数据分别使用不同的CacheCache,使使PentiumPentium中数中数据和指令的存取减少了据和指令的存取减少了冲突,提高了性能。冲突,提高了性能。 8) 8) 浮点运算单元浮点运算单元2-1

20、9基本寄存器基本寄存器系统级寄存器系统级寄存器调试和调试和模型专用模型专用寄存器寄存器 浮点寄存器浮点寄存器PentiumPentium的内部寄存器,按功能可分为的内部寄存器,按功能可分为4 4类:类:2. 2.2.2 Pentium2.2 Pentium内部寄存器内部寄存器2-20标志寄存器标志寄存器指令指针寄存器指令指针寄存器EFLAGSEFLAGSFLAGSFLAGSEIPEIPIPIP31 15 031 15 031 15 031 15 031 16 15 7 031 16 15 7 0通通 用用 寄寄 存存 器器EAX EAX AH AH AX AX ALALEBX EBX BH B

21、H BX BX BLBLECX ECX CHCH CX CX CLCLEDX EDX DHDH DX DX DLDLEDI DIEDI DIESI SIESI SIEBP BPEBP BPESP SPESP SP1. 1. 基本寄存器基本寄存器选择器选择器CSCSSSSSDSDSESESFSFSGSGS15 0 63 015 0 63 0描述符高速缓存器描述符高速缓存器段段 寄寄 存存 器器 EIP EIP用于保存下一条待用于保存下一条待预取指令相对于代码基址预取指令相对于代码基址的偏移量。它的低的偏移量。它的低1616位也位也可单独访问,称之为可单独访问,称之为IPIP。2-21 标志寄存器

22、位定义标志寄存器位定义C CF FEFLAGSEFLAGSFLAGSFLAGS31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0A AC CV VMMR RF F0 0N NT TIOPLIOPLO OF FD DF FIFIFT TF FS SF FZ ZF F0 0A AF F0 0P P F F0 0X

23、 X 对准检查标志对准检查标志X X 虚拟虚拟8686模式标志模式标志X X 恢复标志恢复标志X X 嵌套标志嵌套标志X X 特权级标志特权级标志S S 溢出标志溢出标志C C 方向标志方向标志X X 中断允许标志中断允许标志X X 自陷标志自陷标志S S 符号标志符号标志S S 零标志零标志S S 辅助进位标志辅助进位标志S S 奇偶标志奇偶标志S S 进位标志进位标志注注: :S S表示状态标志表示状态标志, ,X X表示系统标志表示系统标志, ,C C表示控制标志表示控制标志X X 虚拟中断标志虚拟中断标志X IDX ID标志标志X X 虚拟中断挂起虚拟中断挂起0 0 0 0 0 0 0

24、 0 0 0V VIFIFV VIPIPI ID D2-22选择器选择器描述符高速缓存器描述符高速缓存器CSSSDSESFSGS15 0 63 015 0 63 0段段寄寄存存器器 段寄存器段寄存器PentiumPentium有有6 6个段寄存器:个段寄存器:CS-CS-指明当前的代码段指明当前的代码段SS-SS-指明当前的堆栈段指明当前的堆栈段DSDSESESFS FS GSGS决定程序使用决定程序使用存储器区域块存储器区域块指明当前的指明当前的4 4个数据段个数据段编程者可直编程者可直接访问的接访问的编程者不能编程者不能访问的访问的段选择符段选择符段描述符段描述符2-23实地址方式和虚拟实

25、地址方式和虚拟80868086方式下相同,段的长度固方式下相同,段的长度固定为定为6464KB,KB,段选择器就是段寄存器段选择器就是段寄存器, ,它保存的是逻它保存的是逻辑段基址的高辑段基址的高1616位,将它的内容左移位,将它的内容左移4 4位即可得到位即可得到实际段基址,实际段基址,而不必使用描述符高速缓存器。而不必使用描述符高速缓存器。在保护虚地址方式下,在保护虚地址方式下,段的长度可以在段的长度可以在1 1字节到字节到4 4G G字节之间变化字节之间变化;为了描述每个段的基址、属性;为了描述每个段的基址、属性和边界,为每个段定义了一个和边界,为每个段定义了一个描述符描述符。操作系统。

26、操作系统使用的各任务公用的段描述符放在一起构成使用的各任务公用的段描述符放在一起构成全局全局描述符表描述符表GDTGDT;某个任务专用的段描述符放在一某个任务专用的段描述符放在一起构成起构成局部描述符表局部描述符表LDTLDT。PentiumPentium段的定义与段的定义与80868086有所不同:有所不同:2-24 描述符与描述符表描述符与描述符表GDTLDT描述符描述符0描述符描述符1 1描述符描述符0 0描述符描述符1 1GDTRGDTRLDTRLDTR+0+0+1+1+2+2+3+3+4+4+5+5+6+6+7+7段边界段边界7 70 0位位段边界段边界15158 8位位段基址段基址

27、7 70 0位位段基址段基址15158 8位位段基址段基址23231616位位属性属性段边界段边界4 4位位段基址段基址31312424位位属性属性描述符格式描述符格式20位段边界、32位段基址 、12位属性。2-25 段的选择符段的选择符 为了说明一个段的描述符在哪个表中,表的序号是为了说明一个段的描述符在哪个表中,表的序号是多少以及特权的高低,为每个段定义了一个多少以及特权的高低,为每个段定义了一个1616位的选择位的选择符,符,存于段选择器中,存于段选择器中,其格式为:其格式为:描述符索引描述符索引段描述符段描述符iLDTGDT0 1INDEX TI RPLb15 b3 b2 b1 b0

28、表指示符表指示符描述符描述符i(0 089118911)段描述符段描述符0描述符描述符000 00 特权级特权级0 001 01 特权级特权级1 110 10 特权级特权级2 211 11 特权级特权级3 3请求特权级请求特权级2-26 将一个选择符装入一个段选择器时,处理器将自动将一个选择符装入一个段选择器时,处理器将自动从从GDTGDT或或LDTLDT中找到其对应的描述符装入相应描述符高速中找到其对应的描述符装入相应描述符高速缓存器中。缓存器中。描述符描述符6464基址基址物理存储器物理存储器LDTLDTDSDS数据段数据段0040H界限界限15 3 215 3 2描述符高速缓存器描述符高

29、速缓存器DSDS选择符选择符63 063 0属性属性装入装入DSDS段描述符段描述符TI=1TI=1指示指示LDTLDT1313位索引指向位索引指向LDTLDT的第的第6464个段描述符个段描述符13131010 以后,每当访问存储器时,与以后,每当访问存储器时,与所用段相关所用段相关的段描述符高的段描述符高速缓冲器就速缓冲器就自动参与该次存储器访问操作自动参与该次存储器访问操作。转换关系。转换关系: 线性地址线性地址 = = 段描述符高速缓存器中段基址段描述符高速缓存器中段基址 + + 偏移地址偏移地址 2-27关于保护方式下段寄存器的总结:关于保护方式下段寄存器的总结: 1. 1.段寄存器

30、段寄存器 = = 段选择器段选择器 + + 描述符高速缓存器描述符高速缓存器 注意:段选择器存放的内容是注意:段选择器存放的内容是段选择符段选择符。 2. 2.段选择符的内容与程序或任务关联(段选择符的内容与程序或任务关联(INDEX)INDEX),由操作系统,由操作系统 自动调入。自动调入。 3. 3.当一个选择符装入一个选择器(当一个选择符装入一个选择器(CS CS 、ESES、 DS .)DS .)时,系统时,系统 自动形成段选择符对应的描述符高速缓存,指出段选择符对自动形成段选择符对应的描述符高速缓存,指出段选择符对 应实际物理段的具体特点。支持数据的读写过程完成应实际物理段的具体特点

31、。支持数据的读写过程完成 。 4. 4. 段描述符段描述符描述一个段的基本特性,为数据读写提供了定位支持。描述一个段的基本特性,为数据读写提供了定位支持。 最后存放在描述符高速缓存中。最后存放在描述符高速缓存中。5. 5. 处理器管理的所有描述符在处理器管理的所有描述符在GDT , LDTGDT , LDT表中。需要时根据描述符表中。需要时根据描述符 调入到速缓存中。调入到速缓存中。2-282.2.2.3 Pentium2.3 Pentium的四种工作方式的四种工作方式 n最基本的工作方式。n 8086/8088的实地址模式保持兼容。n 80486微处理器的实地址模式具有更强的功能,增加了寄

32、存器,扩充了指令,可进行32位操作。 实模式操作方式只允许微处理器寻址第一个实模式操作方式只允许微处理器寻址第一个1MB存储器存储器空间,存储器中第一个空间,存储器中第一个1MB存储单元称为实模式存储器或常规存储单元称为实模式存储器或常规内存,内存,DOS操作系统要求微处理器工作于实模式。当操作系统要求微处理器工作于实模式。当80486微处微处理器工作于实地址模式时,存储器的管理方式与理器工作于实地址模式时,存储器的管理方式与8086微处理器微处理器存储器的管理方式完全相同。存储器的管理方式完全相同。1.实地址工作模式实地址工作模式2-292.保护虚拟方式 通常在程序运行过程中,应防止以下情况

33、的发生: 应用程序破坏系统程序。 某一应用程序破坏了其他应用程序。 错误地把数据当作程序运行。 为了避免出现以上情形的发生,所采取的措施称作“保护”。 2-30CPUCPU复位复位RSMRSM复位复位或或RSMRSMVM=0VM=0VM=1VM=1复位复位复位复位或或PE=0PE=0使使CRCR0 0的的PE=1PE=1系统管系统管理方式理方式保护保护方式方式虚拟虚拟80868086方式方式RSMRSMSMISMI实地址实地址方式方式SMISMISMISMI实地址实地址方式方式实地址方式实地址方式:工作原理工作原理与与80868086基本相同,主要基本相同,主要区别是借助操作数长度区别是借助操

34、作数长度前缀能处理前缀能处理3232位数据,位数据,运行速度也更高,且可运行速度也更高,且可使用使用4 4个数据段。个数据段。保护保护方式方式保护方式:保护方式:CPUCPU可访问的物理存可访问的物理存储空间为储空间为2 23232= 4= 4GBGB;程序可用程序可用的虚拟地址空间为的虚拟地址空间为2 24646=64=64TBTB。段长度在启动页功能时是段长度在启动页功能时是4 4GBGB,不启动页功能时是不启动页功能时是1 1MBMB。可支可支持多用户和单用户的多任务操持多用户和单用户的多任务操作作, ,并对各任务提供了多方面并对各任务提供了多方面的保护机制。的保护机制。虚拟虚拟8086

35、8086方式方式虚拟虚拟80868086方式:方式:既有保护功能又能既有保护功能又能执行执行80868086代码的工作方式,是保护代码的工作方式,是保护方式的一种子方式。方式的一种子方式。CPUCPU的工作原理的工作原理与保护虚地址方式下相同,但程序与保护虚地址方式下相同,但程序指定的逻辑地址解释与指定的逻辑地址解释与80868086相同。相同。系统系统管理管理方式方式系统管理方式:系统管理方式:使设计使设计者实现高级管理功能,者实现高级管理功能,如对电源的管理以及为如对电源的管理以及为操作系统和正在运行的操作系统和正在运行的程序提供安全性。程序提供安全性。2-312.2.3 Pentium3

36、 Pentium微处理器指令系统微处理器指令系统2.2.3.1 3.1 基本数据类型基本数据类型2.2.3.2 3.2 操作数寻址方式操作数寻址方式2.2.3.3 Pentium3.3 Pentium指令系统概貌指令系统概貌2.2.3.4 3.4 数据传送类指令数据传送类指令2.2.3.5 3.5 算术运算类指令算术运算类指令2.2.3.6 3.6 逻辑运算和移位指令逻辑运算和移位指令2.2.3.7 3.7 串操作类指令串操作类指令2.2.3.8 3.8 控制转移类指令控制转移类指令2-32 Pentium Pentium在其内部定点处理单元在其内部定点处理单元CPUCPU和浮点处理单元和浮点

37、处理单元FPUFPU的支持下,共可处理的支持下,共可处理7 7类数据:类数据:1. 1. 无符号二进制数无符号二进制数2. 2. 带符号的二进制定点整数带符号的二进制定点整数3. 3. 浮点数浮点数4. 4. BCDBCD码数码数5. 5. 串数据串数据6. 6. ASCIIASCII码数据码数据7. 7. 指针数据指针数据2.2.3.1 3.1 基本数据类型基本数据类型2-33 这类数不带任何符号信息,只含有量值域,仅这类数不带任何符号信息,只含有量值域,仅CPUCPU支支持。分为三类持。分为三类: : 字节:字节: 字:字: 双字:双字: 任何逻辑地址上的任何逻辑地址上的8 8位相邻位串。

38、位相邻位串。任何字节地址开始的任何字节地址开始的2 2个相邻字节。个相邻字节。低字低字节地址为该字地址。节地址为该字地址。任何字节地址开始的任何字节地址开始的2 2个相邻字,即个相邻字,即4 4个个相邻字节。相邻字节。最小字节地址为双字的地址最小字节地址为双字的地址。1. 1.无符号二进制数无符号二进制数( (序数序数) )2-34 这类数均以补码表示这类数均以补码表示, ,有有8 8位数位数( (字节字节) )、1616位数位数( (字字) )、3232位数位数( (双字双字) )、6464位数位数(4(4字字) )四种。四种。CPUCPU支持前支持前3 3种,种,FPUFPU支持后支持后3

39、 3种。种。2.2.带符号的二进制定点整数带符号的二进制定点整数( (整数整数) )2-35 这类数由这类数由FPUFPU支持支持, ,有单精度、双精度和扩展精度三有单精度、双精度和扩展精度三种形式:种形式: 单精度数单精度数31 30 23 22 031 30 23 22 0符号位符号位阶阶 码码有有 效效 数数1.1. 双精度数双精度数符号位符号位阶阶 码码有有 效效 数数1.1.63 62 52 51 063 62 52 51 0 扩展精度数扩展精度数符号位符号位阶阶 码码1.1.有有 效效 数数79 78 64 63 079 78 64 63 03.3.浮点数浮点数( (实数实数) )

40、2-36 BCDBCD码数有码数有压缩压缩BCDBCD码数码数和和非压缩非压缩BCDBCD码码数两种。数两种。 CPU CPU两种数都支持;两种数都支持;FPUFPU只支持压缩只支持压缩BCDBCD码数,且最大码数,且最大长度为长度为8080位,最多可处理位,最多可处理2020位位BCDBCD码数。码数。5.5.串数据串数据 这类数据仅这类数据仅CPUCPU支持。包括支持。包括: : 位串位串: : 字节字节/ /字字/ /双字串双字串: :是从任何字节的任何位开始的相邻位的是从任何字节的任何位开始的相邻位的序列,最长可达序列,最长可达2 23232-1-1位。位。是字节是字节/ /字字/ /

41、双字的相邻序列,双字的相邻序列,最长可达最长可达2 23232-1-1字节。字节。4.4.BCDBCD码数码数2-37包括包括ASCIIASCII码字符串和码字符串和ASCIIASCII码数码数(0(0F)F)两种两种。7.7.指针数据指针数据包括近指针和远指针两种包括近指针和远指针两种: : 近指针近指针即即3232位指针位指针, ,是一个是一个3232位的段内偏移量位的段内偏移量, ,段内寻址用。段内寻址用。 远指针远指针即即4848位指针位指针, ,由由1616位位选择符选择符和和3232位偏移位偏移量组成,用于跨段访问。量组成,用于跨段访问。6.6.ASCIIASCII码数据码数据2-

42、38关于数据类型的两点说明:关于数据类型的两点说明:(1)(1)各类型数据中,基本的数据类型仍是字节、字和双字各类型数据中,基本的数据类型仍是字节、字和双字 一般应尽可能将字操作对准于偶地址,将双字操作对准于一般应尽可能将字操作对准于偶地址,将双字操作对准于4 4的整数倍地址。的整数倍地址。但也允许不对准操作,以便在数据结构的处理上和存储器的有效利用上给但也允许不对准操作,以便在数据结构的处理上和存储器的有效利用上给系统设计人员和用户提供最大的灵活性。不过,对准和不对准获得的数据系统设计人员和用户提供最大的灵活性。不过,对准和不对准获得的数据传递速度不一样:对准的字和双字可一次传递完,而未对准

43、的字和双字需传递速度不一样:对准的字和双字可一次传递完,而未对准的字和双字需几次才能传递完。几次才能传递完。(2)(2)对于字和双字数据,对于字和双字数据,8080X86X86是采用低端低地址方式来存储的是采用低端低地址方式来存储的即字数据被存储在两个相邻的字节单元之中,低位字节在低地址单元,高即字数据被存储在两个相邻的字节单元之中,低位字节在低地址单元,高位字节在高地址单元;双字数据存储在四个连续字节单元中,最低位字节位字节在高地址单元;双字数据存储在四个连续字节单元中,最低位字节在最低地址单元,最高字节在最高地址单元在最低地址单元,最高字节在最高地址单元。而字或双字数据的地址是而字或双字数

44、据的地址是指最低位字节所在的单元地址。指最低位字节所在的单元地址。2-392.2.3.2 3.2 操作数寻址方式操作数寻址方式1. 1. 寻址方式和有效地址概念寻址方式和有效地址概念2. 112. 11种寻址方式种寻址方式3. 3. 存储器寻址时的段约定存储器寻址时的段约定4. 4. 应用举例应用举例2-40 寻址方式就是寻找指令中操作数地址的方式。操作数所寻址方式就是寻找指令中操作数地址的方式。操作数所在地址有三种可能:在地址有三种可能: 直接包含在指令中直接包含在指令中,即指令的操作数部分就是操作,即指令的操作数部分就是操作 数本身。这种操作数叫立即数,对应的指令寻址方数本身。这种操作数叫

45、立即数,对应的指令寻址方 式称为式称为立即数寻址。立即数寻址。包含在包含在CPU CPU 的某个内部寄存器中的某个内部寄存器中。这时指令中的操。这时指令中的操 作数部分是作数部分是CPUCPU的一个寄存器的一个寄存器, ,这种指令寻址方式称这种指令寻址方式称 为为寄存器寻址寄存器寻址。在内存储器中在内存储器中。这时指令的操作数部分包含着该操。这时指令的操作数部分包含着该操 作数所在的内存地址。这种指令寻址方式称为作数所在的内存地址。这种指令寻址方式称为存储存储 器寻址器寻址。1. 1.寻址方式和有效地址概念寻址方式和有效地址概念 寻址方式寻址方式2-41 在在PentiumPentium系列系

46、列MPUMPU中,内存实际地址中,内存实际地址( (PA)PA): PA = PA = 段基地址段基地址 + + 段内偏移地址(段内偏移地址(EAEA ) 为了适应处理各种数据结构的需要,段内偏移地址为了适应处理各种数据结构的需要,段内偏移地址可由以下几部分组合而成:可由以下几部分组合而成:v 基址寄存器内容基址寄存器内容v 变址寄存器内容变址寄存器内容v 比例因子比例因子v 位移量位移量 这四个基本部分称为偏移地址四元素,一般又将由这四个基本部分称为偏移地址四元素,一般又将由这四种元素组合形成的偏移地址称为有效地址这四种元素组合形成的偏移地址称为有效地址EAEA。EA=EA=基址基址+(+(

47、变址比例因子变址比例因子)+)+位移量位移量 有效地址有效地址EAEA2-42有效地址元素有效地址元素1616位寻址位寻址3232位寻址位寻址基址寄存器基址寄存器 BX,BP BX,BP 任何任何3232位通用寄存器位通用寄存器变址寄存器变址寄存器 SI,DI SI,DI 除除ESPESP外的任何外的任何3232位通用寄存器位通用寄存器比例因子比例因子 无(或无(或1 1) 1 1,2 2,4 4,8 8位移量位移量 0 0,8 8,1616位位 0 0,8 8,3232位位1616位和位和3232位寻址时的四元素定义位寻址时的四元素定义n指令寻址字段规定了操作数的来源部件和如何计算EA的方法

48、。n实地址与保护方式的PA 方法不同.2-43 保护方式下的寻址过程保护方式下的寻址过程( (地址转换过程地址转换过程) )有效地址计算有效地址计算变址变址位移位移基址基址比例因子比例因子+ +3232位位有效地址有效地址31 031 0BE7BE7BE0BE0A31A31A3A332 32 位位32 32 位位1313位位描述符检索描述符检索段寄存器段寄存器选择符选择符 TITIRPLRPL15 3 2 1 015 3 2 1 0分段分段部件部件线性线性地址地址物理物理存储器存储器4G4G分页分页部件部件( (可选可选) )物理物理地址地址逻辑地址逻辑地址( (虚拟虚拟) )(CS,DS,E

49、S,SS, FS,GSCS,DS,ES,SS, FS,GS)不分页不分页逻辑地址逻辑地址 = = 段选择符段选择符 :有效地址:有效地址2-44 偏移地址四元素可优化组合出偏移地址四元素可优化组合出9 9种存储器寻址方式种存储器寻址方式, ,加上加上立即数寻址和寄存器寻址,立即数寻址和寄存器寻址,PentiumPentium共有共有1111种寻址方式种寻址方式: :(1) (1) 立即数寻址立即数寻址(2) (2) 寄存器寻址寄存器寻址(3) (3) 直接寻址直接寻址(4) (4) 寄存器间接寻址寄存器间接寻址(5) (5) 基址寻址基址寻址(6) (6) 变址寻址变址寻址(7) (7) 比例

50、变址寻址比例变址寻址(8) (8) 基址加变址寻址基址加变址寻址(9) (9) 基址加比例变址寻址基址加比例变址寻址(10)(10)带位移的基址加变址寻址带位移的基址加变址寻址(11)(11)带位移的基址加比例变址寻址带位移的基址加比例变址寻址2. 112. 11种寻址方式种寻址方式2-45 在这种寻址方式下在这种寻址方式下, ,操作数作为立即数直接存在指操作数作为立即数直接存在指令中令中, ,可为可为8 8位、位、1616位或位或3232位。位。例:例:MOV AXMOV AX,4567H4567HMOV BLMOV BL,78H78HMOV ECXMOV ECX,12345678H1234

51、5678H(1)(1)立即数寻址立即数寻址2-4678563412顺序存放在指令后面2-47 在这种方式下在这种方式下, ,操作数包含在指令规定的操作数包含在指令规定的8 8位、位、1616位位或或3232位寄存器中。位寄存器中。例:例:MOV EAXMOV EAX,EDXEDXINC CLINC CLMOV DSMOV DS,AXAX 这种寻址方式指令编码短,无需从存储器取操作数,这种寻址方式指令编码短,无需从存储器取操作数,故执行速度快。故执行速度快。(2)(2)寄存器寻址寄存器寻址( (寄存器直接寻址寄存器直接寻址) )2-48 指令中的操作数部分直接给出操作数有效地址指令中的操作数部分

52、直接给出操作数有效地址EAEA,它它和操作码一起放在存储器代码段中,可以是和操作码一起放在存储器代码段中,可以是1616位或位或3232位位整数。但操作数一般在数据段整数。但操作数一般在数据段DSDS中。中。例:例: MOV AXMOV AX,DS:3000HDS:3000H 将将DSDS段中段中30003000H H和和3 3OO1HOO1H单元的内容送到单元的内容送到AXAX中。假中。假设设DS=5000HDS=5000H,则此指令是将物理地址为则此指令是将物理地址为5300053000H H单元的单元的内容送到内容送到ALAL寄存器,将寄存器,将5300153001H H单元的内容送到单

53、元的内容送到AHAH寄存寄存器,详情请看直接寻址方式的执行过程的。器,详情请看直接寻址方式的执行过程的。(3)(3)直接寻址直接寻址( (存储器直接寻址存储器直接寻址) )2-492-50 实际中对于直接寻址实际中对于直接寻址, ,如操作数在如操作数在DSDS段中段中, ,则可直则可直接写成接写成: :MOV AX,3000HMOV AX,3000H 如操作数在如操作数在DSDS之外的其他段之外的其他段( (CS,SS,ES,FS,GS)CS,SS,ES,FS,GS)中中, ,指令中则必须用段寄存器名前缀指令中则必须用段寄存器名前缀( (称为段超越前缀称为段超越前缀) )予以指明。例如:予以指

54、明。例如:MOV AX,FS:3000HMOV AX,FS:3000H 直接寻址主要用于单个操作数的相对寻址场合直接寻址主要用于单个操作数的相对寻址场合( (如如简单的标量操作数寻址和静态分配数组的起始地址简单的标量操作数寻址和静态分配数组的起始地址寻址等寻址等) )。2-51 在这种方式下在这种方式下, ,操作数放在存储器中操作数放在存储器中, ,但但其有效地址其有效地址EAEA放在寄存器中放在寄存器中, ,即:即: EA=EA=寄存器寄存器 寄存器的使用规定在寄存器的使用规定在1616位寻址和位寻址和3232位寻位寻址时不一样。址时不一样。(4)(4)寄存器间接寻址寄存器间接寻址2-52

55、16 16位寻址时,偏移地址放在位寻址时,偏移地址放在SISI、DIDI、BPBP或或BXBX中。中。这时又有两种段默认情况:这时又有两种段默认情况:q若以若以SISI、DIDI、BXBX间接寻址间接寻址, ,则默认操作数在则默认操作数在DSDS段中。段中。 例如:例如: MOV AX,SI ;MOV AX,SI ;默认默认DSDS为段基址为段基址q若以若以BPBP间接寻址间接寻址, ,则默认操作数在则默认操作数在SSSS段中。段中。 例如:例如: MOV AX,BP ;MOV AX,BP ;默认默认SSSS为段基址为段基址 动画演示动画演示 如果操作数不在上述规定的默认段,而是在其他段,则如

56、果操作数不在上述规定的默认段,而是在其他段,则必须在指令中相应的操作数前加上段必须在指令中相应的操作数前加上段超越前缀超越前缀。例如:。例如:MOV AX,ES:SIMOV AX,ES:SIMOV AX,DS:BPMOV AX,DS:BP2-532-54 3232位寻址时位寻址时,8 ,8个个3232位通用寄存器均可作寄存器间接位通用寄存器均可作寄存器间接寻址。寻址。 例如:例如:MOV EBX,EAX ;MOV EBX,EAX ;默认默认DSDS为段基址为段基址, ,传送双字给传送双字给EBXEBXMOV DX,EBX ;MOV DX,EBX ;默认默认DSDS为段基址为段基址, ,传送字给

57、传送字给DXDXMOV CH,EAX ;MOV CH,EAX ;默认默认DSDS为段基址为段基址, ,传送字节给传送字节给CHCH 除除ESPESP、EBPEBP默认段寄存器为默认段寄存器为SSSS外,其余外,其余6 6个通用寄个通用寄存器均默认段寄存器为存器均默认段寄存器为DSDS。如操作数在默认段之外,如操作数在默认段之外,指令中必须加段超越前缀。指令中必须加段超越前缀。 寄存器间接寻址的应用场合与直接寻址的应用场合相寄存器间接寻址的应用场合与直接寻址的应用场合相似,当更灵活。似,当更灵活。2-55 在这种方式下在这种方式下, , EA=EA=基址寄存器基址寄存器+位移量。位移量。 其中位

58、移量一定要为常数其中位移量一定要为常数, ,且跟随在操作码之后且跟随在操作码之后, ,与与操作码一起存放在代码段中。操作码一起存放在代码段中。1616位寻址情况下位寻址情况下, ,BXBX和和BPBP作为基址寄存器。在缺作为基址寄存器。在缺省段超越前缀时省段超越前缀时, ,BXBX以以DSDS作为默认段寄存器作为默认段寄存器, ,BPBP以以SSSS作为默认段寄存器。位移量可为作为默认段寄存器。位移量可为8 8位或位或1616位;位;3232位寻址情况下,位寻址情况下,8 8个个3232位通用寄存器均可作基位通用寄存器均可作基址寄存器,址寄存器,其中其中ESPESP、EBPEBP以以SSSS为

59、默认段寄存器,为默认段寄存器,其余其余6 6个通用寄存器均以个通用寄存器均以DSDS为默认段寄存器为默认段寄存器。位移。位移量为量为8 8位或位或3232位。位。例如:例如: 动画演示动画演示MOV EAX,BX+24 ;MOV EAX,BX+24 ;也可写成也可写成MOV EAX,24BXMOV EAX,24BXMOV ECX,EBP+50 ;MOV ECX,EBP+50 ;也可写成也可写成MOV ECX,50EBPMOV ECX,50EBPMOV DX,EAX+1500H;MOV DX,EAX+1500H;也可写成也可写成MOV DX,1500HEAXMOV DX,1500HEAX(5)(

60、5)基址寻址基址寻址2-562-57 在这种方式下在这种方式下, , EA=EA=变址寄存器变址寄存器+位移量位移量 指令书写格式和寻址执行过程与基址寻址相同指令书写格式和寻址执行过程与基址寻址相同, ,区别仅在于将基址寄存器改成变址寄存器。区别仅在于将基址寄存器改成变址寄存器。(6)(6)变址寻址变址寻址2-58 1616位寻址时,仅位寻址时,仅SISI、DIDI可作变址寄存器,且默可作变址寄存器,且默认认DSDS作为段基址寄存器。如:作为段基址寄存器。如:MOV AX,MOV AX,COUNTCOUNTSISI 3232位寻址时位寻址时, ,除除ESPESP外的任何通用寄存器均可作外的任何

温馨提示

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

评论

0/150

提交评论