收藏 分销(赏)

计算机硬件技术基础第三版ppt课件.ppt

上传人:胜**** 文档编号:92891 上传时间:2022-07-08 格式:PPT 页数:399 大小:9.02MB
下载 相关 举报
计算机硬件技术基础第三版ppt课件.ppt_第1页
第1页 / 共399页
计算机硬件技术基础第三版ppt课件.ppt_第2页
第2页 / 共399页
计算机硬件技术基础第三版ppt课件.ppt_第3页
第3页 / 共399页
计算机硬件技术基础第三版ppt课件.ppt_第4页
第4页 / 共399页
计算机硬件技术基础第三版ppt课件.ppt_第5页
第5页 / 共399页
点击查看更多>>
资源描述

1、课件使用说明: 1、所用计算机上应装载有flash软件或插件,本课件的动画要用。 2、单击课件上的箭头按钮,则启动动画操作。 3、单击课件上的方块按钮,则停止动画操作。二者可随时进行交换操作。,第2章,16位微处理器,2.1 8086/8088内部寄存器,8086寄存器组又称为8086的程序设计模型 它是程序设计中惟一可见的CPU部件 它是系统程序设计员的操作对象 含14个16位寄存器,按功能可分为三类: 通用寄存器,8个 段寄存器,4个 控制寄存器,2个,8086/8088 寄存器,SP,IP,FLAGS,AH,AL,BH,BL,CH,CL,DH,DL,AXBXCXDX,BP,SI,DI,C

2、S,DS,ES,SS,通用寄存器,控制寄存器,段寄存器,1、通用寄存器,数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI),地址指针寄存器,SP:堆栈指针寄存器其内容为堆栈栈顶的偏移地址;任何堆栈操作后,SP都会自动增/减量。BP:基址指针寄存器在间接寻址中用于存放操作数的基地址;常用于访问存放在堆栈中的数据。,变址寄存器,SI:源变址寄存器,用于访问源操作数DI:目标变址寄存器,用于访问目的操作数常用于操作数的间接寻址或变址寻址。在串操作指令中,SI存放源操作数的偏移地址,而DI存放目标操作数的偏移地址。,二、段寄存器,用于存放逻辑段的段基地址(简称

3、段地址)CS:代码段寄存器。代码段存放指令代码DS:数据段寄存器 ES:附加段寄存器SS:堆栈段寄存器:指示堆栈区域的位置,这两个段存放操作数,堆栈段,SS,数据段,DS/ES,代码段,CS,三、控制寄存器,IP:指令指针寄存器其内容为下一条要执行的指令的偏移地址。FLAGS:标志寄存器存放指令执行结果的特征:有些指令(如算术指令)要改变FLAGS的内容(影响FLAGS);有些指令对FLAGS无影响。6个状态标志位(CF,SF,AF,PF,OF,ZF)3个控制标志位(IF,TF,DF),2.2 8086CPU的功能结构,8086内部由两部分组成: 执行单元(EU) 总线接口单元(BIU),总线

4、接口部件,功能:从内存中取指令到指令预取队列IPQ;负责与内存或I/O接口之间的数据传送;在执行转移指令时,BIU将清除IPQ,然后从转移的目的地址处开始取指令并重新填充IPQ。,执行部件,功能:执行指令,具体操作如下 从IPQ中取指令代码 译码 完成指定的操作 结果保存到目的操作数 运算特征保存在标志寄存器FLAGS(仅对影响标志的指令),8086操作方式比较,取指令,指令译码,取操作数,执行指令,存放结果,CPU执行一条指令的过程类似于工厂生产流水线,被分 解为多个小的步骤,称为指令流水线。,原料,调度分配,生产线,成品,仓库,出厂,数据和程序指令,控制器的调度分配,ALU等 功能部件,处

5、理后的数据,存储器,输出,2.3 8086操作模式及引脚信号,一 .8086两种工作模式:最小模式和最大模式 最小模式不支持8087。存储器和I/O控制信号全部由CPU产生。 最大模式支持8087。 CPU的部分信号线被用作8087的控制,因此需要由8288总线控制器来产生这些控制信号。,最小模式下的连接示意图,8086CPU,控制总线,数据总线,地址总线,地址锁存器,数据总线缓冲器,ALE,时钟发生 器,8284A,地址/数据,8286,8282,Vcc,DEN,DT/R,最大模式下的连接示意图,8088CPU,数据总线,地址总线,地址锁存器,数据总线缓冲器,时钟发生 器,总 线控制器,控制

6、总线,8284A,8288,ALE,CLK,8282,8286,GND,二、8086CPU的引线及功能,引脚定义方法大致分为:每个引脚只传送一种信息(如RD)电平的高低代表不同的含义(如M/IO)在不同模式下有不同的名称和定义(如WR/LOCK)分时复用引脚(如AD15AD0)引脚的输入、输出分别传送不同的信息(如RQ/GT0),最小模式下的主要引线,MN/MX 工作模式控制=0(接地):工作于最大模式;=1(接Vcc):工作于最小模式。,最小模式下的主要引线,地址总线、数据总线:AD15AD0:三态地址/数据复用引脚。ALE=1时作为地址线A16A0,ALE=0时作为数据线D16D0。传送地

7、址时为输出,传送数据时为双向。A19-A16/S6-S3:输出,三态地址/状态复用引脚。ALE=1时作为地址线A19A16,ALE=0时作为控制信号。,最小模式下的主要引线,控制信号:WR:输出,三态写选通信号,表示CPU正在写数据到MEM或I/O设备。RD:输出,三态读信号,表示CPU正在从总线上读来自于MEM或I/O设备的数据。M/IO:输出,三态区分是读写存储器还是读写I/O端口(即地址总线上的地址是存储器地址还是I/O端口地址)。,最小模式下的主要引线,DEN:输出,三态数据总线允许信号。用来打开外部数据总线缓冲器。DT/R:输出,三态表明CPU正在传送还是接收数据,用作外部数据总线缓

8、冲器的方向控制;ALE:输出地址锁存允许信号,表示地址/数据总线上传输的是地址信号。,最小模式下的主要引线,RESET:输入 复位信号,保持4个以上时钟周期的高电平时将引起CPU进入复位过程(IF清0,并从存储单元FFFF0H开始执行指令);BHE/S7:输出高8位数据总线允许。在读/写操作期间允许高8位数据总线D16D8有效(即读/写数据的高8位)。 READY:输入准备就绪。用于与存储器或I/O接口的同步。=0时CPU进入等待状态(插入1个或多个等待周期)。,中断请求和响应信号,INTR:输入可屏蔽中断请求输入端,CPU要检查IF状态NMI:输入非屏蔽中断请求输入端, CPU不检查IF状态

9、INTA:输出中断响应信号,表示CPU已进入中断响应周期。此信号常用来选通中断向量号。,2.4 8086/8088存储器组织,8086可访问1MB的存储空间(为什么?)哪个寄存器能够放得下20位的地址?用分段的方法解决。段是存储器中的一块区域段起始于存储器内16字节整倍数的边界处。段首地址的最低4位一定为0用段和偏移的组合访问存储单元每个段最大为64KB,最小为16B(为什么?)所有存储单元的地址都由段地址加偏移地址组成段地址被装入段寄存器中以供寻址使用偏移地址用于在64KB存储器段内选择任一单元,段和偏移,设段起始地址=60000H段地址偏移地址0FFFFH,6A000H,12H,60000

10、H,6 0 0 0,段寄存器,偏移地址A000H, ,物理地址和逻辑地址,物理地址: 存储单元的硬件地址物理地址=段地址16 (或段地址左移4位)+偏移地址逻辑地址: 段和偏移形式的地址逻辑地址用于汇编语言程序设计以下地址都是逻辑地址的例子:2500H:0100H段地址A000H偏移地址0001H,例1,已知CS=1055H,DS=250AH ES=2EF0H,SS=8FF0H 数据段中某操作数偏移地址=0204H各段首地址=?画出各段在内存中的分布该操作数的物理地址=?这个例子说明:段与段可以不连续段之间可以重叠,10550H,250A0H,2EF00H,8FF00H,DS段,ES段,SS段

11、,CS段,默认段和偏移寄存器,8086规定了访问存储器段的规则:此规则定义了段地址寄存器和偏移地址寄存器的组合方式,其默认规则如下表:,25 80868088的不足,微机技术与时俱进,现在已经进入了64位双核的微处理器时代。8086之所以被历史淘汰,是因为其性能与现在微处理器相比相形见绌,主要表现在以下几个方面。1存储器容量小2时钟频率低3计算精度低4技术含量低5存取速度低 本教材下面几章将要描述的是32位微处理器上配备的技术,其主要目的为读者领略微机领域内的先进技术,跟上世界微机领域内的先进水平。,第 3 章,32位微处理器,本章知识要点: 本章以32位的Pentium为平台,站在微处理器芯

12、片整体结构角度,把构成CPU的诸如寄存器组、总线接口部件、存储管理部件、分支转移缓冲存储器、控制部件、预取缓冲部件、指令译码部件、整数部件、浮点部件等各部件的结构、功能、工作原理,以及Pentium所采用的超标量执行技术、分支转移预测技术、流水线操作技术、浮点部件、浮点流水线操作等先进技术进行了描述。 本章内容是微机知识的核心、是重点、难点所在, 通过本章的学习,读者得到是系统、先进的微机知识。,31 CISC和RISC,1 复杂指令系统计算机CISC 每一种微处理器的CPU都有属于它自己的指令系统。CPU正是通过执行一系列的特定的指令来实现应用程序的某种功能。像Intel x86系列,为了增

13、加新的功能,就必须增加新的指令;另一方面,为了保持向上兼容,又必须保留原有的指令。每条指令又有若干个不同的操作字段,用来说明要操作的数据类型,以及存放的位置。这就意味着一个较大的指令系统和复杂的寻址技术。以这样的微处理器为平台的计算机系统就是“复杂指令系统计算机”(CISC)。 CISC也有许多优点,如指令经编译后生成的指令程序较小执行起来较快,节省硬件资源。像存取指令的次数少,占用较少的存储器等。,2 .精简指令系统计算机RISC,“精简指令系统计算机”(RISC)的核心思想,是通过简化指令来使计算机的结构更加简单、合理,从而提高CPU的运算速度。解决途径就是减少微处理器指令总数和减少指令操

14、作的时钟周期数。经过当时的技术比较测试表明,处于同样工艺水平的芯片,RISC的运行速度是CISC运行速度的3-5倍。特征: (1) 每个计算机周期执行一条指令 (2) 进行的是寄存器与寄存器之间的操作 (3) 寻址方式简单 (4) 指令格式简单,32 Pentium 体系结构,321Pentium寄存器 Pentium配备的寄存器按类可分为如下几类:(1)基本体系结构寄存器: 通用寄存器; 指令指针寄存器; 标志寄存器; 段寄存器; (2)系统级寄存器: 系统寄存器; 系统地址寄存器;()调试和测试寄存器:()浮点寄存器: 浮点寄存器包括: 数据寄存器;标记字寄存器; 状态字寄存器 ;指令和数

15、据指针寄存器; 控制字寄存器;,注:图中的深色部分表明,只有32位的80386、80486,Pentium微处理器才配备有、且可以用这些32位的寄存器。,基本体系结构寄存器,(1) 通用寄存器 8个通用寄存器也可以称之为多功能寄存器,它们全部是32位寄存器,而且用户可以随意使用这8个32位通用寄存器。在这些寄存器内存放着逻辑操作和算术运算用的操作数,除堆栈指针寄存器ESP不能作为变址寄存器使用外,其余七个通用寄存器在进行地址计算时都可用来存放参与运算的操作数。,() 段寄存器,Pentium器配备有6个16位的段寄存器,他们分别是: 代码段寄存器CS、数据段寄存器DS、 堆栈段寄存器SS、附加

16、数据段寄存器ES、 附加数据段寄存器FS、附加数据段寄存器GS。 这6个段寄存器与80386的6个段寄存器同宗、同名、同功能。段寄存器的另一种称呼叫段选择符,也有的称其为段选择子。,()标志寄存器,Pentium标志寄存器的作用是用来存放有关Pentium的状态标志信息、控制标志信息以及系统标志信息。各条件码(例如进位、符号、溢出)及方式位均存放在的标志寄存器EFLAGS中,如图所示。 标志寄存器中这些标志不仅控制着微处理器的某些操作,且随时随地的指示出微处理器的状态。标志寄存器内不仅有状态和控制标志,而且还有几位是系统标志位。状态标志位用S表示,控制标志位用C表示,系统标志位用表示。,()

17、指令指针寄存器 指令指针寄存器EIP内保存有当前代码段中下一条要执行指令的偏移量。指令指针寄存器不直接供程序员使用,它由控制转移指令(转移、返回等指令)、中断及异常隐含地进行控制。,3系统级寄存器 () 系统地址寄存器 全局描述符表寄存器GDTR 中断描述符表寄存器IDTR 局部描述符表寄存器LDTR 任务寄存器TR,(2) 控制寄存器 Pentium由于控制管理的需要,又配备了5个控制寄存器。CR0、CR1、CR2、CR3和CR4。, 控制寄存器CR0,控制寄存器CR1: Pentium微处理器的CR1控制寄存器没有定义,供将来用。 控制寄存器CR2: Pentium的CR2控制寄存器内保存

18、的是页故障线性地址。控制寄存器CR3: Pentium的CR3控制寄存器是页目录基地址寄存器,保存着页目录表的物理基地址。控制寄存器CR4 较之80386、80486微处理器,Pentium又新配备了一个CR4控制寄存器。其内共设置了6个控制位。其目的是用来扩展Pentium的某些体系结构。,322Pentium 体系结构 Pentium是由总线接口部件(64位的)、 存储管理部件(分段、分页管理部件)、 指令Cache、数据Cache、 分支转移目标缓冲存储器、 控制ROM部件、控制部件、 预取缓冲部件、指令译码部件、 整数运算部件、整数及浮点数寄存器组、浮点运算部件等功能组成。,()总线接

19、口部件 总线接口部件与片内Cache外部总线接口实行的是逻辑接口连接。当访问Cache出现没命中、或需更改系统存储器内容、或需向Cache写入某些信息时,就要通过总线接口从外部存储器系统中取出一批数据。()预取缓冲部件 取指令是指从高速缓冲存储器Cache内或从内存储器中取出指令代码,以备译码之用的操作。()指令译码部件 译码操作, 一是检查一条指令的格式, 二是确定它是哪种类型操作的指令,并给出这条指令所需的操作数。()控制部件 Pentium微处理器控制部件的作用是,负责解释来自指令译码部件的指令字和控制ROM的微代码。控制部件的输出控制着整数流水线部件和浮点部件。 (5)执行部件 是微处

20、理器用于执行指令所规定的具体操作的CPU的核心硬件部分。这些非常具体的操作是指诸如数值运算、逻辑操作以及分支转移处理等。,(6)分段部件 Pentium的存储管理是采用了分段存储管理技术和分页存储管理技术实现的。 所谓段,就是一个被保护的独立的Pentium使用的存储器内的存储空间。 分段部件的功能是,将由程序提供的逻辑地址转换成一种线性地址。(7) 分页部件 Pentium微处理器的分页存储管理部件,在整个存储管理系统内采用的是二级分页管理机制。 使用分页部件可以使程序能够访问比实际存储空间大很多的数据结构,所采用的手段就是将这种大数据结构的一部分保存在主存储器之内,而另一部分则保存在磁盘上

21、的分页技术。,3. 3 Pentium 采用的新技术 1. 超标量执行 超标量是指那种拥有多条指令流水线,并在每个时钟周期中可执行一条以上的指令(在理想情况下)的微处理器处理指令的操作方式。 Pentium的超标量体系结构,配备有三条流水线,一条是执行浮点指令的浮点部件内的浮点流水线,而另两条则是整数运算部件内执行整数指令的U流水线和V流水线。这样就使得Pentium拥有了可同时执行3条指令的能力。,超标量执行,2 分支转移预测技术分支转移预测和推测执行技术 采用分支转移预测和动态推测执行的主要目的,是为了提高CPU的运行速度。推测执行是建立在分支 转移预测基础上的一项技术。 推测执行是指允许

22、CPU去处理那些不一定总能被执行的指令,例如,跳过条件的分支转移。在经分支转移预测程序预测判断之后,决定是否进行分支转移,接下来所要进行的处理就是推测执行。 2. 分支转移预测判断 为了支持在Pentium内采用的分支转移预测新技术,芯片内装备有两个预取缓冲存储器,一个是以线性方式来预取代码,另一个则是根据分支转移目标缓冲器(BTB)预取代码。这样就可以保证在执行之前将所需用的指令从存储器预取出来。 由于Pentium采用了这项技术,可以在无延迟的情况下正确地预测各种转移。另外,V流水线中的条件转移指令可以与一条比较类指令成对执行,当然也可以与U流水线中的置标志指令配合执行。但Pentium作

23、到了与现有软件是完全兼容,所以不必修改现有软件。,3 流水线技术 流水线操作(Pipeline),类似于大工业生产的“装配线”设计,Pentium微处理器的流水线操作是指把指令的操作处理分解成许多更小的操作步骤或操作阶段,每个操作步骤或操作阶段都由各自独立的电路来实现的。 当一条指 令执行完了一个操作步骤之后,它就按顺序进入到流水线操作的下一个操作步骤,而前一个操作步骤则会继续处理后续的指令。,2. Pentium整数流水线 Pentium的整数流水线操作是由 预取PF、 首次译码D1、 二次译码D2、 执行EX、 写回WB 共五个操作步骤组成。,非流水线操作 为了更好地说明流水线操作技术,以

24、及更好地认识流水线操作的技术进步, 先从非流水线操作认识起,当一条指令在执行的过程之中时,其他指令则要眼吧吧地看着这条指令的执行,等待着这条指令的完成。只有前一条指令经历了这五个操作步骤,完成了这条指令的操作,下一条指令才可得以进入指令的执行,同样又是五个时钟周期时间,同样又是其他指令的等待。这种非流水线操作方式并没有把计算机执行的时间资源有效地利用起来,指令流水线操作 Pentium整数指令的执行要经过指令预取PF、指令首次译码 D1、二次译码D2、指令执行EX和写回WB这五个操作步骤。在流水线内会有5条指令同时执行。,指令流水线操作 Pentium是一种能够以并行方式同时执行两条指令的超标

25、量机器。两条指令按照流水线操作的5个操作步骤以并行方式执行操作,使整数指令能够在一个时钟里,在两条流水线上同时执行,指令配对规则 Pentium微处理器每个时钟可以发出一条或两条指令。要同时发出两条指令,必须满足下列配对规则: 配对两条指令必须是所谓的“简单”指令; 两条指令之间不得存在“写后读”或“写后写”这样的寄存器相关性; 一条指令不能同时既包含位移量又包含立即数;带前缀(JCC指令的OF除外)的指令只能出现在U流水线中。依赖性或相关性是指,只有当一条指令执行完毕之后,才允许另一条指令执行的一个条件。,3.4 Pentium 操作模式,Pentium有两种主要的操作模式及一种“系统管理模

26、式”。操作模式决定可使用哪些指令及体系结构特性。这些模式如下:(1) 保护模式 这是微处理器的本机状态,在这个模式下所有指令及体系结构特性均可以使用。(2)实地址模式(也称实模式) 这种模式提供了8086的程序设计环境,并有一些扩展功能(如退出该模式, 复位时把处理器置于实模式,也可以通过一条指令使处理器切换到保护模式。(3)系统管理模式 Pentium还支持系统存储管理模式(SMM),SMM是所有新的Intel微处理器(从80386开始)所特有的一种标准体系结构特性。,3.5 浮点部件 Pentium 通过芯片内的浮点部件把浮点技术表现得淋漓尽致,由于Pentium 微处理器把浮点部件与整数

27、部件、分段部件、分页部件等都集成到同一芯片之内,而且执行的是流水线操作方式。把整个浮点部件设计成每个时钟周期都能够进行一次浮点操作,每个时钟周期可以接受两条浮点指令,但是其中的一条浮点指令必须是交换类的指令。 对程序设计人员来说,可把Pentium芯片内的浮点部件FPU看成是一组辅助寄存器,是数据类型的扩展;还可以把浮点部件的指令系统看成是Pentium指令系统的一个子集。 Pentium 的浮点部件是在80486浮点部件的基础上重新设计而成。其整体性能比80486性能会高出5倍之多。,351 浮点部件体系结构1 数值寄存器 Pentium浮点部件的数值寄存器是由8个80位的数值寄存器、三个1

28、6位的寄存器等构成。其中,这8个80位的能各自独立进行寻址的数值寄存器,又可用来构成一个寄存器堆栈。,而3个16位的寄存器分别称之为浮点部件FPU的状态字寄存器、浮点部件控制字寄存器和标记字寄存器。,2状态字寄存器 Pentium 片内浮点部件状态字寄存器内容反映的是浮点部件的全部状态和环境。根据其作用状态字又可以进一步细分成两个字段:一个是异常事故标志字段,另一个则是状态位字段。首先用一条存放在存储器中的浮点操作指令检查状态字,然后再使用Pentium 指令代码再检查各位状态。,3 控制字寄存器 控制字内包括有事故屏蔽,允许中断屏蔽以及若干控制位。图中示出了控制字格式以及各字段的意义。,4标

29、记字寄存器 标记字的功能优化了浮点部件的性能,图中展示出标记字各字段,从图中可以看出,标记字是由八个字段构成,每个字段长度均为两位,分别用来标志 八个数据寄存器。,3.5.2 浮点部件流水线操作1Pentium浮点流水线 Pentium的浮点部件则是在80486的基础上重新进行了设计。它所采用的快速算法可以使诸如加法、乘法以及装入这样的常用操作速度提高了10倍。 (1)浮点流水线操作 Pentium 浮点流水线是由预取PF、首次译码D1、二次译码D2、存储器和寄存器的读操作EX、首次执行X1、二次执行X2、写浮点数WF和出错报告ER共八个操作步骤组成。 其中预取PF和首次译码D1这两个操作步骤

30、与整数流水线中的前两个操作步骤公用同一硬件资源。而浮点流水线中的第三个操作步骤是开始激活浮点指令的执行逻辑,其实浮点流水线中的前五个操作步骤与整数流水线中的五个操作步骤是同步执行的,只是多出了三个步骤而已。,浮点部件中的这八个操作步骤: PF 预取 D1 指令译码(首次译码) D2 地址生成(二次译码) EX 存储器和寄存器的读操作,将浮点数据转换成外部存储格式且还要执行存储器的写操作。 X1 浮点执行步骤1(首次执行); 将外部存储器数据格式转换成内部浮点数据格式,并且还要把操作数写到浮点寄存器上。 X2 浮点执行步骤2(二次执行); WF 写浮点数,完成舍入操作,并且把计算后的浮点结果 写

31、到浮点寄存器(此时可进行旁路2操作)。 ER 报告出现的错误/更新状态字的状态。,第 4 章,指令系统,41 指令格式,411 指令格式 指令是由许多部分组成的,在构成指令的这几部分中,只有操作码部分是必需存在的。其余各部分则要根据指令操作所涉及的操作数类型、以及操作数存放在何处等因素决定取舍。 任何一条机器指令都是由一组二进制代码构成,通常又被进一步分成操作码部分和地址码部分,一般的指令格式如图所示。,808680286是16位的微处理器, 16位的指令格式如图所示。,Pentium(32位)指令的一般格式如图所示; 。 由图可知,一条指令是由可任选的指令前缀(可以以任何的次序)、一个或两个

32、原操作码字节、有可能要用的地址说明符(由ModR/M字节和按比例变址基地址SIB字节构成)、一个位移量(根据需要)和一个立即操作数数据字段(如果需要的话)等元素组成的。 Pentium的所有指令都是如图所示的指令格式的子集,1指令前缀 指令前缀是置于指令前面的一个或多个字节,它的作用是用来修改指令的操作。下面所列出的这四个指令前缀就是供应用程序使用的。(1)指令前缀: (2)段的超前前缀: (3) 操作数大小前缀:(4)地址大小前缀:,2指令中各字段意义(1)操作码字段(2)Mod R/M字段 (3)SIB字段(4)偏移量 (5)立即数,42 寻址方式,寻址方式是指微处理器获取操作数的方式。一

33、条指令必须说明两个问题;一是要说明这条指令要进行什么操作,二是要说明这条指令的操作数位于何地。一条指令可以对零个或多个操作数操作。零个操作数的指令的例子是NOP指令(即没有数)。操作数可以位于下列位置处:(1)指令本身有操作数;即立即操作数(2)操作数在寄存器中;(3)操作数在存储器中 (4)操作数在/端口,421 常用寻址方式 1立即操作数寻址 是说指令本身带的数据作为一个操作数用,即指令所用的操作数是指令自身所拥有的,像单操作数指令或两操作数指令即是这类指令。凡指令本身所拥有的操作数就称之为立即操作数。 例如, MOV AX,1999H ;这条指令的功能是将16进制的立即操作数1999传送

34、到AX寄存器。由于立即操作数1999是16位的,其中存放在代码段的高地址字节中的内容被传送到AH寄存器,低地址字节中的内容被传送到AL寄存器,如图所示。,2.寄存器操作数寻址 将操作数存放在32位通用寄存器中,或存放在16位通用寄存器中,或存放在8位通用寄存器中,并对操作数进行访问操作,称之为寄存器操作数寻址。指令 MOV EDX,EAX ;,3 存储器操作数寻址 (1)直接寻址 直接寻址是一种很简单的寻址方式,虽然操作数存放在存储器内,但在这种直接寻址方式下,操作数的有效地址是由指令直接给出。例如: MOV EAX, LISTT 这条指令的功能是,将地址LISTT处4个连续字节地址中的32位

35、操作数传送到寄存器EAX内。LISTT 是存储器中存储单元的符号地址,LISTT的实际地址是1230H这个十六进制地址,(2)寄存器间接寻址 寄存器间接寻址这种寻址方式,可以对存储器内的任何存储单元的数据进行寻址,只是要借助于在BP,BX,DI和SI这些寄存器内保存的偏移地址。 例,如果寄存器BX的内容是1000H,在执行MOV AX,BX指令之后,地址1000H处的字内容被传送到AX寄存器中,如图所示。,(3)基地址加变址寻址 所谓基地址加变址寻址,就是操作数位于所选的存储器段内,操作数的有效地址由一个基地址寄存器的内容再加上一个变址寄存器的内容构成。 通常,在基地址寄存器内保存的是位于存储

36、器内数组的起始地址,而在变址寄存器内保存的是数组元素的相对位置。每次BP寄存器在对存储器内的数组进行寻址时,由BP寄存器和堆栈段寄存器两者生成有效地址。 例如:MOV EDX ,EAX + EBX,(4)寄存器相对寻址 寄存器相对寻址类似于基址加变址寻址,只不过是在寄存器相对寻址方式下,在变址寄存器或基地址寄存器的内容中,加上了一个位移量,而形成了操作数的有效地址的值,然后是用这个有效地址的值,对存储器中的操作数进行寻址。 操作数的有效地址是由基地址或变址寄存器的内容再加上一个8位数值、16位数值或32位数值的位移量组成。 例如:MOV EAX, ECX+1AH 指令是,将数据段中由ECX寄存

37、器上的内容,再加上1A这个数值所形成的操作数地址中的内容传送至EAX寄存器。 指令 MOV AX,BX+1000H的操作过程 如图示,( 5)相对基地址加变址寻址 相对基地址加变址寻址类似于基地址加变址寻址,它除了需要加上位移量之外,仍然需要用基地址寄存器和变址寄存器的内容来形成操作数的地址。也就是说,它是用基址寄存器和变址寄存器上的内容再加上位移量,从而形成操作数在存储器中的有效地址。这种寻址方式常被用来对存储器内的二维数组的数组元素进行寻址。例如: MOV EDX ,EBX+ECX+200H 图中以指令MOV EAX,BX+SI+100H执行过程为例,展示出用相对基址加变址寻址方式进行寻址

38、的操作过程。,( 6)带比例因子的变址寻址 这种寻址方式是80386Pentium所特有的,在对存储器进行寻址操作时,要用到两个寄存器,第1个是基地址寄存器,第2个是变址寄存器,它们均是32位的寄存器。 这种寻址,只有第2个变址寄存器才会与比例因子相乘,变址寄存器内容乘以比例因子后,再加上位移量即可形成操作数的32位的有效地址。 比例因子可以是1、2、4或8。比例因子为1是默认的,例如,指令MOV AL,EBX+ECX 就没有在变址寄存器ECX前面显式地乘以1。 比例因子为2用来对字数组中的数组元素进行寻址操作的 比例因子为4用来对双字数组中的数组元素进行寻址, 例如: MOV EAX ,EB

39、X+4*ECX 比例因子为8用来对四字数组中的数组元素进行寻址。,(7)基地址加比例因子变址寻址 这种寻址方式是在前面所述带比例因子的变址寻址方式的基础上,再加上一个位移量就构成了这种寻址方式。例如: MOV EAX + 2 * EBX + 100H , DX 这条指令的功能是将16位寄存器DX之内容存储到,由EAX内容加上EBX寄存器内容的2倍,再加上位移量100H而生成的存储器地址。,422有效地址计算 在指令的操作码后面有mod R/M字节时,是最常用的一种指令格式,该字节为用户提供了灵活的寻址方式。存储器中操作数由mod R/M字节指定。被选中段内偏移量是位移量、基地址寄存器内容、一个

40、变址寄存器的内容乘比例因子之和。mod R/M字节给出了有效地址的计算过程公式; 有效地址 段基地址+ (变址 比例因子)位移量,43 指令系统,指令是对计算机发出的要计算机执行部件执行某种操作的操作命令,且由计算机直接识别执行。一般说来,一条指令对应着计算机的一种基本操作。 8086Pentium的指令系统分成如下几类 (1) 数据传送指令 (2) 算术运算指令 (3) 基本逻辑运算指令 (4) 控制转移指令 (5) 处理器控制指令 (6) 输入输出指令 (7) 串操作指令 (8) 新增指令,431 数据传送类指令 1通用传送类MOV指令 指令格式: MOV 目的操作数,源操作数 指令功能:

41、把源操作数的内容复制到目的操作数中去。8086Pentium的几个MOV指令都具有同样的功能。都是把源操作数的内容传送(复制)到目的操作数中,但不破坏源操作数的内容。 例如: 从存储器将数据传送到寄存器AX 从寄存器将数据传送到存储器 从段寄存器将数据传送到存储器/寄存器 从存储器/寄存器将数据传送到段寄存器 从一个寄存器将数据传送到另一个寄存器 从存储器/寄存器将数据传送到寄存器 把立即数据传送到寄存器 把立即数据传送到存储器/寄存器,2堆栈操作指令 (1)PUSH 把操作数下压入栈 指令格式: PUSH 源操作数 (2) PUSHA把全部16位通用寄存器内容下压 入堆栈 指令格式: PUS

42、HA (无操作数) (3)POP 上托堆栈字至目的寄存器/存储器3 XCHG交换指令 指令格式: XCHG 目的寄存器,源寄存器/存储单元,432 算术运算指令 又可分为加法指令,减法指令,乘法指令,除法指令。 1加法指令 (1) ADD 加法指令 指令格式: ADD 目的操作数,源操作数 指令功能: 两个操作数相加例如: 两寄存器操作数内容相加 寄存器与存储器内容相加 存储器与寄存器内容相加 立即数与寄存器内容相加 立即数与存储器的内容相加,(2)A DC 带进位加法指令 指令格式: ADC 目的操作数,源操作数 指令功能: 带进位的两个操作数相加 例: 立即数与寄存器进行带进位相加 立即数

43、与存储单元带进位相加 寄存器与寄存器带进位相加 寄存器与存储器带进位相加 存储器与寄存器带进位相加(3) 1NC 增1指令 指令格式: lNC 目的操作数 指令功能: 使寄存器、或存储单元的内容增1,2 减法指令(1)SUB 减法指令 指令格式: SUB 目的操作数,源操作数指令功能: 完成整数减法 例 寄存器与寄存器之间的减法 立即数减法 寄存器与存储器之间的减法,(2)SBB 带借位减法 指令格式: SBB 目的操作数,源操作数指令功能: 完成带借位的整数减(3) DEC 减l指令 指令格式: DEC 目的操作数 指令功能: 从寄存器/存储单元的字节或字或双字数据中减1 3CMP 两操作数

44、比较 指令格式: CMP 目的操作数,源操作数 指令功能: 从目的操作数减去源操作数,但不改变操 作数,其结果要引起标志的变更。,4乘法指令(1) MUL 乘法指令(无符号) 指令格式: MUL 源操作数 指令功能: 执行无符号的乘法(AX=AL指定的字节操作数) 执行无符号的乘法(DX-AX =AX指定的字操作数) 执行无符号的乘法(EDX-EAX =EAX指定的双字操作数)例如: 8位乘法指令 16位乘法指令 32位乘法指令,5 除法指令 (1)DIV 除法指令 指令格式: 语法 DIV 源操作数(除数) 指令功能: 执行AX寄存器中(无符号)字节数据的除法 执行DX-AX寄存器对中(无符

45、号)字数据的除法 执行EDX-EAX寄存器对中(无符号)双字数据的除法 例如: 8位除法指令 16位除法指令 32位除法指令,6BCD运算调整指令 二进制编码的十进制数叫作BCD数,BCD数通常是以压缩格式形式出现,每个字节存放两位BCD数字。 (1) 压缩的BCD调整指令 DAA加后的十进制调整 指令格式: DAA (无操作数) 指令功能: 加后的十进制调整 DAS减法十进制调整 指令格式: DAS (无操作数) 指令功能: 减后十进制调整,(2) 非压缩的BCD调整指令 非压缩的BCD是指ASCII码数,对ASCII码的数据进行算术运算操作有4条指令,它们分别是: AAA(加法后ASCII

46、调整)、 AAS(减法后ASCII调整), AAM(乘法后ASCII调整) AAD(除法前ASCII调整)。 这4条指令均是以寄存器AX作为源操作数或目标操作数。ASCII码的30H39H 之间的这十个数与十进制的09是相对应的。,4.3.3 逻辑运算指令 1逻辑指令 (1) NOT 逻辑“非” 指令格式: NOT 目的操作数 指令功能: NOT指令使字节或字或双字中的每一位都取反 (2) AND 逻辑“与” 指令格式: AND 目的操作数,源操作数 指令功能: 两个操作数的逻辑“与”操作 (3) 0R逻辑“或” 指令格式: OR 目的操作数,源操作数 指令功能: 完成逻辑“或”操作 (4)X

47、OR 逻辑“异或” 指令格式: XOR 目的操作数,源操作数 指令功能: 完成逻辑“异或”操作,2移位指令 (1)SALSARSHLSHR 移位指令 指令格式: SAL 目的操作数,移位次数指令功能: SAL 算术左移指令 SAR 算术右移指令 SHL 逻辑左移指令 SHR 逻辑右移指令指令操作: SAL或SHL指令命令指定的操作数左移一位。这样就把最高有效位MSB移进CF,把最低有效位LSB置0。,3循环移位指令 (1) ROLRORRCLRCR 循环移位指令 指令格式:RCL 目的操作数,循环移位次数 指令功能: ROL 左环移 ROR 右环移 RCL 经过进位左环移 RCR 经过进位右环

48、移 左环移指令ROL把所有位都左移一个位置,把最高有效位MSB移出环绕一周变成最低有效位LSB。,4.3.4 控制转移指令 1无条件转移指令(1) JMP 无条件转移指令 指令格式: JMP (转移的目标地址) 指令功能: 完成一次无条件的转移举例: 段间直接转移 段间间接转移 段内直接转移,2条件转移指令(1) J 指令 指令格式: J (测试条件) 指令功能: 若条件满足则短距离转移,3CALL 调用一个过程 指令格式: CALL 参数操作数 指令功能: CALL指令把程序流程传递到 被调用的过程4RET 从过程返回 指令格式: RET (无操作数) 指令功能: 返回到NEAR或FAR调用

49、程序,5LOOP 循环控制指令 指令格式: LOOP 目的地址 指令功能: 用CX计数器中内容控制循环 LOOP 如果CX内容不为0,则CX-1再转移至目的地址 LOOPE 如果CX0,ZF=1,则CX-1再转移至目的地址 LOOPNE如果CX0,ZF=0, 则CX-1再转移至目的地址 LOOPNZ如果CX0,ZF=0,则CX-l再转移至目的地址 LOOPZ 如果CX0,ZF=1,则CX-1再转移至目的地址6 INT/INTO 中断指令 指令格式: INT 中断类型 指令功能: 产生调用中断过程,4.3.5 处理器控制指令 1HLT 暂停指令指令格式: HLT (无操作数)指令功能: 微处理器

50、暂时停止运行 2WAIT 微处理器等待 指令格式: WAIT (无操作数)指令功能: 微处理器等待,检验数值异常的出现 3NOP 空操作 指令格式: NOP (无操作数)指令功能: 实现一次空操作,4.3.6 输入输出指令 1IN 输入指令 指令格式: IN 寄存器,端口 指令功能: 从指定的端口输入字节数据或字数据或双字数据 2OUT 输出指令 指令格式: OUT 端口,寄存器 指令功能: 把字节或字或双字发送到用立即数指出的I/O端口,4.3.7 新增加的指令 由于Intel系列微处理器是带有一点RISC色彩的CISC,其指令系统内拥有几百条指令之多,以上仅仅介绍了用户常用的部分指令,像标

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 大学课件

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服