1、12课程目标微机原理是学习和掌握微机硬件知识和汇编语言程序设计的入门课程:F微型计算机的基本工作原理F汇编语言程序设计F微型计算机接口技术建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力3教学大纲第一章 微型计算机系统概述第二章 微机运算基础第三章 8086/8088CPU体系结构和指令系统第四章 8086/8088汇编语言程序设计第五章 微型机中的存储器第六章 中断系统第七章 可编程接口芯片及应用第八章 A/D和D/A转换器第九章 从8086/8088到Pentium的技术变迁第十章 微型计算机在工业控制中的应用41.1 微机系统的组成1.2 微型计算机硬件系统的组成1.2.1
2、 系统总线1.2.2 微处理器1.2.3 存储器1.2.4 输入输出(I/O)接口和外设1.3 微处理器组成1.4 存储系统概述1.4.1 内存储器单元的地址和内容1.4.2 内存操作1.4.3 内存分类1.5 微机工作过程1.6 微机系统的主要技术指标51.1 微机系统的组成 世界上第一台现代意义的电子计算机是1946年美国宾夕法尼亚大学设计制造的ENIAC6电子计算机的发展:电子管计算机(1946-1956)晶体管计算机(1957-1964)中小规模集成电路计算机(1965-1970)超大规模集成电路计算机(1971-今)电子计算机按其性能分类:大型计算机 中型计算机小型计算机微型计算机
3、微型计算机微型计算机是第四代计算机的典型代表是第四代计算机的典型代表7微型计算机系统的三个层次微处理器严格讲,微处理器 CPUCPU由算术逻辑部件(ALU)和控制部件两大主要部分组成,实现运算功能和控制功能微处理器除算术逻辑部件和控制部件以外,还包含一组寄存器(Registers)以及高速缓冲存储器(Cache)等特殊的存储器。将这些部件集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器8微型计算机系统的三个层次微型计算机以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入输出接口电路及系统总线等所组成的计算机,称为微型计算机。
4、将这些组成部分集成在一片超大规模集成电路芯片上,称为单片微型计算机,简称单片机。9微型计算机系统的三个层次微型计算机系统以微型计算机为中心,配以相应的外围设备以及控制微型计算机工作的软件,就构成了完整的微型计算机系统。微型计算机如果不配有软件,通常称为裸机软件分为系统软件和应用软件两大类。10微型计算机系统的三个层次:微处理器微型计算机 微型计算机系统系统软件应用软件微处理器微处理器存储器I/O接口总线 硬 件软 件微微 型型计算机计算机系系 统统微微 型型计算机计算机外 设ALU寄存器控制部件键盘、鼠标显示器软驱、硬盘、光驱 打印机、扫描仪11微型计算机的常用术语1位和字节位(bit)是计算
5、机所能表示的最小最基本的数据单位,它指的是取值只能为0或1的一个二进制数值位。位作为单位时记作b字节(byte)由8个位二进制位组成,通常用作计算存储容量的单位。字节作为单位时记作BK是kelo的缩写,1K=1024=210;M是mega的缩写,1M=1024K=220;G是Giga的缩写,1G=1024M=230;T是tera的缩写,1T=1024G=240。12微型计算机的常用术语2字长字长是微处理器一次可以直接处理的二进制数码的位数,它通常取决于微处理器内部通用寄存器的位数和数据总线的宽度。微处理器的字长有4位、8位、16位和32位等等。8088称为准16位微处理器,而80386SX称为
6、准32位微处理器。半字节字节字双字03034707078F8F1 01 71 81 F13微型计算机的常用术语3主频主频也叫做时钟频率,用来表示微处理器的运行速度,主频越高表明微处理器运行越快,主频的单位是MHz。早期微处理器的主频与外部总线的频率相同,从80486DX2开始,主频=外部总线频率倍频系数外部总线频率频率通常简称为外频,它的单位也是MHz,外频越高说明微处理器与系统内存数据交换的速度越快,因而微型计算机的运行速度也越快。倍频系数是微处理器的主频与外频之间的相对比例系数。通过提高外频或倍频系数,可以使微处理器工作在比标称主频更高的时钟频率上,这就是所谓的超频。14微型计算机的常用术
7、语4MIPSMIPS是Millions of Instruction Per Second的缩写,用来表示微处理器的性能,意思是每秒钟能执行多少百万条指令由于执行不同类型的指令所需时间长度不同,所以MIPS通常是根据不同指令出现的频度乘上不同的系数求得的统计平均值。主频为25MHz的80486其性能大约是20MIPS,主频为400MHz的Pentium II的性能为832 MIPS5iCOMP指数iCOMP指数是Intel公司为评价其32位微处理器的性能而编制的一种指标,它是根据微处理器的各种性能指标在微型计算机中的重要性来确定的,iCOMP指数包含的指标有整数数学计算、浮点数学计算、图形处理
8、以及视频处理等,这些指标的重要性与它们在应用软件中出现的频度有关,所以iCOMP指数说明了微处理器在微型计算机中应用的综合性能。15iCOMP指数16微型计算机的常用术语6微处理器的生产工艺微处理器的生产工艺指在硅材料上生产微处理器时内部各元器件间连接线的宽度,一般以m为单位,数值越小,生产工艺越先进,微处理器的功耗和发热量越小。目前微处理器的生产工艺已经达到0.18m。7 7微处理器的集成度微处理器的集成度指微处理器芯片上集成的晶体管的密度。最早Intel 4004的集成度为2250个晶体管,Pentium III的集成度已经达到750万个晶体管以上,集成度提高了3000多倍。17微型计算机
9、的发展微型计算机的发展是以微处理器的发展来表征的微处理器的集成度每隔18个月就会翻一番,芯片的性能也随之提高一倍-摩尔定律1971年1977年是微处理器发展的早期阶段:字长为4位或8位,集成度约为300010000晶体管/片,微处理器的主频为0.15MHz。1971年:Intel 4004,是世界上第一片单片微处理器4位微处理器,寻址空间为4096个半字节,指令系统包括45条指令1972年:Intel 8008,是世界上第一片8位微处理器。8008采用了10m生产工艺,集成度为3500个晶体管,工作频率为200KHz。181974年:Intel 8080采用了6m生产工艺,集成度为6000个晶
10、体管,主频为2MHz。1975年4月,MITS公司推出了以8080为CPU的世界上第一台个人计算机Altair 8800。值得一提的是,Altair 8800的BASIC语言解释器是Bill Gates编写的1976年:Intel 8080 Intel公司生产的最后一种8位通用微处理器,8085的工作频率提高到5MHz,指令系统的指令数上升到246条。微型计算机的发展19第一代:8086/8088(1978年-1981年)1978年-8086采用了3m工艺,集成了29,000个晶体管,工作频率为4.77 MHz。它的寄存器和数据总线均为16位,地址总线为20位,从而使寻址空间达1MB。同时,C
11、PU的内部结构也有很大的改进,采用了流水线结构,并设置了6字节的指令预取队列1979年-8088除了它的数据总线为8位以外,其余均与8086相同。8088采用8位数据总线是为了利用当时现有的8位设备控制芯片。由于8088内部支持16位运算,而与I/O之间传输为8位,故8088称为准16位微处理器。1981年8月,IBM公司推出以8088为CPU的世界上第一台16位微型计算机IBM 5150 Personal Computer,即著名的IMB PC。X86系列微型计算机的发展20第二代:80286(1982年-1984年)采用1.5m工艺,集成了134,000个晶体管,工作频率为6MHz。802
12、86的数据总线仍然为16位,但是地址总线增加到24位,使存储器寻址空间达到16MB。1985年IBM公司推出以80286为CPU的微型计算机IBM PC/AT,并制定了一个新的开放系统总线结构,这就是的工业标准结构(ISA)。该结构提供了一个16位、高性能的I/O扩展总线。80年代中期到90年代初,80286一直是微型计算机的主流CPU。在这一时期,还诞生了世界上最早的芯片组(chipsets)。X86系列微型计算机的发展21第三代:80386(1985年-1988年)第一个实用的32位微处理器,采用了1.5m工艺,集成了275,000个晶体管,工作频率达到16MHz。80386的内部寄存器、
13、数据总线和地址总线都是32位的。通过32位的地址总线,80386的可寻址空间达到4GB。这时由32位微处理器组成的微型计算机已经达到超级小型机的水平。80386的其他一些版本:80386SX,包含16位数据总线和24位地址总线,寻址空间为16MB;80386SL80386SLC,包含 l6位数据总线和25位地址总线,寻址空间为32MB。由于这些微处理器由于与I/O之间传输为16位,故也称为准32位微处理器。X86系列微型计算机的发展22第四代:80486(1989年-1992年)采用1m工艺,集成了120万个晶体管,工作频率为25MHz。80486微处理器由三个部件组成:一个80386体系结构
14、的主处理器,一个与80387相兼容的数学协处理器和一个8KB容量的高速缓冲存储器。80486把80386的内部结构做了修改,大约有一半的指令在一个时钟周期内完成,而不是原来的两个,这样80486的处理速度一般比80386快2到3倍。Intel公司还生产过80486的其他一些版本:80486SX,工作频率20MHz,不包含数学协处理器;80486DX2,采用双倍时钟,内部执行速度达到66MHZ,内存存取速度为33MHz;80486DX4,采用三倍时钟,内部执行速度达到100MHZ,内存存取速度为33MHz。X86系列微型计算机的发展23第五代:Pentium(1993年-1997年)Pentiu
15、m处理器的发展分成三代第一代Pentium处理器(以P5代称,1993年)采用0.8m工 艺 技 术,集 成 了 3 1 0 万 个 晶 体 管,工 作 频 率 为60MHz/66MHz。第二代Pentium处理器(以P54C代称,1994年)采用0.6m工艺,工作频率为90MHz/100MHz。第三代Pentium MMX(以P55C代称1997年)增加了57条多媒体指令在体系结构上,Pentium在内核中采用了RISC技术,可以说它是CISC和RISC技术相结合的产物X86系列微型计算机的发展24第六代:P6(1996-今)Pentium Pro、Pentium II、Pentium II
16、I采用0.6 m-0.18m工艺,集成度550万-750万晶体管,时钟频率166MHz-1GHz,采用二级高速缓存,2级超标量流水线结构,一个时钟周期可以执行3条指令X86系列微型计算机的发展第七代:未来-64位Mecerd(P7)251.2 微型计算机的组成微型计算机的组成由运算器、控制器、存储器、输入设备和输出设备五大部分组成26微型计算机的结构存储器I/O接口输入设备I/O接口数据总线 DB控制总线 CB地址总线 AB输出设备CPU各部件通过总线连接,总线连接多个功能部件的一组公共信号线27微型计算机的结构地址总线AB:用来传送CPU输出的地址信号,确定被访问的存储单元、I/O端口。地址
17、总线的条数决定微处理器的寻址能力数据总线DB:用来在CPU与存储器、I/O接口之间进行数据传送数据总线的条数决定微处理器一次最多可以传送的数据宽度控制总线CB:以来传送各种控制信号281.3微处理器组成 微处理器是微型计算机硬件系统中的核心部件,它有运算器、控制器、数据和地址缓冲器四大部分组成,而每部分又各由一些基本部件组成。指令寄存器(IR)指令译码器(ID)操作控制器(OC)寄 通用寄存器组存 堆栈指针(SP)器 程序计数器(PC)组(RS)地址缓冲器数据缓存器地址总线(AB)数据总线(DB)内部总线累加器(ACC)暂存器累加锁存器算术逻辑单元(ALU)标志寄存器(FR)控制总线(CB)控
18、制器运算器图1-4 微处理器典型结构图291.算术逻辑单元ALU(Arithmetic Logic unit)2.累加器ACC、累加锁存器和暂存器 3.标志寄存器FR(Flags Register)4.寄存器组 RS(Register Set或Registers)5.堆栈和堆栈指针SP 6.程序计数器PC(Program Counter)7.指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)8.处理器地址缓冲器、处理器数据缓冲器 301.4 存储系统概述 存储器用来存储
19、程序和数据,它是微型计算机系统不可缺少的重要部件。微型机中的存储器分为内存储器(主存)和外存储器(辅存)。内存储器称主存储器,它与CPU以及各种接口电路组成微型机的主机。外存储器属微型机的外部设备,通常用于存放 CPU当前操作暂时不用的程序和数据,它存储的信息要通过接口电路输入到内存储器后才能供CPU处理。311.4.1 内存储器单元的地址和内容 1.4.2 内存操作 1.4.3 内存分类 按工作方式不同,内存可分为两大类:随机存取存储器RAM(Random Access Memory)和只读存储器ROM(Read Only Memory)。RAM可以被CPU随机地读和写,又称为随机读写存储器
20、。这种存储器用于存放用户装入的程序、数据及部分系统信息。当机器断电后所存信息消失,因此RAM归于易失性存储器。ROM中的信息只能被CPU随机读取,而不能由CPU任意随机写入。机器断电后,信息并不丢失,显然ROM应属于非易失性存储器。所以,这种存储器主要用来存放各种程序,如汇编程序、各种高级语言解释或编译程序、监控程序、基本I/O程序等标准子程序,也用来存放各种常用数据和表格等。ROM中的内容一般是由生产厂家或用户使用专用设备写入并固化的。321.5 微型计算机的工作过程微型计算机的工作过程就是执行程序的过程,而程序由指令序列组成,因此,执行程序的过程,就是执行指令序列的过程,即逐条地从存储器中
21、取出指令并完成指令所指定的操作。由于执行每一条指令,都包括取指、译码和执行三个基本步骤,所以,微型计算机的工作过程,也就是不断地取指令、译码和执行的过程,直到遇到停机指令时才结束机器的运行。取指令,P C值加1停机?译码并执行结束YN33微型计算机的工作过程34微型计算机的工作过程计算1+2=?汇编语言程序对应的机器指令 对应的操作MOV AL,110110000将立即数1传送到累加寄存器AL中00000001ADD AL,200000100计算两个数的和,结果存放到AL中00000010MOV 0008,AL10100010将AL中的数传送到地址单元00080000100100000000H
22、LT11110100停机351.6 微机系统的主要技术指标 1.字长 字长是计算机内部一次可以处理的二进制数码的位数。2.存储器容量存储器容量是衡量计算机存储二进制信息量大小的一个重要指标。3.运算速度 一般用每秒钟所能执行的指令条数来表示。4.外设扩展能力 5.软件配置情况 36中南大学中国水利水电出版社37第2章 微机运算基础 2.1 进位计数制及数制转换 2.1.1 进位计数制的概念 在采用进位计数的数字系统中,如果只用r个基本符号(例如0,1,2,r-1)表示数值,则称其为基r数制(Radix-r Number System),r称为该数制的基数(Radix),而数制中每一固定位置对应
23、的单位值称为权。例如,在十进制数中,678.34可表示为678.34=6102+7101+8100+310-1+410-2可以看出,各种进位计数制中的权的值恰好是基数r的某次幂。因此,对任何一种进位计数制表示的数an-1an-2a1a0.a-1a-2a-m都可以写出按其权展开的多项式之和。382.1.2 数制间的转换 1十进制数转换成非十进制数十进制数转换成非十进制数将十进制数转换成非十进制数分为整数部分和小数部分进行。2非十进制数转换成十进制数非十进制数转换成十进制数非十进制数a1a2am-1am.am+1转换成十进制数采用“位权法”,即把各非十进制数按权展开,然后求和。3二进制数与八、十六
24、进制数之间的转换二进制数与八、十六进制数之间的转换392.1.3 二进制数的算术运算 1二进制数的加法运算二进制数的加法运算二进制数的加法运算法则是:0+0=00+1=1+0=1 1+1=0(被加数和加数为1,结果本位为0,按逢二进一向高位进位1)2二进制数的减法运算二进制数的减法运算二进制数的减法运算法则是:0-0=1-1=01-0=1 0-1=1(被减数为0、减数为1,结果本位为1,向高位借位)403二进制数的乘法运算二进制数的乘法运算二进制数的乘法运算法则是:00=001=10=0 11=1 4二进制数的除法运算二进制数的除法运算二进制数的除法运算法则是:00=001=0(10无意义)1
25、1=1 412.1.4 二进制数的逻辑运算 1逻辑数据的表示逻辑数据的表示对二进制数的1与0在逻辑上可代表真与假、是与非、对与错、有与无,这种具有逻辑性的变量称为逻辑变量。逻辑变量之间的运算就称为逻辑运算。2逻辑运算逻辑运算在计算机中,逻辑数据的值用于判断某个事件成立与否,成立为1(真),反之则为0(假)。(1)逻辑非运算它表示同原事件A含义相反 42(2)逻辑与运算逻辑与也称逻辑乘,通常用“”、“”或“”符号表示两个逻辑变量间的与关系。逻辑与表示两个简单事件A和B构成逻辑相乘的复杂事件,表示当A、B事件同时满足结果才为真,只要有一个为假,结果为假。(3)逻辑或运算逻辑或通常用“+”或“”符号
26、表示两个逻辑变量间的或关系。表示A、B两个事件只要有一个满足时结果就为真,只有两个均为假,结果才为假。(4)逻辑异或运算432.2 数据的表示与处理 2.2.1 数据的长度单位数据的长度单位在计算机上数据的长度单位有位、字节和字等。1位位,也称比特(bit),记为b,它是计算机中存储的最小单位。2字节字节记为Byte或大写字母B。3字字记为word或小写字母w。字是计算机内部进行信息交换、数据并行处理的基本单元,一个字由一个字节或几个字节构成。它的表示与具体的机型有关。4445F符号数的表示把二进制数的最高一位定义为符号位,符号位为0表示正数,符号位为1表示负数这种在计算机中使用的、连同符号位
27、一起数值化了的数,称为机器数。机器数所表示的真实的数值,称为真值。对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X的原码记作X原,反码记作X反,补码记作X补。F最高位表示符号,数值位用二进制绝对值表示的方法,称为原码表示法F一个负数的原码符号位保持不变,其余位取反就是机器数的反码表示法。正数的反码与原码相同。F将负数的反码加1,则得到机器数的补码表示。正数的补码与原码相同。2.2.2 微型计算机的内信息的表示46真值X=+18=+0010010X=-18=-0010010X=+0=+0000000X=-0=-0000000原码X原=00010010X原=10010010X原=000
28、00000X原=10000000符号符号位n位原码表示数值的范围是 ,对应的原码是11110111。0的原码有两种形式。原码原码)12()12(11nn47真值X=+18=+0010010X=-18=-0010010X=+0=+0000000X=-0=-0000000反码X反=00010010X反=11101101X反=00000000X反=11111111符号符号位反码反码n位反码表示数值的范围是 ,对应的反码是10000111。0的反码有两种形式。)12()12(11nn48补码补码真值X=+18=+0010010X=-18=-0010010X=+0=+0000000X=-0=-00000
29、00补码X补=00010010X补=11101110X补=00000000X补=00000000符号符号位n位补码表示数值的范围是 ,对应的补码是10000111。0的补码只有一种形式。将补码还原为真值时,如果补码的最高位是0,则为正数,后面的二进制序列值即为真值;如果补码的最高位是1,则为负数,应将其后的数值位按位求反再加1,所得结果才是真值。)12(211nn49补码加减法的运算规则XY补=X补+Y 补其中X,Y为正负数均可,符号位参与运算。模(module)就是一个计数系统的最大容量,其大小等于以进位计数制基数为底,以位数为指数的幂。凡是用器件进行的运算都是有模运算,运算结果超过模的部分
30、被运算器自动丢弃。因此,当器件为n位时,有,X=2n+X (mod 2n)不难验证,X补=2n+X (mod 2n)因此,XY补=2n+(XY)(mod 2n)=(2n+X)+(2n+X)=X补+Y补50补码加减法的运算规则例例.设X=23,Y=-42,以28为模,用补码运算求X+Y和X-Y。51采用补码,可以将减法用加法实现,省去减法器,简化硬件先对减数进行求补运算(求反加1,也是加法)再将求补后的数与被减数相加相加的结果即为用补码表示的两数相减结果。01011010 1 01011011 01000100 01000100B -10100101B 10011111计算机中实现过程52无符号
31、数的表示无符号数的最高位不是符号位而是数值的一部分机器运算表示符号数表示无符号数 10111001 00101011 11100100+)-71补 43补-28补+)185 43 228+)无符号数和有符号数的加减运算可以用同一电路完成无符号数和有符号数的加减运算可以用同一电路完成53进位和溢出进位在加法过程中,符号位向更高位产生进位;在减法过程中,符号位向更高位产生借位 1 0 1 1 0 1 0 1 +1 0 0 0 1 1 1 1进位进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 054进位和溢出溢出运算结果超出范围 1 0 1 1 0 1 0 1 +1 0 0 0 1 1
32、 1 1 0 1 0 0 0 1 0 0溢出的判断方法:由参与运算的两数及结果的符号位进行判断,如果l符号相同的两数相加,所得结果的符号与之相反,结果溢出。l符号相异的两数相减,所得结果的符号与减数相同,结果溢出。l其他情况,不会产生溢出。55进位和溢出有符号数运算,有溢出表示结果为错误的无符号数运算,有进位表示结果为错误的 1 0 1 1 0 1 0 1 +1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 +0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 +1 1 0 0 1 1 0 1 1 0
33、 0 0 0 1 1 1 156浮点数的表示任意一个二进制实数X都可以表示成如下一般格式:X=S 2 J尾符尾数阶符阶码10.010111012+5的阶码为+5,表示把尾数的小数点向右移动5位就是小数点的实际位置规格化处理:整数部分必须是157符号位阶码有 效 数 字02 331符号位阶码有 效 数 字05163符号位阶 码有 效 数 字0647 9163单精度数双精度数扩展精度数浮点数的表示Pentium微处理器支持的浮点格式Pentium将阶码以一种偏置形式存放于格式之中,即将真阶码加上一个常数偏置值才是格式阶码,以保证偏置后的格式阶码恒为正数。单精度的阶码偏置值为+127,双精度的阶码偏
34、置值为+1023,扩展精度的阶码偏置值为+16383。一个浮点数数的真阶码要通过它的格式阶码减去偏置值而得到。58浮点数的表示例例.写出178.125以单精度浮点数形式存放的机器数。59十进制数的表示8421BCD码压缩BCD码的每一位用4位二进制表示,00001001表示09,一个字节表示两位十进制数。非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的00001001表示09。60非数值数据的表示计算机中除了能够处理数值数据以外,还可以处理文字、语音、图像等各种信息,这些信息统称为非数值数据非数值数据在计算机中也必须以二进制形式表示,非数值数据的表示本质上是编码的过程。6
35、1 ASCII 字符表0000010100111001011101110000NULDLESP0Pp0001SOHDC1!1AQaq0010STXDC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENGNAK%5EUeu0110ACKSYN&6FVfv0111BELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?OoDEL注:H 表示高 3 位,L 表示低 4 位。HL ASCII码美国标准信息交换代码62采用7位二进制代码对字符进行
36、编码数字09的编码是01100000111001,它们的高3位均是011,后4位正好与其对应的二进制代码(BCD码)相符。英文字母AZ的ASCII码从1000001(41H)开始顺序递增,字母az的ASCII码从1100001(61H)开始顺序递增,这样的排列对信息检索十分有利。ASCII码63汉字编码汉字编码包括输入编码、内码和字模编码,分别用于输入、内部处理和输出。汉字的输入编码是为了使用西文标准键盘把汉字输入到计算机中,其编码方法主要有数字编码、拼音码和字形编码三类。除了键盘输入以外,利用语音或图象识别技术自动将汉字输入到计算机内的方法也已经实现汉字内码是用于汉字信息的存储、交换、检索等
37、操作的机内代码,它采用两个字节的二进制形式表示一个汉字。为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为l。汉字字模编码是用来描述汉字字形的代码,它是汉字的输出形式。汉字库有点阵字库、TrueType字库、矢量字库等类型64中南大学中国水利水电出版社65第3章 8086/8088CPU的体系结构及其指令系统 3.1 CPU发展概述 微处理器(microprocessor)是微型计算机的运算及控制部件,也称中央处理单元(CPU)。它本身不构成独立的工作系统,因而它也不能独立地执行程序。通常,微处理器由算术逻辑部件(ALU)、控制部件、寄存器组和片内总线等几部分组成。20世纪70年
38、代后期,超大规模集成电路(VLSI)投人使用,出现了第三代微处理器。Intel公司的 80868088,Motorola公司的 M68000和 Zilog公司的Z8000等16位微处理器相继问世,它们的运算速度比8位微处理器快25倍,采用HMOS高密度工艺,集成度达到每片29000个晶体管,赶上或超过了 20世纪 70年代小型机的水平。663.2 80868088 CPU的结构 AHALBHBLCHCLDHDLSPBPDISIALU暂存寄存器ALU数据总线(16位)标志寄存器EU控制单元CSDSSSESIP内部通信寄存器123456执行部件(EU)队列总线(8位)队列接口部件(BIU)指令队列
39、总线控制逻辑数据总线(16位)地址总线(20位)8086总线图3-1 8086微处理器结构框图通用寄存器3.2.1 8086/8088 CPU的内部结构框图 673.2.2 总线接口部件BIU(Bus Interface Unit)BIU具有下列功能:l 地址形成l 取指令l 指令排队l 读写操作数l 总线控制它由下列各部分组成:l 16位段地址寄存器l 16位指令指针寄存器l 20位物理地址加法器l 6字节指令队列(指令缓存区)总线控制逻辑 68总线接口部件BIU的工作过程如下:(1)代码段段寄存器CS中16位段基地址,与指令指针寄存器IP中16位偏移地址,在地址加法器内形成20位物理地址;
40、(2)20位地址直接送往地址总线,通过总线控制逻辑发出存储器读信号RD,启动存储器,按给定的地址从存储器中取出指令;(3)取出的指令送到指令队列(指令缓存区)中等待执行。BIU的指令队列可存储6字节指令代码,它是先进先出的队列寄存器,允许预取6字节指令代码。一般情况下,指令队列中填满指令;(4)EU可从指令队列中取出指令执行。指令代码装入指令队列输入端后,自动调整指令队列输入端指针。EU从指令队列输出端取指令,且在EU取走一字节的指令代码后,自动调整指令队列输出端指针。当指令队列有2个或2个以上的字节空余时,BIU自动将指令取到指令队列中;69(5)当指令队列已满,并且执行部件EU未向BIU申
41、请读写存储器操作数,则BIU不执行任何总线周期,处于空闲状态;(6)EU从指令队列中取走指令,经指令译码后,向BIU申请从存储器或端口读写操作数。只要收到EU送来的逻辑地址,BIU将通过地址加法器将现行数据段及送来的逻辑地址组成20位物理地址,在当前取指令总线周期完成后,在读写总线周期访问存储器或IO端口完成读写操作。最后EU执行指令,由BIU将运算结果读出;(7)指令指针寄存器IP由BIU自动修改,指向下一条指令在现行代码段内的偏移地址。当EU执行转移指令时,则BIU清除指令队列,从转移指令的新地址取得指令,立即送给EU执行,然后从后续指令序列中取指令填满队列;(8)总线控制部件发出总线控制
42、信号,实现存储器或端口读写控制。它将 8086CPU的内部总线与外部总线相连,是8086 CPU与外部打交道不可缺少的路径.703.2.3 指令执行部件指令执行部件EU(Execution Unit)指令执行部件EU完成指令译码和执行指令的工作。它由以下几个部分组成:l 算术逻辑运算单元 ALUl 标志寄存器PSWl 4个通用16位寄存器组l 4个专用16位寄存器l EU控制器指令执行部件工作过程如下:(1)EU从BIU的指令队列输出端取得指令,进行译码;(2)若执行指令需要访问存储器或端口去取操作数,则EU将操作数的偏移地址通过内部16位数据总线送给BIU,与段地址一起,在BIU的地址加法器
43、中形成20位物理地址,申请访问存储器或端口,取得操作数送给EU,EU根据指令要求向EU内部各部件发出控制命令,完成执行指令的功能;71(3)算术逻辑运算单元ALU完成各种算术运算及逻辑运算,运算的操作数可从存储器取得,也可从寄存器组取来;(4)16位暂存器暂存参加运算的操作数。运算结果由内部总线送到EU的寄存器组或送到BIU的内部寄存器,由BIU写入存储器或端口;(5)运算后结果的特征改变了标志寄存器PSW的状态,供测试、判断及转移指令使用;(6)EU控制器负责从指令队列中取指令、指令译码及发各种控制命令以完成指令要求的功能。(7)一般情况下,指令顺序执行EU从指令队列中取指令而不是访问存储器
44、取指令,所以取指令与执行指令可并行操作。但遇到转移指令、调用指令和返回指令,要将指令队列中的内容作废,由BIU重新取转移去的新地址中的指令代码EU才能继续执行指令,此时并行操作可能受到影响。但这种情况相对较少发生,因此EU与BIU之间相互配合又相互独立的非同步工作方式提高了CPU的工作效率。723.3 8086/8088 CPU的寄存器组和存储器 3.3.1 寄存器组1 1通用寄存器组通用寄存器组 AHALBHBLCHCLDHDLSPEPSIDIIPFLAGSCSDSSSES图3-2 寄存器组示意图累加器基址寄存器计数寄存器数据寄存器堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指令指
45、针寄存器标志寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器数据寄存器地址指针和变址寄存器控制寄存器段寄存器通用寄存器732指针及变址寄存器包括 SP、BP、SI、DI四个16位寄存器。它们可以象数据寄存器一样在运算过程中存放操作数,但它们只能以字(16位)为单位使用。此外,它们更经常的用途是在段内寻址时提供偏移地址。SP(Stack Pointer)称为堆栈指针寄存器BP(Base Pointer)称为基址指针寄存器SI(Source Index)源变址寄存器 DI(Destination Index)目的变址寄存器 3段寄存器 包括CS、DS、SS和ES四个段寄存器。744控制寄存器
46、包括IP和PSW两个16位寄存器。IP指令指针寄存器(Instruction Pointer),存放代码段中的偏移地址,始终指向下一条指令的首地址,它与CS寄存器联用确定下一条指令的物理地址。条件码标志:记录程序中运行结果的状态信息。由于这些状态信息往往作为后续条件转移指令的转移控制条件,所以称为条件码。它包括以下6位:l OF(Overflow Flag)溢出标志。本次运算过程中产生溢出时,OF=1l SF(Sign Flag)符号标志。本次运算结果的最高位为 1时,SF=1l ZF(Zero Flag)零标志。本次运算结果为 0时,ZF=1l CF(Carry Flas)进位标志。本次运算
47、结果中最高位有进位或借位时,CF=1l AF(Auxiliary carry Flag)辅助进位标志。本次运算结果中低 4位向高 4位有进位或借位时,AF=1PF(Parity Flag)奇偶标志。本次运算结果中有偶数个“1”时,PF=1 75控制标志位有三个:l DF(Direction Flag)方向标志,在串处理指令中控制处理信息的方向。l IF(Interrupt Flag)中断标志,当 IF为 1时,允许中断,否则关闭中断。l TF(TraP Flag)陷井标志,用于单步方式操作。控制信息是由系统程序或用户程序根据需要用指令来设置的,状态信息是由中央处理机根据计算的结果自动设置的。在
48、调试程序DEBUG中提供了测试标志位的手段,它用符号表示标志位的值。763.3.2 存储器结构存储器结构1存储单元的地址和内容 (1)计算机存储信息的单位(2)存储器地址:在存储器里以字节为单位存储信息。为了正确地存放或取得信息,每一个字节单元给以一个存储器地址。(3)存储器的容量的基本单位(4)地址及内容的表示(5)机器字的表示(6)存储器的特性:重复读取:从某个单元取出其内容后,其内容仍然保存不变,可以重复取出 存新覆旧:只有存入新的信息后,原来保存的内容就自动丢失了。772存储器地址的分段存储器地址的分段(1)段与小段:把存储器划分成段(Segment),每个段的大小可达64K,这样段内
49、地址可以用16位表示。可以根据需要来确定段的大小,可以是64K范围内的任意个字节。段的起始地址必须从任一小段(Paragraph)的首地址开始。小段(Paragraph):从0地址开始,每16个字节为一小段,下面列出了存储器最低地址区的三个小段的地址区间,每行为一小段。78(2)物理地址及其确定:物理地址:在1M字节的存储器里,每一个存储单元都有一个唯一的20位地址,称为该存储单元的物理地址。20位物理地址由16位段地址和16位偏移地址组成 段地址是指每一段的起始地址,其低4位一定是0,这样就可以规定段地址只取段起始地址的高16位值。偏移地址则是指在段内相对于段起始地址的偏移值。物理地址的计算
50、方法 段寄存器在IBM PC机中,有四个专门存放段地址的寄存器,称为段寄存器。l 代码段寄存器CS(Code Segment)l 数据段寄存器DS(Data segment)l 堆栈段寄存器SS(Stack Segment)附加段寄存器ES(Extra Segment)79(3)段寄存器的设定与调整:各段在存储器中的分配一般是由操作系统负责的。各段也可以允许重叠(指每个段区的大小允许根据实际需要来分配,而不一定要占有64K的最大段空间)。注意新段可以在已占用区后面的第一个小段开始。CSDSSSES.64KB代码段64KB堆栈段64KB数据段64KB附加段存储器00000H01230H6C100
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。