




已阅读5页,还剩96页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第3章 微机系统中的微处理器,内容提要 微处理器的典型结构 8086微处理器的功能结构 8086微处理器的寄存器结构 8086的存储器组织 8086的I/O组织 8086的寻址方式,2/96,常用术语(1),位(bit):计算机处理的最小数据单位,只能为“0”或“1”,缩写为b 千位(Kilobit):代表210位,即1024位,缩写Kb 兆位(Megabit):代表220位,即10241024位,缩写Mb 千兆位(Gigabit):代表230位,即1024Mb位,缩写Gb 兆兆位(Terabit):代表240位,即1024Gb位,缩写Tb,3/96,常用术语(2),字节(Byte):计算机中存储器容量的基本单位,一个字节由8位二进制数据组成,Byte通常缩写为B,同样有KB、MB、GB、TB 字(Word):不同的场合有不同的含义,软件上通常指2个字节,硬件上一般指处理器外部数据总线的宽度 字长:计算机运算部件直接能处理的二进制数据的位数。字长越长,计算机的处理能力越强,运算精度越高,指令功能越强,可寻址的存储空间也越大,4/96,常用术语(3),CPU主频 主振频率,CPU内部的时钟频率,是CPU进行运算时的工作频率。 一般来说,主频越高,一个时钟周期里完成的指令数也越多,CPU的运算速度也就越快。 但由于内部结构不同,并非所有时钟频率相同的CPU性能也一样。 集成度 表明微处理器的生产工艺水平 常用芯片上集成的晶体管数量来表达 超大规模集成电路通常10万门/片以上,5/96,前言,微处理器是组成微型计算机系统的核心部件,Intel8086微处理器的基本结构和原理体现了一般微处理器的特点,故作为代表来进行讲述。 讨论微处理器的目的,一方面是为了理解微型计算机的工作原理,更重要的一方面是为了应用它。所以没有必要也不可能讨论它的每个逻辑细节。 从上述目的出发,我们将从微处理器的内部和外部两个方面讨论微处理器的结构。,6/96,3.1 微处理器的一般结构(内部结构) 典型CPU内部结构图,程序计数器(PC),指令寄存器(IR),指令译码器(ID),控制逻辑部件,堆栈指示器(SP),处理机状态字(PSW),I/O控制逻辑,地址寄存器,数据寄存器,工作寄存器,ALU,7/96,3.1 微处理器的一般结构(内部结构),运算器 是计算机用来进行算术逻辑运算的部件 运算器的核心是ALU 基本功能: 对二进制代码进行加、减、乘、除基本运算 对二进制代码进行与、或、非等逻辑运算 对二进制代码进行移位操作 完成数据信息的传送 运算器的组成:算术逻辑运算单元ALU、内部总线、通用寄存器组、输入多路开关和数据锁存器、输出移位多路开关。,8/96,微处理器的一般结构(内部结构)(2),控制器 用于计算机硬件系统中,指挥、协调各部件的工作,是整个计算机的中枢 基本功能:取指令、分析指令、执行指令、输入/输出控制、中断处理 控制器构成: 程序计数器(PC:Program Counter):用于保存下一条要执行的指令的地址,一般指令是顺序存储在存储器中的。 指令寄存器(IR:Instruction Register):保存从存储器读入的当前要执行的指令。,9/96,微处理器的一般结构(内部结构)(2),指令译码器(ID:Instruction Decoder):对指令寄存器中保存的指令进行译码分析。 控制逻辑部件:根据上一器件的分析,发出相应的一系列节拍脉冲和控制信号,完成指令的操作。 处理器状态字(PSW:Processor State Word):暂存处理器当前的状态。PSW中的各位用来指示运算结果的特殊状态。条件转移指令将根据PSW中的某一位的状态来决定程序是否转移。 堆栈指示器(SP:Stack Pointer):对堆栈的存储区进行操作时提供栈顶地址,方便堆栈操作。,10/96,程序计数器(PC),指令寄存器(IR),指令译码器(ID),控制逻辑部件,堆栈指示器(SP),处理机状态字(PSW),I/O控制逻辑,地址寄存器,数据寄存器,工作寄存器,ALU,用于保存下一条要执行的指令的地址,典型CPU内部结构图,11/96,典型CPU内部结构图,程序计数器(PC),指令寄存器(IR),指令译码器(ID),控制逻辑部件,堆栈指示器(SP),处理机状态字(PSW),I/O控制逻辑,地址寄存器,数据寄存器,工作寄存器,ALU,保存从存储器中读入的当前要执行的指令,12/96,典型CPU内部结构图,程序计数器(PC),指令寄存器(IR),指令译码器(ID),控制逻辑部件,堆栈指示器(SP),处理机状态字(PSW),I/O控制逻辑,地址寄存器,数据寄存器,工作寄存器,ALU,对IR中保存的指令进行译码分析,13/96,典型CPU内部结构图,程序计数器(PC),指令寄存器(IR),指令译码器(ID),控制逻辑部件,堆栈指示器(SP),处理机状态字(PSW),I/O控制逻辑,地址寄存器,数据寄存器,工作寄存器,ALU,用于存放栈顶指针,14/96,典型CPU内部结构图,程序计数器(PC),指令寄存器(IR),指令译码器(ID),控制逻辑部件,堆栈指示器(SP),处理机状态字(PSW),I/O控制逻辑,地址寄存器,数据寄存器,工作寄存器,ALU,用于暂存处理器当前的状态,15/96,微处理器的一般结构(内部结构)(3),工作寄存器 作用:用于暂存用于寻址和计算过程的信息,避免频繁访问内存,缩短指令长度和执行时间,给编程带来方便。 分为两组:数据寄存器组和地址寄存器。但有的寄存器兼有双重用途。 数据寄存器用来暂存操作数和中间运算结果。 地址寄存器用于操作数的寻址。 寄存器组 CPU内部的若干个存储单元 分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,如堆栈指针、标志寄存器等;通用寄存器可有多种用途。 寄存器的数目因微处理器而定。,16/96,CPU总线结构,CPU的内部采用单总线,即内部所有单元电路都挂在内部总线上,分时使用总线。该组总线作为信息在CPU内部流通的唯一途径。,ALU,工作寄存器组,控制器,I/O控制逻辑,单总线结构,17/96,微处理器的基本工作过程,18/96,微处理器的一般结构(外部结构)(1),微处理器的外部就是数量有限的输入输出引脚,即微处理器级总线。微处理器通过微处理器级总线沟通与外部部件和设备之间的联系。 微处理器级总线的功能 和存储器之间交换信息 和I/O设备之间交换信息 为了系统工作而接收和输出必要的信号,19/96,从功能上分,将总线分为三种: 数据总线(DB:Data Bus) 用来传送指令或数据 地址总线(AB:Address Bus) 指示欲传信息的源或目的地址; 控制总线(CB:Control Bus) 管理总线上的活动。,微处理器的一般结构(外部结构)(2),20/96,数据总线(DB:Data Bus) 微处理器数据总线的条数决定CPU和存储器或I/O设备一次能交换数据的位数,是区分微处理器是多少位的依据。 如8086CPU是16位微处理器,Z80CPU是8位微处理器。,微处理器的一般结构(外部结构)(3),21/96,微处理器的一般结构(外部结构)(4),地址总线(AB:Address Bus) 存储器的基本存储单元为字节,每个字节都有唯一的二进制地址码相对应。 地址总线的条数即为二进制地址码的位数,它可能表示的不同地址的集合称为地址空间。 地址码的位数决定了地址空间的大小。比如8086CPU的地址码共有20位,则地址空间的大小为220,即1MB个字节,地址空间为0220-1,22/96,微处理器的一般结构(外部结构)(5),I/O接口 I/O接口是保证数据、控制与状态信息在CPU和I/O设备之间正常传送的电路 I/O接口和CPU之间的通信是利用称为I/O端口的寄存器来完成的 一个I/O接口可能包括若干个I/O端口 每个I/O端口都有唯一的I/O地址相对应 8086的地址总线的低16位用来对I/O端口编址,所以I/O地址空间容量为 (65536)字节。即可对65536个I/O端口寻址。,23/96,存储器和I/O端口的组织图,CPU,地址 存储器中的字节,0,1,10,接口,I/O端口,I/O设备,高位决定模块,数据线,控制线,地址线,高位决定接口,2或3个低位选择端口,24/96,Intel 8086 CPU属于第三代微处理器,8086 CPU有20条地址线,直接寻址能力达1MB。8086 CPU具有16条数据总线,内部总线和ALU均有16位,可进行8位和16位操作,是16位微处理器。,3.2 8086微处理器的功能结构,25/96,8086微处理器的功能结构,8086CPU从功能上来说分成两大部分: 总线接口单元BIU( Bus Interface Unit ) 执行单元EU( Execution Unit ) BIU的作用:负责与存储器的接口,即8086CPU与存储器之间的信息传送,都是由BIU进行的 EU 的作用:负责指令的执行,26/96,8086CPU功能框图,27/96,通 用 寄 存 器,8086CPU功能框图,执行单元,AH,AL,BH,BL,CL,CH,DH,DL,SP,BP,DI,SI,CS,DS,SS,ES,I P,内部寄存器,总线,控制,逻辑,AX,BX,CX,DX,数据总线,暂存器,A L U,标志寄存器,外部总线,8086总线(16位),指令对列,8086为 6 字节,ALU数据总线 (16位),EU 控制器,总线接口单元(BIU),地址加法器,(20 位),数据总线 (16 位),段寄存器,指令指针,(EU),1 2 3 4 5 6,队列总线 (8位),地址总线,28/96,8086微处理器的功能结构,总线接口单元(BIU) BIU包括个段寄存器、指令指针IP(PC)、指令队列寄存器(IR)、完成与EU通讯的内部寄存器、地址加法器和总线控制逻辑。 它的任务是执行总线周期,完成CPU与存储器和I/O设备之间信息的传送。具体地讲,就是取指令时,从存储器指定地址取出指令送入指令队列排队;执行指令时,根据EU命令对指定存储单元或I/O端口存取数据。,29/96,8086微处理器的功能结构,执行单元(EU) EU由算术逻辑单元ALU、暂存器、标志寄存器(PSW)、通用寄存器组和EU控制器构成。 它的任务执行指令,进行全部的算术逻辑运算,完成偏移地址的计算,向BIU提供指令执行的结果和地址,并对通用寄存器和标志寄存器进行管理。 16位的ALU总线和8位队列总线用于EU内部和EU与BIU之间的通信。,30/96,8086的指令流水线(1),一条指令的执行过程: 8086出现以前,以上指令串行执行指令的执行采用单流水线的形式。则指令花费时间=取指时间+执行时间,取指,执行,取指,执行,31/96,8086的指令流水线(2),8086内部有BIU、EU两个独立单元,可独立完成总线操作和执行指令的任务,即两个单元可重叠操作 流水线就是两次重叠或多次重叠操作,32/96,3.3 8086的寄存器结构,8086CPU内部具有14个16位寄存器,用于提供运算的数据、控制指令执行和对指令及操作数寻址。基本分为通用寄存器组、控制寄存器组和段寄存器组。 通用寄存器组 8个16位通用寄存器组分为两组:数据寄存器及地址指针和变址寄存器。,33/96,AH,累加器AX,AL,BH,BL,CH,CL,DL,DH,SP,BP,SI,DI,CS,DS,SS,ES,IP,FLAGS,基址寄存器BX,计数寄存器CX,数据寄存器DX,堆栈指针,基址指针,源变址寄存器,目的变址寄存器,指令指针,标志寄存器,代码段寄存器,数据段寄存器,堆栈段寄存器,附加段寄存器,数据寄存器,地址指针和变址寄存器,通用寄存器,控制寄存器,段寄存器组,15,8,7,0,8086的寄存器结构(1),34/96,8086的寄存器结构(1),35/96,8086的寄存器结构(2),数据寄存器 4个:累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX 特点:可分为高8位(AH、BH、CH、DH)和低8位(AL、BL、CL、DL)。这两组八位寄存器能分别寻址。这样,可以将数据寄存器当作一个16位寄存器,也可用作两个8位寄存器 可用来存放8位或16位二进制操作数,这些操作数可以是参加操作数、中间结果或操作数地址 大多数算数和逻辑运算指令可以使用这些寄存器,36/96,8086的寄存器结构(3),指针和变址寄存器 4个:堆栈指针SP,基址指针BP,源变址寄存器SI,目的变址寄存器DI 特点:这4个16位寄存器只能按16位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数和有效地址 SP,BP用于堆栈操作,SP用来确定堆栈在内存中的地址,BP用来存放在现行堆栈段的一个数据区的“基址” SI,DI用于变址操作,存放变址地址 这4个寄存器也可用作数据寄存器,37/96,通用寄存器的特定用法,38/96,8086的寄存器结构(4),控制寄存器-指令指针IP 16位专用寄存器,保存下一条要执行的指令的偏移地址 当BIU从内存中取出一个指令字节后,IP自动加1,指向下一个字节 IP指向的是指令地址的段内地址偏移量,又称偏移地址或有效地址 程序员不能对IP进行存取操作,程序中的转移指令、返回指令以及中断处理能对IP进行操作,39/96,8086的寄存器结构(5),控制寄存器-标志寄存器FLAGS,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,CF,PF,AF,ZF,SF,TF,IF,DF,OF,16位,其中有6个状态位,3个控制位 6个状态位有:CF、PF、AF、ZF、SF、OF 3个控制位有:IF、DF、TF,注:标志寄存器FLAGS反映的是ALU运算后结果的状态,40/96,8086的寄存器结构(6),标志寄存器FLAGS(状态位) 进位标志CF,反映算数运算后,最高位(字节操作为D7,字操作为D15)出现进位或借位的情况,有则为“1” 奇偶标志PF,反映操作结果的低八位中“1”的个数的情况,若为偶数,则PF=1 辅助进位标志AF,反映一个8位量的低4位向高4位有无进位或借位的情况,有则置“1” 。这个标志位用于实现BCD码算术运算结果的调整 零标志ZF,反映运算结果是否为0的情况,结果为0,ZF置为“1”,否则为“0”,41/96,8086的寄存器结构(7),标志寄存器FLAGS(状态位) 符号标志SF,反映运算结果的符号情况,若结果为负数,SF为“1”,否则为“0”。SF的取值与运算结果最高位(字节操作为D7,字操作为D15)一致。 溢出标志OF,反映带符号数运算结果是否超过机器所能表示的数值范围的情况,对字节运算为-128 +127,对字运算为-32768 +32767。若超过上述范围则称为“溢出”,OF=1,否则为“0”。,42/96,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,OF,DF,IF,TF,SF,ZF,AF,PF,CF,0101 0100 0011 1001,+ 0100 0111 0110 1010,1001 1011 1010 0011,1,1,0,1,1,0,标志寄存器FLAGS(状态位),43/96,8086的寄存器结构(8),标志寄存器FLAGS(控制位) 方向标志DF,在进行字符串操作时,每执行一条串操作指令,对地址要进行一次调整,由DF决定地址是增还是减。若DF=1,则为减量;DF=0,则为增量。 中断允许标志IF,表示系统是否允许外部可屏蔽中断(INTR引脚)。若IF=1,表示允许中断, IF=0,表示不允许中断。IF对不可屏蔽中断(NMI引脚)及内部中断请求不起作用。 跟踪标志TF,当TF=1时,CPU每执行完一条指令,便自动产生一个内部中断,对程序进行逐条检查,常用于程序的调试。,44/96,8086的寄存器结构(9),段寄存器 内存中通常存放三种信息: 代码(指令):计算机执行何种操作 数据(字符、数值):程序处理的对象 堆栈信息:保存返回地址和中间结果 用汇编语言设计的程序中的信息也就是这三类信息。而8086、8088汇编语言规定,不同的信息要存放在不同的存贮段,这些存贮段的存贮器段地址(段基址)要由各自的段存器提供,45/96,8086的寄存器结构(10),8086系统中把可直接寻址的1M字节内存空间分为称作段的逻辑区域,每个段的物理长度为64K字节。每个段的起始地址的有关值存放在称为段寄存器的4个16位寄存器中 代码段寄存器CS:指向当前的代码段,指令由此段取出 数据段寄存器DS:指向当前数据段,通常用来存放程序变量 堆栈段寄存器SS:指向当前的堆栈段,堆栈操作所需的就是 该段存储单元的内容 附加段寄存器ES:指向当前附加段,通常也用来存储数据,46/96,8086/8088的存储器都是以字节(8位)为单位组织的。它们具有20条地址总线,所以可寻址的存储器地址空间容量为 220 (约)字节。 每个字节对应一个唯一的地址,地址范围为02201 (用16进制表示为00000H FFFFFH),如下图所示。,3.4 8086的存储器组织(1) 存储器地址空间,47/96,8086的存储器组织(1) 存储器地址空间,48/96,存储空间按字节(8位)进行组织,每个存储单元存储一个字节的数据,若存放“字”数据(16位),则存放在相邻两个存储单元之中,高字节存放在高地址单元,低字节存放在低地址单元 字的地址为低字节的地址。各位的编号从0开始。,8086的存储器组织(2) 数据存储格式,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0,地址=N+1,地址=N,(高字节),(低字节),字地址,49/96,8086的存储器组织(2) 数据存储格式,8086允许字从任何地址开始 字的地址为偶地址时,称字的存储是对准的;为奇地址时,则字的存储是未对准的 访问对准的字,需要一个总线周期;访问未对准的字,则需要两个总线周期(CPU自动完成),50/96,8086的存储器组织(3),为什么存储器要分段 8086/8088CPU有20条地址线(A19A0),能寻址外部存贮空间为 =1MB,而在8088/8086CPU内部能向存贮器提供地址码的地址寄存器有六个,均为16位,所以用这六个16位地址寄存器任意一个给外部存贮器提供地址,只能提供 =64K个地址,所以,对1MB地址寻址不完。这六个16位地址寄存器分别为:,BX 基址寄存器 BP 基址指针寄存器 SI 源变址寄存器 SP 堆栈指针寄存器 DI 目的变址寄存器 IP 指令指针寄存器,为了使8086CPU能寻址到外部存贮器1MB空间中任何一个单元,8086巧妙地采用了地址分段方法(将1MB空间分成若干个逻辑段),从而将寻址范围扩大到了1MB。,51/96,8086的存储器组织(3),怎么分段 1MB的存贮空间中,每个存贮单元的实际地址编码称为该单元的物理地址(用PA表示) 把1MB的存贮空间划分成若干个逻辑段,每段最多64KB 一个段是存储器的一个逻辑单位,其长度可达64KB,每个段都有连续的存储单元构成,是存储器中独立的可分别寻址的单位 每段第一个字节的位置称为“段起始地址”,可由软件指定 各逻辑段的起始地址的最低4位必须为0,即必须能被16整除(即XXXX0H) 几个段可以相互重叠,也可指向同一空间,52/96,8086的存储器组织(3),一个段的起始地址的高16位自然数为该段的段地址。显然,在1MB的存贮空间中,可以有216个段地址。每个相邻的两个段地址之间相隔16个存贮单元。 在一个段内的每个存贮单元,可以用相对于本段的起始地址的偏移量来表示,这个偏移量称为段内偏移地址,也称为有效地址(EA)。 段内偏移地址也用16位二进制编码表示。所以,在一个段内有216 =64K个偏移地址(即一个段最大为64KB)。,53/96,8086的存储器组织(3),在一个64KB的段内,每个偏移地址单元的段地址是相同的,所以段地址也称为段基址。 由于相邻两个段地址只相隔16个单元,所以段与段之间大部分空间互相覆盖(重叠)。,54/96,8086的存储器组织(3),段基址与段内偏移量 8086与存储器之间所有信息的交换都要使用20位的物理地址,而程序中所涉及到的地址都是16位的逻辑地址,对所给定的任一存储单元而言,有两部分逻辑地址: “段基址”:决定了该段第一个字节的位置 “段内偏移量”:该存储单元相对于该段起点字节的距离 段基址存放在段寄存器CS、DS、SS、ES中 段内偏移量由IP、SP、SI、DI、BX、BP以及相应寄存器的组合而组成,55/96,8086的存储器组织(4),逻辑地址与物理地址 在具有地址变换机构的计算机中,有两种存储器地址: 逻辑地址:允许在程序中编排的地址 物理地址:信息在存储器中实际存放地址 在8086系统中,每个存储单元也都认为有这两类地址 逻辑地址的表示格式为:,56/96,8086的存储器组织(5),一个存储单元用逻辑地址表示后,CPU 对该单元的寻址就应提供两部分地址 段地址由段寄存器提供 段内有效地址-由地址寄存器提供 物理地址的形成 存储单元的20位物理地址是通过将16位的段基址左移4位,再加上16位的偏移地址而形成的,即 物理地址=段基址*10H+段内偏移量 例如:6000:0280的物理地址为60280H,57/96,8086的存储器组织(5),8086CPU中BIU单元的地址加法器可用来完成物理地址的计算,58/96,8086的存储器组织(6),信息的分段存储与段寄存器的关系 表 各种类型访问存储器时的地址成分,59/96,8086的存储器组织(7),段寄存器的使用约定 任何类型访问存储器时,其段地址要么由默认段寄存器提供,要么由“指定”的段寄存器提供。8086微处理器的BIU单元设有4个段寄存器(CS、DS、SS、ES),所以CPU可以通过这4个段寄存器来访问4个不同的段。用程序对段寄存器的内容进行修改,可实现访问所有的段。 段寄存器DS、ES和SS的内容是用传送指令置入的,但任何传送型指令不能向段寄存器CS置入数,但一些指令可以设置和影响CS的内容,如:ASSUME伪指令、JMP、CALL、RET、INT和IRET。 表中前四项指明了一个16位的指针寄存器或变址寄存器作为段内偏移地址的来源,其它都要按指令码规定的寻址方式求得。,60/96,3.5 8086的I/O组织,I/O接口是保证信息和数据在CPU和I/O设备之间正常传送的电路。 I/O端口是I/O接口内的寄存器,跟存储单元相同,也是以字节为单位编址,一个I/O端口有唯一的I/O地址相对应。 8086地址总线的低16位用来对8位I/O端口寻址,所以8086的I/O地址空间为64K,可以访问64K个I/O端口 与存储器类似,任何两个地址连续的8位I/O端口,都可以当作一个16位I/O端口,类似于存储器的字。 对8086CPU来说,也象存储器的字那样,要实现奇地址的16位I/O端口输入输出,都必须访问两次。,61/96,8086CPU与存储器、I/O设备的连接,高位决定接口,2或3个低位选择端口,CPU,地址 存储器中的字节,0,1,10,接口,I/O端口,I/O设备,高位决定模块,数据线,控制线,地址线,62/96,由于存储器划分为模块,所以存储器地址的高几位可用来选择模块,其余低位则用来标识该模块内的字节或字。同样,利用I/O地址中的高位来标识I/O接口,而用2或3个低位来选择该接口内的I/O端口。,存储器和I/O端口的组织(1),63/96,地址总线的条数就是二进制地址码的位数,它能够表示的不同地址的集合称为地址空间。存储单元和I/O端口在同一地址空间,这种方法称为统一编址,它们的存取指令是一样的;而两者在两个独立的地址空间,它们的地址码的位数不同,采用的存取指令是不一样的,这种方法称为独立编址。 地址码的位数决定了地址空间的大小。若地址码共n位,则可以有2n个地址。对于单地址空间的CPU的处理器,则存储器和I/O端口合在一起的空间容量为2n个字节。对于独立空间的来说,地址总线的条数决定了存储器地址空间的容量;地址总线中用于I/O端口编址的条数决定I/O地址空间的容量。,存储器和I/O端口的组织(2),64/96,例如在8086CPU系统中,地址总线的条数为20条,则存储器的最大容量为220,即1MB字节;它的地址总线的低16位用来对I/O端口编址,则I/O地址空间的容量为216,即64K个I/O端口地址。,存储器和I/O端口的组织(3),65/96,3.6 8086的寻址方式,寻址方式:指令中用于说明操作数所在地址的方法 寻址方式分为数据寻址方式和转移地址寻址方式 数据的寻址方式就是告诉CPU存/取数据的地方。 数据寻址方式通常有8种: 立即寻址 寄存器寻址 直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 基址变址且相对寻址 隐含寻址,66/96,立即寻址,存储器, ,9A,BC, ,12,34, ,F5, ,10,00, ,代码段,数据段,MOV AX, 1000H,AX,AH,AL,10,00,30000H,31000H,31001H,32000H,32001H,操作数为立即数,直接存放在代码段中,67/96,直接寻址(1),存储器, ,9A,BC, ,12,34, ,F5, ,10,00, ,代码段,数据段,30000H,31000H,31001H,32000H,32001H,MOV AX, 1000H,AX,AH,AL,12,34,DS,3000,0,1000,31000,物理地址,操作数在内存单元中 直接给出数据的偏移地址,默认在数据段中,68/96,在实际的汇编语言程序设计中,如果程序比较复杂,而用到的存放数据的单元又很多,那么在直接寻址方式当中,用户就要记住存放数据的每个单元的地址,同时还要记住该地址单元存放的数据的意义,这样对设计程序带来了很大的困难。所以在实际的汇编语言程序设计中,常常采用给存放数据的单元,定义一个符号地址名,即变量名/变量。 变量名一但定义了,就具有了五个属性: 该单元的段地址 该单元的偏移地址 类型 大小 长度 这样,在程序设计中就可以用这个变量名代替原来的存储器单元的实际地址。,直接寻址(2),69/96,寄存器寻址,操作数在寄存器中。对于16位数据,寄存器可以是AX、BX、CX、DX、SI、DI、SP、BP以及段寄存器。对于8位数据,寄存器可以是AL、AH、BL、BH、CL、CH、DL、DH。 在程序设计中,一般存放数据时,寄存器选择通用寄存器,而存放结果时尽可能的使用AX累加器,因为使用AX累加器要比用其它寄存器存放结果,指令执行时间要短一些。 寄存器寻址既可以作DST,也可以作SRC。 例如:MOV AX,BX,70/96,寄存器间接寻址(1),操作数在内存单元中 数据的偏移地址由指定的寄存器给出:BX,SI或DI 其段地址默认在DS段,71/96,寄存器间接寻址(2),存储器, ,9A,BC, ,12,34, ,F5, , ,代码段,数据段,30000H,31000H,31001H,32000H,32001H,MOV AX, BX,AX,AH,AL,12,34,DS,3000,0,1000,31000,物理地址,BX,操作数,72/96,寄存器相对寻址(1),操作数在内存单元中 数据的偏移地址是位移量和一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容之和 在DISP为常数时,操作数所在单元的段地址以寄存器为准若寄存器为BX、SI、DI,操作数默认在DS段中。若寄存器为BP,操作数默认在SS段中 在DISP为变量时,操作数所在单元的段地址以变量为准,变量在哪个段定义的,就取该段的段地址,73/96,寄存器相对寻址(2),存储器, ,9A,BC, ,12,34, ,F5, ,05,00, ,代码段,数据段,30000H,31000H,31001H,32000H,32001H,MOV AX, dispSI,AX,AH,AL,12,34,DS,3000,0,0B00,31000,物理地址,SI,操作数,0500,disp,74/96,举例: 若(DS)=1500H,TABLE为在DS段定义的一个字 变量,且偏移地址为0004H,(BP)=0003H。 MOV AX ,TABLE BP SRC的寻址方式为寄存器相对寻址。 指令完成的操作为: (AX) (DS: OFFSET TABLE+(BP),寄存器相对寻址(3),75/96,基址变址寻址(1),操作数在内存单元中 数据的偏移地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容之和 该单元的段地址以基址寄存器为准,若基址寄存器为BX,则段地址默认在DS中,若基址寄存器为BP,则段地址默认在SS中,76/96,基址变址寻址(2),存储器, ,9A,BC, ,12,34, ,F5, , ,代码段,数据段,30000H,31000H,31001H,32000H,32001H,MOV AX, BXSI,DS,3000,0,1000,32000,物理地址,BX,操作数,1000,SI,AX,AH,AL,9A,BC,77/96,基址变址且相对寻址(1),操作数在内存单元中。 数据的偏移地址是位移量,一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容三部分之和。 同样,如果用BX作为基地址,操作数默认在DS段中;如果用BP作为基地址,则在SS段中。 在DISP为变量时,操作数所在单元的段地址以变量为准,变量在哪个段定义的,就取该段的段地址。,78/96,基址变址且相对寻址(2),存储器, ,9A,BC, ,12,34, ,F5, ,05,00, ,代码段,数据段,30000H,31000H,31001H,32000H,32001H,MOV AX, dispBXSI,DS,3000,0,1000,32000,物理地址,BX,操作数,0B00,SI,AX,AH,AL,9A,BC,0500,disp,79/96,隐含寻址,有些指令码中不包含指明操作数地址的部分,而其操作码本身隐含地说明了操作数地址。 如:乘除法指令、字符串操作类指令等 例如: MUL CL;其操作为(AX)(AL)(CL) 在这里,AL操作数并没有在指令中指明,是由操作码本身隐含地说明了,80/96,数据的寻址方式小结,81/96,例题 若(BX)0158H,(DI)10A5H,位移量1B57H,(DS)2100H,(SS)1100H,(BP)0100H,段寄存器按默认段寄存器,则相对于各种寻址方式的有效地址和物理地址是: 直接寻址: EA1B57H 物理地址(DS)10HEA 21000H1B57H22B57H 寄存器间接寻址(假设寄存器为BX): EA0158H 物理地址(DS)10HEA 21000H0158H21158H,82/96,寄存器相对寻址(假设寄存器为BP) EA0100H1B57H1C57H 物理地址(SS)10HEA 11000H1C57H12C57H 基址变址寻址(假设寄存器为BX和DI) EA0158H10A5H11FDH 物理地址(DS)10HEA 21000H11FDH221FDH 基址变址且相对寻址(假设寄存器为BP和DI) EA0100H10A5H1B57H2CFCH 物理地址(SS)10HEA 11000H2CFCH13CFCH,例题,83/96,转移地址的寻址方式,指令是按顺序存放在存储器中的,其执行顺序是由代码段寄存器CS和指令指针IP的内容决定的。在正常的情况下,BIU自动修改IP的内容,使它指向下一条指令。程序转移指令通过改变IP和CS的内容,就可以改变程序的正常执行顺序。 转移地址的寻址方式指寻找的操作数作地址用,给IP或给CS:IP,从而实现程序的转移。 如果程序转移后只有IP发生了改变,则称为段内转移或者称为近程转移(也称为NEAR型转移)。 如果程序转移后CS、IP均发生了改变,则 称为段间转移或者称为远程转移(也称为FAR型转移)。,84/96,转移地址的寻址方式有4种: 段内直接寻址 段内间接寻址 段间直接寻址 段间间接寻址 8086指令系统中的转移指令有两大类: 无条件转移指令:有JMP、CALL、RET、IRET 条件转移指令:如JZ、JC、JCXZ、LOOP等,转移地址的寻址方式,85/96,段内直接寻址,JMP指令的操作数部分直接给出目标单元 指令所在存储单元的地址的形成: CS*10H+(IP) (IP)=(IP)disp(8位或者16位) 例如:,. . . JMP ABC1 . . . ABC1: . . .,注:8086指令系统当中的所有条件转移指令只能在段内转移,且转移范围以当前IP为基准,不能超出-128+127之间,其寻址方式为段内相对寻址。,86/96,段内间接寻址,JMP指令转移的目标地址在某一个通用寄存器中或者在某一个字存储单元中 指令所在存储单元的地址的形成: CS*10H+(IP) (IP) EA(存在寄存器或存储器单元中) 例如:,JMP CX 或者 JMP WORD PTR BX,87/96,段间直接寻址,指令码中直接给出16位的段地址和16位的有效地址。 指令所在存储单元的地址的形成: (IP) EA(指令) (CS) 段地址(指令) 例如:,COSEG1 SEGMENT . . . JMP FAR PTR TRAGET . . . COSEG1 ENDS,COSEG2 SEGMENT . . . TRAGET: - . . . COSEG2 ENDS,段间转移地址的寻址方式,只适合于无条件转移指令,88/96,段间间接寻址,段间间接寻址和段内间接寻址相似,要得到的转移地址包括16位段地址和16位有效地址,使用地址连续的4个存储单元存储 指令所在存储单元的地址的形成: (IP)EA(存储单元的前两个字节) (CS)段地址(存储单元的后两个字节) 例如:,JMP DWORD PTR ADDRBX 或者 JMP DWORD PTR BXSI,89/96,3.7 80X86系列高档微处理器简介,随着计算机应用领域的扩展,对个人电脑的微处理器的处理能力要求越来越高。Intel公司从80年代初相继推出了80186、80286、80386、80486和Pentium系列微处理器,不断地将PC推向新的发展阶段。下面简要介绍一下80286Pentium几种微处理器的特点。,90/96,CPU性能每18个月增加一倍 晶体管数目每两年增加一倍,摩尔定律,后面是什么?,Itanium 733/800MHz IA-64架构,McKinley IA-64架构,Madison IA-64架构,Deerfield IA-64架构,Pentium ,Pentium MMX,Pentium Pro,80486DX2,80386DX,80286,8086,奔腾不息 升级不止,91/96,80286,16位数据线,24根地址线 逻辑上有4个独立的处理元件:执行部件EU,地址部件AU,总线部件BU,指令部件IU 三组寄存器:通用寄存器、段寄存器、状态和控制寄存器 具有实地址和虚地址保护方式 实地址方式与8086工作方式基本相同,为了和8086兼容,80286的24根地址线中只有低20位A19 A0有用,因此,在实地址方式可寻址空间为1MB 虚地址保护方式支持对虚拟存储器的管理,使用24根地址线A23 A0,可直接寻址16MB空间,92/96,8086只能工作于实模式。在实模式下,CPU只能访问地址低端的1MB存储器。各种微处理器在每次加电或复位后都默认以实模式开始 Windows可以工作于保护模式。保护模式允许访问低端的1MB存储区和高于1MB以上的存储区。在保护模式下,段寄存器存储的不再是段地址,而是与段地址相关的选择符。,实模式与保护模式,93/96,80386,32位数据线,32根地址线。 逻辑上有6个独立的处理元件:总线接口部件、代码预取部件、指令译码部件、存储器管理部件、执行部件、控制部件。 七组寄存器:通用寄存器、段寄存器、专用寄存器、控制寄存器、系统地址寄存器、调试寄存器、测试寄存器。 80386的最大特点是在CPU芯片上集成了一个存储器管理部件(MMU),可对246的虚拟存储空间和4KM字节(232)的物理存储空间进行分段和分页管理。,94/96,80486,32位数据线,32根地址线。 相当于一片80386加上一片80387,再加上8K的片内高速缓存(cache) 完全拥有80386的所有功能,诸如页式存储管理、段式存储管理、DEBUG功能、自测试功能、三种工作模式、多任务,流水线,32位整机算术逻辑运算等 在IntelCPU的历史上首次采用了RISC技术,常用指令仅需一个时钟周期便可完成,采用突发总线同RAM进行高速数据交换,95/96,Pentium微处理器,Pentium在80486体系结构上作了一些增强性的改进,比如:使存储器每页内容增大,避免频繁的换页操作;微代码操作由硬件固化实现,执行速度加快;外部数据总线为64位;支持多种类型的总线周期等。 超标量流水线。它的设计是Pentium微处理器技术的核心,由两条指令流水线构成,每条流水线都有自己的ALU、地址生成电路和数据Cache接口,允许在单个时钟周期内执行两条整数指令,比相同频率的486性能提高了一倍。 独立的指令Cache和数据Cache。可以使指令预取和数据操作同时进行,使Pentium的性能大大超过80486。 重新设计浮点单元。 动态分支预测技术。保证流水线的指令预取步骤不会空置。,96/96,习题(1),1、8086CPU标志寄存器中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年小学一年级语文考试实践试题及答案
- 2024年汽车美容师行业调研与分析试题及答案
- 2025年重组载体疫苗项目建议书
- 2024年小学语文试题及答案能力分析
- 2025年石棉纤维及其制品项目合作计划书
- 2024年视觉传播设计考试考题概览
- 2024古代文学史试题及答案的重要性
- 2025年高纯BN扩散沅制品项目发展计划
- 2024年食品质检员考试关注问题分析
- 2024年食品质量监控考试考点及答案
- 华北电力大学丁肇豪:多主体数据中心算力-电力跨域协同优化
- 科技公司费用报销制度及流程比较
- DL-T-1878-2018燃煤电厂储煤场盘点导则
- 《扣件式钢管脚手架安全技术规范》JGJ130-2023
- 智慧冷链产业园整体解决方案
- 供应商产品及过程变更控制程序
- 《2022年上海市初中语文课程终结性评价指南》中规定的150个文言实词
- 《铁道概论铁路车站》PPT课件
- TI-BQ40Z50-软件(课堂PPT)
- 建设项目3000万元以下估算投资额分档收费标准
- 《礼仪培训》PPT课件
评论
0/150
提交评论