计算机硬件基础重大.ppt

上传人:本田雅阁 文档编号:2634956 上传时间:2019-04-25 格式:PPT 页数:307 大小:3.14MB
返回 下载 相关 举报
计算机硬件基础重大.ppt_第1页
第1页 / 共307页
计算机硬件基础重大.ppt_第2页
第2页 / 共307页
计算机硬件基础重大.ppt_第3页
第3页 / 共307页
亲,该文档总共307页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机硬件基础重大.ppt》由会员分享,可在线阅读,更多相关《计算机硬件基础重大.ppt(307页珍藏版)》请在三一文库上搜索。

1、计算机硬件技术基础,学时数安排,讲课: 54学时,实验:,36学时,课件制作: 黄 勤 李 楠 甘思源 联系电话: 65106554,教 材:,计算机硬件技术基础,杨天怡主编,实验教材:,计算机硬件技术实验教程,黄 勤 主编,主要内容,1。微型计算机基础,2。Intel系列微处理器,3。80486指令系统,4。汇编语言程序设计,5。存储器及存储管理,6。输入输出方式与接口芯片 中断及中断控制器8259A 可编程定时/计数器8254 并行I/O接口芯片8255A,7。外设备接口技术 键盘接口、CRT接口、其它开关接口,8。总线(概述、ISA),教学要求,1。CPU工作方式、结构、时序基本概念 2

2、。486工作方式、内部结构 3。CPU引脚:主要是与总线有关的引脚 4。指令系统:8086全部及80486常用指令 5。程序结构:顺序、循环、分支、子程序 6。DOS调用:1、2、9、A号 35H、25H号了解 7。存储器分类及管理方法 8。中断:概念、中断程序结构、8259A中断管理芯片 9。DMA:了解 10。8254、8255A 11。串口,了解基本概念 12。键盘、LED主要是上机用,考试要求,1。考试可带教材、实验指导书、实验报告、预习报告、 笔记,但不得有复印件 2。考试分上机考试(30)、笔试(70),教学管理,1。3次迟到为一次旷课,旷课超过3次取消考试资格。 2。迟到5分钟以

3、上以旷课计。 3。可以书面申请自学,经教务批准后可免考勤,保留考试资格4。每次实验前撰写预习报告,连同上机签到册作为指导老师实验考勤依据。 5。每次实验后撰写实验报告,报告册在教材科购买。,第一章 微型计算机基础,第一节 微型计算机的组成,第二节 微型计算机的硬件结构,第三节 微型计算机中的先进计算机技术,第四节 微型计算机的主要性能指标及典型 微型计算机,第一节 微型计算机的组成,二、微型计算机的硬件组成,一、微型计算机系统的组成,硬件和软件两大部分组成,1.存储器,存储器是计算机中存储程序和数据的部件。计算机的存储器分为两大部分,一部分为内部存储器或主存储器,简称内存或主存;另一部分为外部

4、存储器或辅助存储器,简称外存或辅存。,存储容量,描述存储器存储二进制信息量多少的指标。存储二进制信息的基本单位是位(bit,b)。一般把8个二进制位组成的通用基本单元叫作字节(Byte,B)。微型计算机中通常以字节为单位表示存储容量。,1024B为1KB 1024KB为1MB 1024MB为1GB 1024GB为1TB,存储速度,描述存储器工作快慢程度的指标,它指信息存入存储器和从存储器中取出所需要的时间。,存储的类型,半导体存储器,磁记录存储器,光盘存储器,2.微处理器,微处理器是微型计算机的运算和控制指挥中心。不同的微处理器,其性能有所不同,但基本组成是相同的,由运算器、控制器和寄存器阵列

5、三个主要部件组成。, 运算器,执行算术运算和逻辑运算的部件,由累加器(Accumulator,A)、暂存器(Temporary,TMP)、算术逻辑单元(Arithmatic Logic Unit,ALU)、标志寄存器(Flag Registers,F)和一些逻辑电路组成。,累加器,算术逻辑单元,标志寄存器, 控制器,控制器是指令执行部件,包括取指令、分析指令(指令译码)和执行指令,由指令寄存器(Instruction Register,IR)、指令译码器(Instruction Decoder,ID)和定时控制电路(Timing and Control)等组成。, 寄存器阵列,寄存器阵列主要包

6、含两类寄存器,一是通用寄存器,供用户使用;二是一些用途固定的专用寄存器,如程序计数器、堆栈指示器。,程序计数器PC,用于存放下一条要执行的指令在存储器中存放的地址。,堆栈和堆栈指示器SP,堆栈是一块设在内存中按先进后出(First In Last Out,FILO)原则组织的存储区域,用于存放数据。数据存入栈区称为压入(PUSH),从栈区中取出数据称为弹出(POP)。,三、微型计算机的软件组成,3.输入输出设备,输入设备,输出设备,计算机的软件包含系统软件和应用软件两部分。系统软件是使用和管理计算机的软件,如操作系统、数据库管理系统、网络管理系统以及各种语言处理程序、系统维护程序等。应用软件则

7、是用户根据自己的需要,为解决某一实际问题而编制的程序,如企业的财务管理、人事管理,设备状态监测的数据采集与处理等。,第二节 微型计算机的硬件结构,一、硬件结构,微型计算机在硬件上普遍采用总线结构,总线结构使系统构成方便,并具有很好的可维护性和可扩展性。,二、总线,所谓总线,就是一组用于信息公共传输的信号线,连在总线上的所有部件均能使用的公共线路,但使用必须是分时的。按传输信息方向,总线分为只能单方向传输信息的单向总线和可以双向传送信息的双向总线。按传输信息类别,总线分为传输数据信息的数据总线(Data Bus ,DB)、传输地址信息的地址总线(Address Bus ,AB )和传输控制信息的

8、控制总线(Control Bus, CB)。,三、 数据总线、地址总线、控制总线,因为数据传输是双向的,故DB是双向总线。DB的位数越宽,一次数据传输的信息量就越大,8位DB一次只能传输1个字节的数据信息,而64位DB则一次可以传输8个字节的数据信息。,数据总线DB,因为地址信息总是由微处理器发出,寻址存储器或外设,故AB为单向总线。AB的位数越宽,寻址的空间就越大。8位微处理器的地址总线为16位,即有AB15AB0 16条地址线,寻址范围为216=64KB;目前生产的微处理器寻址范围已达到64GB。,CB包括微处理器向存储器发送的读选通信号RD、写选通信号WR,以及外设向微处理器发送的中断请

9、求信号NMI、INTR等。控制总线的各位作用不同,且一般都是单向的。,地址总线AB,控制总线CB,根据总线的组织方式,可把微型计算机的硬件结构分为单总线、面向微处理器双总线和面向存储器双总线结构。,单总线结构的微型计算机,面向微处理器的双总线结构微型计算机,面向存储器的双总线结构微型计算机,第三节 微型计算机中的先进计算机技术,一、中断技术,计算机暂停(或称为挂起)正在执行的程序转去处理随机事件,随机事件处理完毕后,再恢复执行原来的程序的过程称为中断。,二、流水线技术,流水线(Pipeline)技术是一种将一条指令的执行过程分解为多个步骤,并让几条指令的不同步骤操作在时间上重叠,从而实现几条指

10、令并行处理,提高程序运行速度的技术。每一个步骤均由一个独立的电路来完成,若干个完成不同操作步骤的电路组成了指令流水线。,三、乱序执行技术,所谓乱序执行(Out of Order Execution)技术就是允许指令按照不同于程序中指定的顺序发送给执行部件,从而加速程序执行过程的一种最新技术。它本质上是按数据流驱动原理工作的(传统的计算机都是按指令流驱动原理工作的),根据操作数是否准备好来决定一条指令是否立即执行。不能立即执行的指令先搁置一边,而把能立即执行的后续指令提前执行。,四、推测执行技术,推测执行技术(或称为预测执行技术)是为了充分发挥流水线与并行执行技术和分支超顺序执行技术而采取的一种

11、先进计算机技术。,五、高速缓冲存储器技术,在32位微机中,为了加快处理速度,在CPU与主存储器之间增设了一级或两级高速小容量存储器,称之为高速缓冲存储器(Cache)。高速缓冲存储器的存取速度比主存要快一个数量级,大体与CPU的速度相当。CPU在取指令或取操作数时,首先看其是否在高速缓冲存储器中,不在时才访问主存储器。指令或操作数在高速缓冲存储器中时,称为“命中”,反之称为“未命中”。,六、虚拟存储器技术,虚拟存储器技术是一种通过硬件和软件结合扩大用户可用存储空间的技术。它在内存储器和外存储器(软盘、硬盘或光盘)之间增加一些的硬件和软件,使两者形成一个有机整体。,第四节 微型计算机的主要性能指

12、标及典型 微型计算机,一、主要性能指标,字长,存储容量,运算速度,外设扩展能力,软件配置,指计算机内部一次可以处理的二进制数码的位数。,计算机的运算速度一般用每秒钟所能执行的指令条数来表示。由于不同类型的指令的执行时间不同,因而运算速度的计算方法也不同,,指微型计算机配接各种外部设备的可能性、灵活性和适应性。,软件是计算机的重要组成部分,它配置是否齐全,直接关系到计算机性能的好坏和效率的高低。,二、PC系列微机简介 (教材P15P17 自学),三、PC486硬件特点 (教材P17P21 自学),四、PC Pentium的硬件特点 (教材P21P22 自学),第二章 Intel系列微处理器,第一

13、节 Intel系列微处理器概述,第二节 80486微处理器的体系结构,第三节 Pentium微处理器的体系结构,一、80868088 微处理器,8086 是标准16位微处理器,内外数据总线都为16位;8088 是准16位微处理器,内数据总线为16位,外数据总线为8位。80868088 除了外数据位数及与此相关的部分逻辑稍有不同外,内部结构和基本性能相同,指令系统完全兼容。,在80868088的设计中,引人了两个重要的概念: 指令流水线 存储器分段 这两个概念在以后升级的INTEL系列微处理器中一直被沿用和发展。正是这两个概念的引入,使80868088 与原来的8位微处理器相比,在运行速度、处理

14、能力和对存储空间访问等性能方面有很大提高。,第一节 Intel系列微处理器概述,8086/8088内部结构示意图,总线接口单元BIU由段寄存器(CS、DS、SS、ES)、指令指针寄存器(IP)、内部暂存器、指令队列、地址加法器及总线控制电路组成。它的主要作用是负责执行所有的“外部总线”操作,即当EU从指令队列中取走指令时,BIU即从内存中取出后续的指令代码放入队列中;当EU需要数据时,BIU根据EU输出的地址,从指定的内存单元或外设中取出数据供EU使用;当运算结束时,BIU将运算结果送给指定的内存单元或外设。,指令队列主要使8086/8088的EU和BIU并行工作,取指令操作、分析指令操作重叠

15、进行,从而形成了两级指令流水线结构,减少了CPU为取指令而必须等待的时间,提高了CPU的利用率,加快了整机运行速度,也降低了对存储器存取速度的要求。,执行单元EU 由通用寄存器、运算数据寄存器、算术逻辑单元(ALU)及EU控制电路组成。它的主要作用是分析和执行指令,即EU控制电路从指令队列取出指令代码,经译码,发出相应的控制信号;数据在ALU中进行运算;运算过程及结果的某些特征保留在标志寄存器(EFLAGS)中。,段寄存器为8086/8088采用存储器分段管理提供了主要的硬件支持。8086/8088可寻址的存储器空间为1MB。通过分段管理,把1MB的物理存储空间分成若干逻辑段,每段最大为64K

16、B。段的起始单元地址叫段基址。 存储器的分段方式不是唯一的,各段之间可以连续、分离、部分重叠和完全重叠。这主要取决于对各个段寄存器的预置内容。一个具体的存储单元的物理地址,可以属于一个逻辑段,也可以同属于几个逻辑段。 8086/8088的4个当前段分别称为:代码段、数据段、堆栈段、附加段,采用存储器分段管理后,存储器地址有物理地址和逻辑地址之分。CPU访问存储器时,地址总线AB上送出的是物理地址。,编程时则采用逻辑地址,逻辑地址有段基址和段内偏移地址两部分组成,两者都是16位。,由16位逻辑地址变换为20位物理地址的关系如下: 物理地址=段基址*16+段内偏移,物理地址的生成是在BIU的地址加

17、法器中完成的。,物理地址生成示意图,二、80286微处理器,80286是一种增强微处理器型标准16位微处理器。与8086/8088相比,结构上的改进与性能上的提高主要体现在以下几个方面:, 内部有执行单元(EU)、总线单元(BU)、指令单元(IU)和地址单元(AU)4个独立的部分并行操作,可实现4级流水线作业,使数据吞吐率大大提高。, 地址总线与数据总线完全分开使用。, 存储空间有两种工作方式:实地址方式和保护虚拟地址方式(保护方式)。实地址方式有1MB的空间;保护方式有16MB的空间。, 在保护方式下,4个段寄存器装入的不再是段基址,而是指向段描述符表中某个段描述符的索引值,称为段选择符。,

18、总之,80286主要是增强了多用户、多任务系统所必须的任务转换功能、虚拟存储器管理功能和多种保护功能,不仅运算速度大为提高,而且支持多用户、多任务操作。,三、80386/80486微处理器,80386/80486是针对多用户和多任务的应用而推出的32位微处理器,与80286相比,它在结构和性能上的主要特点如下:, 内部寄存器数量明显增加,它具有全32位数据处理能力,还可以进行64位的数据运算。,片内存储管理部件可实现段页式存储管理,比80286可提供更大的虚拟存储空间和物理存储空间。, 比80286新增了一种保护模式下的工作方式,即虚拟8086方式。, 80486增加到6级指令流水线。, 提供

19、了32位外部总线接口,最大数据传输速率显著提高。, 运算速度大大加快。,四、Pentium 微处理器,Pentium 是一种高性能的64位微处理器,它对80486作了下列重大的改进:, 采用超标量体系结构,内含两条指令流水线。, 内置的浮点运算部件采用超流水线技术。, 增加了分支指令预测。, 内置了指令和数据两个独立的超流水线技术。, 采用64位外部数据总线。, 引入了大型计算机中采用的内部错误检测、功能冗余校验和错误报告等自诊断功能。, 进行了更多的可测性设计。, 提供了独特的性能监察功能,以利于软、硬件产品的优化和升级。, 提供了灵活的存储器页面管理功能。,第二节 80486微处理器的体系

20、结构,一、80486的体系结构特点,80486是32位高性能处理器,它以提高性能和面向多处理器系统结构为主要目标,它具有如下的特点:, 80486采用的是单倍的时钟频率,即在80486CPU的CLK端输入的外部时钟频率就是其内部处理器的工作时钟频率。, 内部包含有8K字节的指令/数据合用型高速缓存器。, 内部包含了相当于增强型80387功能的浮点协处理器。, 对使用频率较高的基本指令,由原来的微代码控制改为硬件逻辑直接控制,并在指令执行单元采用了RISC技术和流水线技术。, 采用了突发式总线传输方式。, 内部数据总线的宽度有32位、64位等多种,并分别用于不同单元之间的数据通路, 对某些内部寄

21、存器中部分位的内容进行了变动和增加。, 面向多处理器结构,在总线接口部件上增加了总线监视功能,增加了支持多机操作的指令。,二、80486的内部结构与内部寄存器,1、内部结构,总线接口单元,主要用于外部地址、数据和控制总线管理,完成预取指令、读/写数据等总线操作。,指令预取单元,内含一个32字节的指令预取队列,当指令预取队列不满且总线空闲时,指令预取单元通过总线接口单元从存储器读取指令放到队列中。,指令预取单元平均可以预取10条指令。,指令译码单元,从指令预取队列中读取指令,进行预译码后将其送入已译码的指令队列等待执行。如果预译码时发现是转移或调用指令,可提前通知总线接口部件去新的目标地址取指令

22、,以刷新指令预取队列。,指令执行单元,完成各种算术逻辑运算和变址地址生成。在控制单元中,大多数指令采用微程序控制结构执行,常用基本指令采用硬件逻辑控制执行。,段管理单元,用于存储器分段管理,将逻辑地址变换为32位线性地址。,页管理单元,用于进行存储器分页管理,将线性地址变换为32位物理地址。,高速缓存单元,浮点运算单元,用于加速指令/数据的访问过程。,相当于一个增强型浮点协处理器80387,专门用作浮点运算,可与ALU的整数运算并行进行。,80486的流水线工作示意图,2.内部寄存器,1)基本寄存器, 通用寄存器, 指令指针寄存器 (EIP),有8个32位的EAX、EBX、ECX、EDX、ES

23、I、EDI、EBP、ESP;它们的低16位可以单独访问被命名为: AX、BX、CX、DX、SI、DI、BP、SP。其中AX、BX、CX、DX还可以分别分成两个8位寄存器:AH、AL、BH、BL、CH、CL、DH、DL。,EIP用于保存下一条待预取指令相对于代码段基址的偏移量。它的低16位可以单独访问,称之为IP, 标志寄存器 (EFLAGS):,32位标志寄存器 (EFLAGS)中包含三种标志:状态标志(S)、控制标志(C)和系统标志(X)。, 段寄存器:,状态标志(S):反映指令执行过程及结果的状态。,控制标志(C):它仅含一个标志DF,用于控制串操作指令的地址改变方向。,系统标志(X):它

24、用于控制I/O、屏蔽中断、调试、任务转换和控制保护方式与虚拟8086方式间的转换。,80486有6个段寄存器(CS、SS、DS、ES、FS、GS),用于决定程序使用存储器区域块。其中CS指明当前的代码段;SS指明当前的堆栈段;DS、ES、FS和GS指明当前的4个数据段。,在保护方式下,80486段的长度可以在1M字节到4G字节之间变化;而在实地址方式下,段的长度最大为64KB。,基本寄存器示意图,2)系统级寄存器,系统级寄存器包括4个控制寄存器和4个系统地址寄存器。这些寄存器只能由在特权级0上运行的程序访问。,4个控制寄存器的作用是存放全局特性的机器状态,控制片内Cache、FPU和分段、分页

25、单元的工作。各个控制寄存器都是32位。, 控制寄存器, 系统地址寄存器,系统地址寄存器只在保护方式下使用,所以又叫保护方式寄存器。80486用4个寄存器把在保护方式下常用的数据基地址、界限和其他属性保存起来,以确保其快速性。,全局描述符表寄存器(GDTR)和局部描述符表寄存器(LDTR)分别用来存放前述的GDT和LDT的32位线性基地址等内容。,中断描述符表寄存器(IDTR)用来存放中断描述符表的基址和界限。,任务寄存器TR用来存放任务状态段(TTS)的基址、界限和其它属性。, 调试和测试寄存器,80486提供了8个32位的可编程寄存器来支持调试功能。它还定义了5个测试寄存器,测试寄存器实际上

26、并不是80486体系结构的标准部分,只是为了增强系统的可测性而引入的附加硬件。, 浮点寄存器,13个浮点寄存器,8个80位浮点数据寄存器用作固定寄存器组或硬件堆栈, 1个16位标记字寄存器用来标记每个数据寄存器的内容,1个16位控制寄存器用于提供FPU的若干处理选择项,1个16位状态寄存器用于反映FPU的总状态,2个48位的指令、数据指针寄存器的作用是为用户编写错误处理程序提供指令、数据指针。,80486的FPU中包含有:,三、80486的三种工作方式及相互转换,(1)实地址方式:,它的工作原理与8086基本相同,主要区别是80486能借助操作数长度前缀,处理32位数据,且增加了两个数据段寄存

27、器FS和GS,提高了运行速度。,(2)保护虚地址方式:,(3)虚拟8086方式:,它引入了虚拟存储器的概念。CPU可访问的物理存储空间为4GB,程序可用的虚拟地址空间为64TB。段的长度在启动页功能时是4GB,不启动页功能时是1MB。可支持多用户和单用户的多任务操作,并对各任务提供了多方面的保护机制。,它是一种既有保护功能又能执行8086代码的工作方式,可以说是保护方式的一种子方式。工作原理与保护虚拟地址方式下相同,但是程序指定的逻辑地址解释与8086相同,即可以和实地址方式下一样执行8086的应用程序。,80486的三种工作方式和相互转换示意图,四、80486的外部引脚信号,第三节 Pent

28、ium 微处理器的体系结构,一、Pentium 微处理器的内部结构,Pentium 微处理器的内部结构,Pentium微处理器是Intel公司继80486之后推出的64位高性能微处理器,它具有超标量体系结构、分支预测先进技术的采用,分开的指令、数据高速缓冲存储器,以及128位、256位内部数据总线,64位可成组传送的外部总线等特点。,Pentium微处理器由总线部件、代码Cache、指令Cache、预取缓冲存储器、指令译码部件、整数运算部件、浮点运算部件等功能部件组成 。,二、Pentium 微处理器的整数流水线,Pentium微处理器的整数流水线与80486微处理器的非常类似,其流水线操作由

29、预取PF、首次译码DI、二次译码DI、执行EX和写回WB共5个操作步骤组成。,它在流水线中增加了一些辅助性硬件以加速指令的执行。,(1)超标量执行,Pentium微处理器配置的超标量执行机构允许两条指令以并行方式执行。采用的技术是把生成地址的硬件和算术运算逻辑运算部件配置成两个各自独立的整数流水线,一个叫U流水线,另一个叫V流水线。,Pentium微处理器的片内Cache是分离式的Cache,即指令代码Cache和数据Cache是各自独立的片内Cache。当执行部件对存储器进行访问时,由指令Cache和数据Cache分别提供指令代码信息和数据信息。总线接口部件内包括了各自独立的32位地址总线和

30、64位数据总线。Pentium微处理器的预取缓冲部件内包括了指令预取和指令译码两个子功能部件。,Pentium微处理器采用了预测新技术。为了支持这项新技术,芯片内装备有两个预取缓冲存储器,一个是以线性方式来预取代码,另一个则根据转移目标缓冲存储器BTB预取代码。,(2)转移预测判断,三、Pentium 微处理器的浮点流水线,(1)浮点流水线操作,(2)浮点流水线微体系结构,Pentium浮点流水线由预取PF、首次译码D1、二次译码D2、取操作数、首次执行X1、二次执行X2、写浮点数WF和出错报告ER共8个操作步骤组成。其中预取PF和首次译码Dl这两个操作步骤与整数流水线中的前两个操作步骤公用同

31、一硬件资源。,对“基本”浮点指令来说,也允许单周期通过,也就是说能以每个时钟执行一条指令的速率执行。,Pentium微处理器的浮点流水线由浮点接口、寄存器组及控制部件FIRC、浮点指数功能部件FEXP、浮点乘法部件FMUL、浮点加法部件FADD、浮点除法部件FDIV以及浮点舍入处理部件PFRND共7个部件组成。,四、Pentium 微处理器的片内Cache,Pentium采用了代码和数据各自独立的分离式Cache 。每一种Cache的规模大小均为8K字节,采用的是二路相联的映像技术,每个Cache行大小为32个字节。在每一个Cache内,都装备有一个专用的转换旁视缓冲存储器TLB,用来快速地将

32、线性地址转换成物理地址。,它遵循MESI协议,既可以将数据Cache根据写回方案进行配置,也可以将数据Cache根据逐行写贯穿方案进行配置。数据Cache的标记是三端口式的结构,以支持两个数据的传送和所访问的周期是在同一时钟周期之内 。,指令代码Cache是一个固有的写保护Cache,指令代码Cache的标记是三端口式的结构,以便对Cache操作实施监视和对分割行的访问提供支持。,Pentium的数据Cache支持U流水线和V流水线的二元访问,以便支持辅助带宽和简化编译程序的指令调度算法。,五、Pentium 微处理器的新型体系结构,Pentium微处理机把数据总线增至64位,以改善数据的传送

33、速率,同时支持成组读周期和成组写回周期,除此之外,Pentium微处理器还增设了总线周期流水线,它允许两个总线周期同时进行。Pentium存储管理部件还拥有可选择的体系结构,允许页的大小达到4M字节,Pentium微处理器增加了对有效数据的完整性检测和对错误的检测能力,对逐字节数据奇偶校验仍提供支持。随着新异常事故、机器校验异常事故的出现,Pentium微处理器还增加了地址奇偶校验、内部奇偶校验。除此之外,在Pentium微处理机上还实现了功能性冗余校验。,Pentium微处理器内的译码部件的作用是把预取到预取缓冲器中的指令进行译码,以供Pentium微处理器执行。在Pentium微处理器控制

34、ROM内保存着指令的微代码,Pentium微处理器就是利用这些微代码控制各种指令的操作顺序。控制ROM部件对V和U两条指令流水线直接实施控制功能。,第三章 80486微处理器指令系统,第一节 80486微处理器寻址方式,第二节 80486微处理器指令系统,第一节 80486微处理器的寻址方式,一、操作数寻址方式,要使微处理器能够完成指令规定的操作,则指令中须包含2种信息,一是执行什么操作,二是该操作所涉及的数据在哪里和结果存于何处,而寻找操作数所在地址的方法即为寻址方式(Addressing Mode)。80X86的寻址方式可分为两类:操作数的寻址方式和转移地址的寻址方式。,由于操作数作为指令

35、的操作对象,可以存储在存储器中(称为存储器操作数)、寄存在寄存器中(称为寄存器操作数)或直接包含在指令中(称为立即数),因此,与之对应有多种寻址方式。80X86粗略地划分可有3类10种寻址方式,其中访问存储器操作数有8种寻址方式。,(1)立即数寻址,在这种寻址的方式下,操作数作为立即数直接存在指令中,可为8位,16位和32位。,例: MOV AX,1234H MOV BL,78H MOV ECX,12345678H,(2)寄存器寻址,在这种方式下,操作数存放在CPU某个8位、16位或32 位寄存器中。,例: MOV EAX,EDX INC CL MOV DS,AX,该寻址方式指令码短,且无需从

36、存储器取操作数,故执行速度快,(3)直接寻址,在这种方式下,指令中的操作数部分直接给出了操作数的有效地址EA,它和操作码一起放在存储器的代码段中,可以是16位或32位整数。但操作数一般在数据段DS中。,例:MOV AX,DS:1000H,;将DS段中1000H和1001H单元 的内容送到AX中。,应注意的是,指令中的DS不能省略。,直接寻址示意图,(4)寄存器间接寻址,这种寻址方式下,操作数所在内存单元的EA由规定的寄存器指出。,如果操作数不在上述规定的默认段,而是在其他的段,则必须在指令中相应的操作数前加上段超越前缀。例如:,MOV AX,ES:SI MOV AX,DS:BP,16位寻址时,

37、EA可以由SI,DI,BP或BX提供。,若以SI,DI,BX间接寻址,则默认操作数在DS段中。,若以BP间接寻址,则默认操作数在SS段中。, 32位寻址时,8个32位通用寄存器均可作间址寄存器。除ESP,EBP默认段寄存器为SS外,其余6个通用寄存器均默认段寄存器为DS。,(5)寄存器相对寻址方式,在这种方式中,操作数所在内存单元的有效地址为规定的基址寄存器或变址寄存器的内容与一个常量(即位移量)之和。,16位寻址时,BX和BP作为基址寄存器,BX默认DS为段寄存器,BP默认SS为段寄存器;SI和DI作为变址寄存器,默认DS为段寄存器。位移量可以为8位或16位。,32位寻址时,8个32位通用寄

38、存器均可作基址/变址寄存器,其中ESP、EBP以SS为默认段寄存器,其余6个通用寄存器均以DS为默认段寄存器。位移量可以为8位或32位。,例如: MOV EAX,BX+24 ;也可以写成 MOV EAX,24BX MOV DX ,EAX+1500;也可以写成 MOV DX,1500EAX,在指令格式中,地址表达式写成:,段寄存器: 基址寄存器 / 变址寄存器 + 位移量 或: 段寄存器:位移量 基址寄存器 / 变址寄存器,(6)基址变址寻址方式,操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和。,在指令格式中,地址表达式写成:,段寄存器: 基址寄存器 + 变址寄存器 ,在这种方式中,

39、基址寄存器和变址寄存器都必须是规定的16位寄存器。当基址寄存器和变址寄存器默认的段寄存器不同时,一般规定由基址寄存器来决定默认哪一个段寄存器作段基址指针。,(7)相对基址变址寻址方式,该方式中,操作数所在内存单元的有效地址是一个基址寄存器与一个变址寄存器的内容和一个常量(即位移量)之和。,在指令格式中,地址表达式写成:,段寄存器: 基址寄存器 + 变址寄存器 + 位移量 或: 段寄存器:位移量 基址寄存器 + 变址寄存器 或: 段寄存器:位移量 基址寄存器 变址寄存器 ,这种寻址方式主要用于二维数组操作和二重循环等。,(8)比例变址寻址方式,这种寻址方式只适合于32位寻址的一种情况。,MOV

40、EAX TABLEESI*4 ;TABLE是位移量,4是比例因子,操作数的EA是变址寄存器的内容乘以指令中指定的比例因子再加上位移量之和。,在指令格式中,地址表达式写成:,段寄存器:变址寄存器 比例因子 位移量 或:段寄存器:位移量变址寄存器 比例因子,其中比例因子可以是1,2,4,8中的任一个数。除ESP外的任何通用寄存器均可作变址寄存器,且EBP默认SS作段寄存器,其余以DS作段寄存器。,该方式适用于对一维数组的数组元素进行检索操作。位移量表示数组起始地址的偏移量,变址表示数组元素的下标,可变。当数组元素大小为2,4,8时,用带比例因子的变址寻址方式更方便、更高效。,(9)基址比例变址寻址

41、方式,操作数的EA是变址寄存器的内容乘以比例因子再加上基址寄存器的内容之和。,在指令格式中,地址表达式写成:,段寄存器:变址寄存器 比例因子 基址寄存器 或:段寄存器: 基址寄存器 变址寄存器 比例因子,(10)相对基址比例变址寻址方式,操作数的EA是变址寄存器的内容乘以比例因子,加上基址寄存器的内容,再加上位移量之和。,在指令格式中,地址表达式写成:,段寄存器: 基址寄存器 比例因子 变址寄存器 位移量 或:段寄存器:位移量 基址寄存器 比例因子 变址寄存器 或:段寄存器:位移量 基址寄存器 比例因子 变址寄存器 ,存储器寻址时的段约定,二、转移地址寻址方式,在指令系统中,有一组指令为程序转

42、移指令。程序转移指令的寻址方式涉及如何确定转移的目标地址。目标地址可以在段内,也可以在段外。, 段内直接寻址,转移的目标地址是当前IP寄存器的内容和一个8位或16位位移量之和。,指令的汇编语言格式表示为: JMP NEAR PTR PROGRM JMP SHORT OUTSET, 段内间接寻址,该方式中,转移的目标地址是寄存器或存储单元的内容。寄存器或存储单元的内容可以用数据寻址方式中除立即数以外的任何一种寻址方式取得,所得到的内容将用来取代IP寄存器的值。,段内间接寻址转移指令的汇编格式可以表示为: JMP CX JMP WORD PTR BX+TAB1, 段间直接寻址,这种寻址方式用于段间

43、转移,指令中直接提供了目标地址的段基址和偏移地址,所以,只要用指令中指定的偏移地址取代IP寄存器的内容,用指令中指定的段基址取代CS寄存器的内容就完成了从一个段到另一个段的转移操作,,指令的汇编语言格式可表示为: JMP FAR PTR NEXT, 段间间接寻址,该方式下,用存储器中两个相继字的内容来取代IP和CS寄存器中的原始内容,以达到段间转移的目的。这里,存储单元的地址是由指令指定除立即数方式和寄存器方式以外的任何一种数据寻址方式取得。,指令的汇编语言格式可表示为: JMP DWORD PTR REL+BX,第二节 80486微处理器指令系统,80X86的指令系统向上兼容,都是在8086

44、指令的基础上发展形成的。与80286相比,增加了32位操作和访问存储器的32位寻址方式。 80486可以工作在实模式、保护模式和虚拟86模式,为了支持系统工作模式,指令系统中设计了系统管理指令、保护模式控制指令以及高级语言支持指令等等。 80486的基本指令按功能可分为7类:数据传送指令、算术运算指令、逻辑运算指令、字符串操作指令、控制转移指令、处理器控制指令和按条件设置字节指令。下面分别给予介绍。,MOV指令允许的传送关系,一 、数据传送指令,1)通用数据传送指令: 基本传送指令(MOV) 格式:MOV 目标操作数,源操作数 例如:MOV BYTE PTR BX,55H ;55H送给BX间址

45、的字节型单元 MOV BX,55H ;0055H送给BX间址的字型单元 符号扩展传送指令MOVSX 格式:MOVSX 目标操作数,源操作数 例如:MOV DL,-16 ;DL = F0H MOVSX BX,DL ;BX = FFF0H,而DH,DL不变 零扩展传送指令MOVZX 格式:MOVZX 目标操作数,源操作数 例如:MOVZX EAX,CX ;将CX中16位数高位加0扩展为32位送入EAX MOVSX和MOVZX这两条指令常被用于作除法时对被除数位数的扩展。 交换指令XCHG 格式: XCHG 目标操作数,源操作数,地址传送指令 LEA传送指令 格式: LEA 目标操作数,源操作数 例

46、如:TABLE DB 31H,32H,33H,34H LEA DI,TABLE 等效于 MOV DI,OFFSET TABLE 指针传送指令 格式: LDS/LES/LFS/LGS/LSS 目标操作数,源操作数 例如:设数据段有 XYZ1 DF 1234567890ABH XYZ2 DD 56781234H 如此时DS已指向数据段: LES EBX,XYZ1 ;ES=1234H,EBX=567890ABH LDS SI,XYZ2 ;DS=5678H,SI=1234H,查表转换指令XLAT 例如:利用查表转换功能实现一位十六进制数与ASCII码的转换。 DATA SEGMENT TAB DB 0

47、123456789ABCDEF NUM DB ? ;0F中的任一数 DATA ENDS 代码段设置如下指令,可查出与NUM单元中的数相对应的ASCII编码:MOV AX,DATA MOV DS,AX MOV BX,OFFSET TAB MOV AL,NUM XLAT 字节交换指令BSWAP 格式:BSWAP 32位寄存器 标志寄存器传送指令LAHF/SAHF 格式:LAHF 或 SAHF,2)堆栈指令 压栈指令PUSH 格式:PUSH 源操作数 弹栈指令POP 格式:POP 目标操作数 16位标志寄存器压栈/弹栈指令PUSHF/POPF 格式:PUSHF POPF 32位标志寄存器压栈/弹栈指

48、令PUSHFD/POPFD 格式:PUSHFD POPFD 全部16位通用寄存器压栈/弹栈指令PUSHA/POPA 格式:PUSHA POPA,全部32位通用寄存器压栈/弹栈指令PUSHAD/POPAD 格式:PUSHAD POPAD 3)I/O指令 直接寻址的I / O指令 格式:IN AL/AX,PORT OUT PORT,AL/AX DX间址的I / O指令 格式:IN AL/AX/EAX,DX OUT DX,AL/AX/EAX,说明: 源操作数可以是8位、16位或32位的立即数、寄存器、段寄存器或存储器操作数,目标操作数是与源操作数等长的寄存器、段寄存器(CS除外)或存储器操作数。 源

49、操作数和目标操作数不能同时为存储器操作数。如:MOV BP,SI是非法指令。 源操作数和目标操作数不能同在段寄存器中,如:MOV DS,ES是非法指令。 立即数不能作为目标操作数。如:MOV 1234H,AX是非法指令。 不能将立即数直接传送到段寄存器,如:MOV SS,1000H 是非法指令。 当目标操作数为非直接寻址的存储器操作数时,如源操作数是单字节的立即数,则应用PTR运算符说明目标操作数的属性,否则将被默认为字型操作数。,二 、算术运算指令,1)基本四则运算 加法指令ADD/带进位加法指令ADC 格式:ADD 目标操作数,源操作数 ;目标操作数 = 源操作数 + 目标操作数 格式:ADC 目标操作数,源操作数 ;目标操作数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1