汇编语言与计算机原理第四章

上传人:mg****85 文档编号:33715886 上传时间:2018-02-17 格式:DOC 页数:16 大小:199KB
返回 下载 相关 举报
汇编语言与计算机原理第四章_第1页
第1页 / 共16页
汇编语言与计算机原理第四章_第2页
第2页 / 共16页
汇编语言与计算机原理第四章_第3页
第3页 / 共16页
汇编语言与计算机原理第四章_第4页
第4页 / 共16页
汇编语言与计算机原理第四章_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《汇编语言与计算机原理第四章》由会员分享,可在线阅读,更多相关《汇编语言与计算机原理第四章(16页珍藏版)》请在金锄头文库上搜索。

1、1第四章 Intel8086/8088 微处理器及其指令系统4.1 概述微型计算机所使用的微处理器芯片可分为两大类:一类是 Intel类型芯片,另一类是非 Intel类型的。Intel 类型微处理器芯片主要生产厂家是美国 Intel公司, IBM PC 微型计算机 CPU使用的就是 Intel类型微处理器。非 Intel类型的微处理器芯片是 Motorola等公司的产品,主要用于 Apple公司的微型计算机和服务器中。自 1971年,Intel 公司生产第一片微处理器至今的 30多年时间,Intel 微处理器每 3至 5年就要更新换代一次,使 IBM PC微型计算机的性能不断提高。IBM PC

2、 微型计算机使用的微处理器主要变化是:1 Intel 8088微处理器Intel 8088微处理器是 Intel公司专门为第一代 IBM PC微型计算机设计的。Intel 8088微处理器内部运算和寄存器都是 16位,但是外部数据线是 8位,因而被称为准 16位微处理器。地址线 20位,可寻址空间 1M;工作频率 4.7Mhz。与此同时还推出了 Intel 8087浮点运算器,以配合 Intel 8088,提高数值运算速度。2 Intel 80286微处理器Intel 80286是 IBM PC/AT微型计算机使用的微处理,其内部运算和寄存器同 Intel 8088一样,也是 16位,但是外部

3、数据线增加到 16位,是真正的 16位微处理器。地址线24位,可寻址空间 16M;工作频率 8Mhz。和 Intel 80286配合的浮点运算器是Intel80287。3Intel 80386 微处理器使用 Intel 80386微处理器的有 IBM公司的 PS/2系列微型计算机,和一些其它厂家生产的 386型兼容机。Intel 80386 是 32位微处理器,其内部运算和寄存器都是 32位;外部数据线和地址线 32位,可寻址空间 4G;增加了页式虚拟存储管理部件;时钟频率 32 Mhz。和 Intel 80386配合的浮点运算器是 Intel 80387。4Intel 80486 微处理器I

4、ntel 80486是高性能的 32位微处理器,其内部运算和寄存器的字长和 Intel 80386相同。Intel 80486 有多个型号,最高时钟频率可达 66 Mhz。Intel 80486 内含浮点运算器和 8KB的高速缓存器。5Pentium 微处理器1993年 Intel公司推出了 Pentium微处理器。Pentium 微处理器芯片集成了 310万个晶体管,有 64位数据线,36 位地址线。Pentium 微处理器的内部浮点运算器在 Intel 80486的基础上进行了全新的设计。Pentium 微处理器使用了超标量技术,有两个独立的整数处理单元,可以同时执行两条整数运算指令。内部

5、高速缓存分为两部分:8KB 的指令高速缓存和 8KB的数据高速缓存。之后 Pentium微处理器推出的几个型号,时钟频率从66Mhz发展到 166Mhz。1995年,Intel 公司推出了 Pentium Pro微处理器。Pentium Pro 的整数处理单元增加到 3个,时钟频率有 150 Mhz、166 Mhz 和 200 Mhz等几个型号。1997年 1月 Intel公司推出了 Pentium MMX(Multimedia Execution)微处理器,该处理器增加了 57条多媒体指令,用于处理音频、视频和图像数据。1997年 5月,Intel 公司推出了 PentiumII微处理器,最

6、高时钟频率 PentiumII芯片2达 366Mhz。1999年,Intel 公司推出了 Pentium 微处理器。最高时钟频率 PentiumII芯片达933Mhz。2000年 6月,Intel 公司推出了 Pentium 微处理器,目前,Pentium 微处理器的时钟频率已高达 2.0G Mhz以上。4.2 8086/8088 微处理器一、8086/8088 微处理器功能结构8088微处理器是 Intel公司专为 IBM-PC微型计算机设计的 CPU芯片,它仅仅是在8086CPU的基础进行了一些改进。Intel8086 和 Intel 8088的主要区别是 Intel 8086的数据线是

7、16根,而 Inetl8088只有 8根数据线,但是它们的地址线都是 20根,控制线也基本相同。图 4.2.1 8086/8088功能结构图Intel8086/8088CPU就功能而言分成两大部分:总线接口单元 BIU(Bus Interface unit)和执行单元 EU(Execution Unit) ,如图 4.2.1所示。BIU 单元的功能主要包括:从存储器取出指令,送入指令流排队机构;访问内存或外部设备;响应外部中断等。EU的功能是执行指令。EU 从指令队列取出指令代码,译码后发出相应的执行控制信号。运算器执行运算,运算结果的特征保存在标志寄存器。由于取指令和执行指令部件是分开的,并

8、且相对独立,所以指令执行和取指令可以同通用寄存器组段寄存器组总线控制标志寄存器执行单元总线接口单元指令队列执行控制部件运算器运算器AH ALBH BLCH CLDH DLSPBPSIDIESCSSSDS指令指针地址运算器运算器43213时进行,即在一条指令执行过程中,可以取出下一条指令。指令队列可以存储多条指令,BIU取出的指令在指令流排队机构排队,执行单元执行完一条指令后就可以立即从指令队列中取出下一条指令执行。由于执行和取指令可以重叠进行,提高了系统速度。二Intel8086/8088CPU 的寄存器 Intel8086/8088CPU内部含有一些寄存器,这些寄存器用于暂存数据和地址等。1

9、数据寄存器组数据寄存器有四个,这四个寄存器都是十六位寄存器,可以按十六位使用,也可以分别使用每个寄存器的高八位和低八位。如果按十六位使用其名称分别为 AX,BX,CX 和DX,如果按八位使用其名字如图 4.2.2所示。四个数据寄存器的通常的名称和用途如下:AX:累加器,用于暂存操作数或运算结果。BX:基址寄存器,除用于存储运算操作数之外,还经常用于地址运算。CX:计数器,初作为一般寄存器使用外,还经常用于循环程序的循环次数计数。DX:数据寄存器,用于存储运算操作数或运算结果。图 4.2.2 数据寄存器2. 变址寄存器SI:源变址寄存器,16 位,一般用于存储源操作数的偏移地址。DI:目的变址寄

10、存器,16 位,一般用于存储目的操作数的偏移地址。3. 堆栈指针和基数指针SP:堆栈指针,16 位,用于堆栈操作。BP:基数指针,16 位,用于堆栈段指示偏移地址。4段寄存器段寄存器 CS、DS、SS、ES 是四个十六位寄存器,在段式存储管理中,这四个寄存器用于保存段基址(段开始地址) 。由于 Intel8086/8088微处理器的地址线有 20条,而段寄存器是十六位寄存器,所以只能保存段基址的高十六位,在执行访问内存指令时,将段寄存器左移 4位,再加上 16位偏移地址得到 20位物理地址。四个段寄存器用途如下:CS:代码段寄存器,用于存储程序代码段基址。DS:数据段寄存器,用于存储程序数据段

11、基址。SS:堆栈段寄存器,用于存储程序堆栈段基址。ES:附加数据段寄存器,用于存储程序数据段基址,通常用于字串操作5. IP:指令指针,16 位,指向下一条要执行指令的偏移地址。6. 标志寄存器16位寄存器,每一位指示运算指令或其他指令执行后的检验结果,其意义如下:CF:b 0位,进位或借位标志位,当加法运算最高位向前有进位,或减法运算最高位向前有借位,本位置 1,否则置 0;PF:b 2位,奇偶标志位,当运算结果低 8位有偶数个 1,PF 置 1,否则置 0;AF:b 4位,辅助进位标志位,当运算时,b 3位向 b4位有进位 AF置 1,否则置 0;ZF:b 6位,零标志位,运算结果等于 0

12、时置 1,否则置 0;SF:b 7位,符号标志位,运算结果的最高位等于 1时 SF=1(负号) ,等于 0时 AH ALBH BLCH CLDH DL4SF=0(正号) ;TF:b 8位,追踪标志位,当 TF=1时使 CPU进入单步执行方式,每执行一条指令就暂停,常用于调试程序;IF:b 9位,中断标志位,当 IF=0时,CPU 不响应可屏蔽中断;DF:b 10位,方向标志位,当字符串传送时,DF=0 时每传送一个字节或一个字,地址自动增加 1(字节传送)或增 2(字传送) ,当 DF=1时每传送一个字节或一个字,地址自动减 1(字节传送)或减 2(字传送) ;OF:b 11位,溢出标志位,当

13、带符号数运算的运算结果超出了数的表示范 OF置 1,否则置 0。例如,8 位运算时,当运算结果+127 或128 时,超出了 8位机器数的表示范围,既产生了溢出。进位和溢出是两个不同的概念,不要混淆,如下例,计算 01100100+01100100,计算结果为 11001000,并没有向前进位,但是 8位带符号机器数的表示范围,OF 将置 1:除上述标志位外,状态标志寄存器还有一些位没有使用,如图 4.2.3所示。图 4.2.3 标志寄存器4.3 操作数寻址方式一、指令格式Intel8086/8088微处理器的指令按格式可分为无操作数指令、单操作数指令和双操作数指令三种。指令的一般格式为:操作

14、码 目的操作数 ,源操作数操作码表示指令的操作类型,源操作数和目的操作数表示指令的操作对象,操作结果存入目的操作数。例如指令:ADD AL,3 ,表示将 AL寄存器中的值和常数 3相加,结果存入 AL寄存器。微处理器实际执行的指令是二进制代码的机器指令,为了编程方便,在编写程序时一般使用机器指令的助记符号,机器指令的助记符号称为汇编指令,例如,上面指令中的 ADD就是加法机器指令的助记符。不同指令的操作数个数可能不同,有的指令有两个操作数,有的指令有一个操作数,还有的指令没有操作数,或者其操作数是隐含的,如下面的例子:INC AL ;将 AL寄存器值加 1,结果存入 AL寄存器CLD ;将标志

15、寄存器的 DF位置 0ADD AL, BL上面第一个指令是单操作数指令;第二个指令的操作数是隐含的(DF 标志位) ,第三个指令是双操作数指令。二、操作数类型:按操作数所在位置,可分为三种类型:01100100+ 01100100 11001000b15 b0OF DF IF TF SF ZF AF PF CF51寄存器操作数:操作数在 CPU内部寄存器中,例如将 AL和 BL得值相加,结果存入AL,可用如下指令:ADD AL, BL这里源操作数和目的操作数都是寄存器操作数。2存储器操作数:操作数据在内存单元中,如下例:ADD 2000H, AL该指令的执行将 AL的值和偏移地址为 2000H

16、的内存单元值相加,结果存入内存单元,该指令的源操作数属于寄存器操作数,而目的操作数是存储器操作数。3立即数:操作数在指令中,例如下面指令的源操作数为立即数:ADD AL,30在指令中目的操作数除了参加运算之外,还要存储运算结果,所以目的操作数不能是立即数,只能是存储器操作数或寄存器操作数。三、寻址方式所谓寻址方式,是 CPU在执行指令时,如何确定源操作数或目的操作数所在位置。Intel8088寻址方式有如下几种:1立即寻址操作数为立即数,例如:MOV AL, 3MOV AL, A第一条指令的功能是将数值常数 3传送到 AL寄存器。第二条指令的功能是将字符 A的 ASCII码 41H传送到 AL寄存器。立即数寻址中的操作数(立即数)作为指令的一部分,跟随在操作

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号