
编辑推荐
内容精炼,实用性强
注重运用理论解决实际问题
每章后均附有习题和思考题
目录
第1章微型计算机基础
1.1计算机中的数和编码
1.1.1计算机中的数制
1.1.2符号数的表示法
1.1.3二进制数的加减运算
1.1.4二进制编码
1.1.5BCD数的加减运算
1.1.6二进制数的逻辑运算与逻辑电路
1.2逻辑单元与逻辑部件
1.2.1触发器
1.2.2寄存器
1.2.3移位寄存器
1.2.4计数器
1.2.5三态输出门与缓冲放大器
1.2.6译码器
1.3微型计算机的结构和工作原理
1.3.1微型计算机常用的术语
1.3.2微型计算机的基本结构
1.3.3计算机的工作原理
1.480x86微处理器
1.4.18086/8088
1.4.280286
1.4.380386
1.4.480486
1.4.5Pentium
1.4.6Itanium
1.580x86的寄存器
1.5.18086/8088的寄存器
1.5.280286的寄存器
1.5.380386的寄存器
1.5.480486的寄存器
1.5.5Pentium的寄存器
1.680x86的工作方式与存储器物理地址的生成
1.6.180x86的工作方式
1.6.280x86存储器的分段和物理地址的生成
习题与思考题
第2章汇编语言与汇编程序
2.1符号指令中的表达式
2.1.1常量
2.1.2标号
2.1.3变量
2.2符号指令的寻址方式
2.2.1寄存器寻址
2.2.2立即寻址
2.2.3直接寻址
2.2.4间接寻址
2.2.5基址寻址
2.2.6变址寻址
2.2.7基址变址寻址
2.2.8比例变址寻址(80386及后继微处理器可用)
2.2.9基址比例变址寻址(80386及后继微处理器可用)
2.2.10存储器寻址及存储器寻址中段基址或段选择字的确定
2.3常用指令
2.3.1数据传送类指令
2.3.2加减运算指令
2.3.3逻辑运算指令
2.3.4移位指令
2.3.5位搜索(扫描BitScan)指令(80386及其后继微处理器可用)
2.3.6位测试(BitTests)指令(80386及其后继微处理器可用)
2.3.7指令应用举例
2.4常用伪指令
2.4.1过程的定义
2.4.2微处理器选择伪指令
2.4.3段的定义
2.4.4汇编地址计数器
2.4.5段寄存器的设定
2.4.6源程序的结束
2.4.7宏汇编源程序的格式
2.5常用系统功能调用和BIOS
2.5.1系统功能调用
2.5.2常用系统功能调用应用举例
2.5.3BIOS
习题与思考题
第3章程序设计的基本技术
3.1顺序程序设计
3.1.1乘除法指令
3.1.2BCD数调整指令
3.1.3顺序程序设计举例
3.2分支程序设计
3.2.1条件转移指令
3.2.2无条件转移指令
3.2.3分支程序设计举例
3.3循环程序设计
3.3.1循环程序的基本结构
3.3.2重复控制指令
3.3.3单重循环程序设计举例
3.3.4多重循环程序设计举例
3.4串处理程序设计
3.4.1方向标志置位和清除指令
3.4.2串操作指令
3.4.3重复前缀
3.4.4串操作程序设计举例
3.5子程序设计
3.5.1子程序的概念
3.5.2子程序的调用指令与返回指令
3.5.3子程序及其调用程序设计
3.6宏功能程序设计
3.6.1宏指令
3.6.2条件汇编与宏库的使用
3.6.3宏功能程序设计举例
习题与思考题
第4章总线
4.1总线概述
4.1.1总线分类
4.1.2总线操作
4.28086/8088的CPU总线
4.2.18086/8088的引线及功能
4.2.28088的CPU系统
4.2.38088的时序
4.3Pentium的CPU总线
4.4局部总线
4.4.1ISA局部总线
4.4.2PCI局部总线
4.5通用外部总线
4.5.1IDE总线
4.5.2SCSI总线
4.5.3通用串行总线USB
4.5.4视频接口AGP
4.6Pentium微型计算机系统
4.6.1北桥南桥式控制芯片组与微型计算机系统
4.6.2MCHICH集中式控制芯片组与微型计算机系统
习题与思考题
第5章存储器及其接口
5.1存储器概述
5.1.1存储器的类型
5.1.2存储器的性能指标
5.1.3存储器的分级结构
5.2常用的存储器芯片
5.2.1半导体存储器芯片的结构
5.2.2只读存储器ROM
5.2.3随机读写存储器RAM
5.3存储器与CPU的接口
5.3.1存储器芯片与地址总线的连接
5.3.2存储器芯片与数据总线的连接
5.3.3存储器芯片与控制总线的连接
5.3.4连接举例
习题与思考题
第6章输入输出和接口技术
6.1接口的基本概念
6.1.1接口的功能
6.1.2接口控制原理
6.1.3接口控制信号
6.2I/O指令和I/O地址译码
6.2.1标准的I/O寻址方式
6.2.2存储器映像I/O寻址方式
6.2.3输入输出指令
6.2.4I/O接口的端口地址译码
6.3数字通道接口
6.3.1数据输出寄存器
6.3.2数据输入三态缓冲器
6.3.3三态缓冲寄存器
6.3.4寄存器和缓冲器接口的应用
6.3.5打印机适配器
6.4模拟通道接口
6.4.1数模转换器DAC及其与微型计算机的接口
6.4.2模数转换器ADC及其与微型计算机的接口
习题与思考题
第7章中断技术
7.1中断和中断系统
7.1.1中断的概念
7.1.2中断请求与控制和中断源的识别
7.1.3中断系统的功能
7.1.4CPU对外部可屏蔽中断的响应及中断过程
7.2中断控制器8259A
7.2.18259A的组成和接口信号
7.2.28259A处理中断的过程
7.2.38259A的级联
7.2.48259A的命令字
7.380x86微处理器的中断指令和80x86微型计算机的中断系统
7.3.1中断指令
7.3.2外部中断
7.3.3内部中断
7.3.4中断类型码及中断种类
7.3.5中断向量表和中断描述符表
7.3.6中断响应和处理过程
7.4实地址方式下的可屏蔽中断服务程序的设计
7.4.1中断服务程序入口地址的装入
7.4.2中断屏蔽与中断结束的处理
7.4.3中断服务程序设计举例
习题与思考题
第8章常用可编程接口芯片
8.1可编程并行接口8255
8.1.18255的组成与接口信号
8.1.28255的工作方式与控制字
8.1.3三种工作方式的功能
8.2可编程计数器/定时器8253
8.2.18253的组成与接口信号
8.2.2计数器的工作方式及其与输入输出的关系
8.2.38253的控制字和初始化编程
8.2.48253的应用
8.3串行通信与异步通信控制器8250的应用
8.3.180x86微型计算机的串行口
8.3.2异步通信控制器8250
8.3.38250与微型计算机及RS232接口信号的连接
8.3.4异步串行通信程序设计
8.3.580x86微型计算机之间的通信
8.3.680x86微型计算机与MCS51单片机之间的通信
习题与思考题
附录A80x86指令系统表
附录B80x86指令按字母顺序查找表
附录C80x86算术逻辑运算指令对状态标志位的影响
序言
前言
经过多年来的教学实践,尤其是近三年来课程改革实践,我们对教材内容和课程体系进行了深入的研究,并做了修改和更新。本书在第2版的基础上对部分章节进行了必要的调整,既保持了多年形成的比较成熟的课程体系,又适当地补充了一些新的内容。
本书通过8086到Pentium微处理器和以80x86为CPU的微型计算机的硬件和软件分析,阐明微型计算机的组成原理、汇编语言程序设计以及存储器、输入输出接口芯片与微处理器的接口方法,为学习者在微处理器和微型计算机的应用上打下坚实的基础。
本书包括汇编语言程序设计和接口技术两部分内容。汇编语言程序设计是微型计算机应用系统的系统软件和应用软件的设计基础,接口技术是微型计算机应用系统硬件组成的设计基础。本书内容较全面,实例丰富。书中的程序和接口电路的设计包含作者多年来在科研和教学中积累的经验和技巧。学习微型计算机的汇编语言程序设计和接口技术必须理论联系实际。本书在介绍基本概念的同时,列举了大量典型而有意义的例题和习题。这些例题和习题,无论是汇编程序还是接口电路都已在80x86系列微型计算机系统上调试通过。
80x86为用户提供了实地址方式、虚地址保护方式和虚拟8086方式三种工作方式,但从编程角度看,仅提供了实地址方式和虚地址保护方式两种工作方式。就编程而言,这两种工作方式并无实质上的区别,而且使用实地址方式已可解决应用程序所面向的大量问题,所以本书有关汇编语言程序设计的讨论只限于DOS环境下的实地址方式。
本书内容丰富,实用性强。每章后均配有一定数量的、能达到检验和加深理解理论知识、培养解题和应用能力及训练思维方式的习题。避免了烦琐的文字叙述、数学推导及题海,将学生从“学海无涯苦作舟”中解放出来,使他们做到一看就懂、一学就会、欲罢不能、兴趣盎然。编写本书时,注意了理论和实践相结合,力求做到既有一定的理论基础,又能运用理论解决实际问题; 既掌握一定的先进技术,又着眼于当前的应用服务。
本教材的参考学时为80学时(不含实验)。学时数较少的学校或专业可以不讲授第2章和第3章中的以下内容: 地址传送指令、查表转换指令、BIOS、串处理程序设计和宏功能程序设计等,本书后面没有使用这些内容。还可以只选讲实地址方式的有关内容。
本书由朱定华编写,参加本书编写工作的人员还有戴颖颖、朱悦、蔡苗、周斌、蔡红娟、翟晟、黄松、吕建才、陈艳、林卫、李志文、林威等。
计算机的发展日新月异,教学改革任重道远。限于作者的水平和能力,书中不妥之处在所难免,恳请读者和各位同仁批评指正。
编者
2017年4月
文摘
第5章
存储器及其接口
5.1存储器概述
存储器是计算机系统中的记忆装置,用来存放程序和数据。更确切地说,存储器是存放二进制编码信息的硬件装置。
5.1.1存储器的类型
从不同角度出发,存储器有不同的分类方式。
1. 按工作时与CPU联系密切程度分类
可分为主存和辅存,或称作内存和外存。主存直接和CPU交换信息,且按存储单元进行读写数据。辅存则是作为主存的后援,存放暂时不执行的程序和数据,它只是在需要时与主存进行批量数据交换,因此辅存通常容量大,但存取速度慢。
2. 按存储元件材料分类
可分为半导体存储器、磁存储器及光存储器。半导体存储器主要用来作主存,而磁和光材料主要作大容量辅存,如磁盘、磁带、光盘等。
3. 按存储器读/写方式分类
可分为随机存取存储器和只读存储器。随机存取存储器中任何存储单元都能随时读写,即存取操作与时间、存储单元的物理位置顺序无关,又称作读写存储器。而只读存储器中存储的内容是固定不变的,联机工作时只能读出不能写入。随机存取存储器通常记为RAM(Random Access Memory),只读存储器记为ROM(Read Only Memory)。
5.1.2存储器的性能指标
存储器的主要性能指标有5项: 存储容量、存取速度、可靠性、功耗及性能价格比。
1. 存储容量
存储容量是存储器的一个重要指标。通常存储容量用其存储的二进制位信息量描述,用其存储单元数与存储单元字长乘积表示,即容量=字数×字长。例如,容量为16KB即16K×8,它表示存储器有16×1024=16384个存储单元,每个存储单元字长为8位。若容量为4K×16,则表示存储器有4096(4×1024)个存储单元,每个存储单元字长为16位。微型计算机中的存储器几乎都以字节进行编址,即总认为一个字节是一个基本字长,所以常用存储器的字节数表示容量,例如,PC XT内存为256KB、386内存为4MB、486内存为8MB,即为256K字节、4M字节、8M字节。
2. 存取速度
存取速度是指CPU从存储器存入或取出数据所需要的时间,存取时间又称为访问时间或读/写时间。读出时间是指从CPU向存储器发出有效地址和读信号开始,直到将被选中单元的内容送上数据总线为止所用的时间; 写入时间是指从CPU向存储器发出有效地址和写信号开始,直到将CPU送上数据总线上的内容写入被选中单元为止所用的时间。显然,存入或取出数据所需要的时间越短,存取速度越快。
3. 可靠性
可靠性是指在规定的时间内,存储器无故障读/写的概率。通常用平均无故障时间(mean time between failures,MTBF)来衡量存储器的可靠性。MTBF表示两次故障之间的平均时间间隔,时间越长说明存储器的可靠性越高。
4. 功耗
功耗反映存储器件耗电的多少,同时也反映了存储器件发热的程度。功耗越小,存储器件的工作稳定性越好。
5. 性能价格比
性能价格比是一个综合性指标,性能主要指上述4个,价格包括存储器芯片和外围电路的成本。
对存储器的要求是容量大、速度快、可靠性高、功耗低、性能价格比高,但在一个存储器中要求上述几项性能均佳是难以办到的,而有些指标要求本身就是互相矛盾的。为解决这一矛盾,目前在计算机系统中,采用了分级结构。
5.1.3存储器的分级结构
目前采用较多的是三级存储器结构,即高速缓冲存储器(cache)、内存储器和辅助存储器。中央处理器CPU能直接访问的存储器有cache和内存。CPU不能直接访问辅存,辅存中的信息必须先调入内存才能由CPU进行处理。
高速缓存即cache,是一高速小容量的存储器,位于CPU和内存之间,其速度一般比内存快5~10倍。在微型计算机中,用cache临时存放CPU最近一直在使用的指令和数据,以提高信息的处理速度。cache通常采用与CPU速度相当的静态随机存储器(SRAM)芯片组成,和内存相比,它存取速度快,但价格高,故容量较小。
内存用来存放计算机运行期间的大量程序和数据,它和cache交换指令和数据,cache再和CPU打交道。目前,内存多由MOS动态随机存储器(DRAM)芯片组成。
辅存目前主要使用的是磁盘存储器、磁带存储器和光盘存储器。磁盘存储器包括软磁盘和硬磁盘两种类型。磁带存储器有磁带机和盒式录音机。光盘存储器有只读光盘、追忆型光盘和可改写型光盘等三种类型。现在PC上广泛使用的是只读光盘,即CDROM(compact discread only memory)光盘。辅存是计算机最常用的输入输出设备,通常用来存放系统程序、大型文件及数据库等。
上述三种类型的存储器构成三级存储管理,各级职能和要求各不相同。其中,cache主要为获取速度,使存取速度能和中央处理器的速度相匹配; 辅存追求大容量,以满足对计算机的容量要求; 内存则介于两者之间,要求其具有适当的容量,能容纳较多的核心软件和用户程序,还要满足系统对速度的要求。
图51存储器的层次结构
在最初的32位微型计算机中高速缓存cache在CPU片外; 而目前大多数CPU还将cache集成在片内,由于其时钟与CPU相同,进一步提高了信息的处理速度。形成速度较片外cache快、容量较片外cache小的一级cache。为更好地管理和改进各项指标,还在CPU内建立较多的通用寄存器组,形成速度更快、容量更小的一级; 还有将辅存再分为脱机辅存和联机辅存两级。存储器的层次结构如图51所示。
5.2常用的存储器芯片
5.2.1半导体存储器芯片的结构
半导体存储器芯片通常由存储矩阵、地址译码器、控制逻辑和三态数据缓冲寄存器组成,如图52所示。
图52存储器芯片的组成
存储矩阵也称作存储体,是大量存储元件的有机组合。存储元件则是由能存储一位二进制代码(1或0)的物理器件构成的。N个存储元件构成可并行存取,记忆N位代码的存储单元,犹如N个触发器构成一个N位数据寄存器一样。将存储矩阵中的全部存储单元赋予单元地址,由芯片内部的地址译码器实现按地址选择对应的存储单元。在CPU及其接口电路送来的芯片选择信号CS和读写控制信号R/的配合下,单方向打开三态缓冲器,将该存储单元中的N位代码进行读或写操作。在不进行读或写操作时,芯片选择信号CS无效,控制逻辑使三态缓冲器处于高阻状态,存储矩阵与数据线脱开。对半导体存储器芯片内部的结构无须详细了解,对外特性则要熟练掌握。容量为2n个存储单元的存储矩阵,须有n条地址线选通对应的存储单元,若每个存储单元有N位代码(字长为N),则有N条数据线,该存储体由2n×N个存储元件组成。
5.2.2只读存储器ROM
只读存储器(read only memory,ROM)的特点是信息一经写入,存储单元里的内容就不能改变,即使在断电后也不会丢失,但只能读出。ROM依写入情况可分为掩模ROM,可编程ROM(programmable ROM,PROM),紫外线擦除PROM(erasable PROM,EPROM)和电擦除PROM(electrically PROM,EEPROM)4类。掩模ROM的内容是由制造厂家在生产过程中按用户要求写入的,用户不可更改。PROM的内容由用户自行写入,写入后就不可更改了。只能编程一次的OTP(One Time PROM)是一种新型的PROM,它可用普通的EPROM编程器对其编程,它的引线分别与同容量的EPROM芯片的引线兼容。紫外线擦除PROM(即EPROM)的内容在使用前可由用户更改,在工作过程中只能读出不能再写入。而电擦除PROM(即EEPROM)既可像ROM那样长期保存信息,断电后也不丢失信息,又可像RAM那样可以随时进行读/写。类似于EPROM和EEPROM的闪速存储器(flash memory),是性价比和可靠性最高的一种存储器。目前在微型计算机的应用系统中用得最多的ROM为EPROM、EEPROM和闪速存储器。
1. EPROM
常用的EPROM芯片以一片2716为最基本容量,即2K×8,而2732、2764、27128和27256的存储容量则逐次成倍递增为4K×8,8K×8,16K×8和32K×8。它们的引线排列如图53所示。芯片内部的地址译码电路对其地址线进行译码,以便对其内部的存储单元进行选择,选中的存储单元的8个存储元件的二进制信息同时出入,所以它们都有8根数据线D7~D0。数据的读出由芯片允许信号CE和输出允许信号OE一起控制。当CE和OE有效(即CE、OE为低电平)时,则被选中的存储单元中的8位二进制信息送往数据线D7~D0。数据的写入(编程)需要20~25V的编程脉冲,由芯片的编程控制线PGM和编程电源线VPP一起控制。EPROM的擦除和写入(编程)需要将芯片从电路板上拔下来在专用的擦除器和编程器进行。在CPU运行期间即EPROM的读方式下,PGM和VPP都接VCC。
图532716等紫外线擦除只读存储器芯片的引线排列
2. EEPROM
EEPROM的使用简单方便,具有在线编程的独特功能,擦除和写入次数为一万次,信息保持时间为10年。芯片内部有电压提升电路,无论读出还是写入(擦除后再写入)都只需在单一的+5V电压下进行。数据在提升电压的作用下写入存储单元,如同使用SRAM一样,因而它的应用范围日渐扩大,成为ROM器件的佼佼者。常用的EEPROM芯片有2816(2K×8)、2817(2K×8)和2864(8K×8)。2816和2864的引线排列也与相同容量的SRAM 6116和6264兼容,2817和2864A的引线排列如图54所示。
CE、WE和OE分别为芯片允许信号、写允许信号和输出允许信号。当CE和WE为低电平且OE为高电平时,进行擦写操作; 当CE和OE为低电平且WE为高电平时,进行读操作。RDY/BUSY为2817和2864A的擦写状态信号线。当2817和2864A进行擦除和写入操作时,将RDY/BUSY置为高电平; 写入操作完成后,再将RDY/BUSY置为低电平。CPU可以通过检测RDY/BUSY的状态,来控制2817和2864A的擦写操作。
2816、2817和2864的主要性能指标基本相同: 读取时间250ns、写入时间10ns(2816为15ns)、字节擦除时间10ns(2816和15ns)、读操作电压5V、擦写操作电压5V、操作电流110mA。
图542817和2864A的引线排列
3. 闪速存储器
闪速存储器与一般EEPROM的不同之处在于,闪速存储器芯片为整体电擦除并需要为其提供12V编程电压。但它的擦除和编程速度高、集成度高、可靠性高、功耗低、价格低,其整体性能优于一般EEPROM。ATMEL公司生产,容量为32K×8、64K×8、128K×8和256K×8的芯片分别是AT29C256、AT29C512、AT29C010和AT29C020。AMD公司生产的芯片命名为AM28F×××。容量为256K×8芯片的引线排列如图55所示。这些闪速存储器芯片的引线都为32条,其差别在地址线的条数,如容量为32K×8芯片的A17~A15为NC(内部无连接)。
图55256K×8闪速存储器芯片的引线排列
内容精炼,实用性强
注重运用理论解决实际问题
每章后均附有习题和思考题
目录
第1章微型计算机基础
1.1计算机中的数和编码
1.1.1计算机中的数制
1.1.2符号数的表示法
1.1.3二进制数的加减运算
1.1.4二进制编码
1.1.5BCD数的加减运算
1.1.6二进制数的逻辑运算与逻辑电路
1.2逻辑单元与逻辑部件
1.2.1触发器
1.2.2寄存器
1.2.3移位寄存器
1.2.4计数器
1.2.5三态输出门与缓冲放大器
1.2.6译码器
1.3微型计算机的结构和工作原理
1.3.1微型计算机常用的术语
1.3.2微型计算机的基本结构
1.3.3计算机的工作原理
1.480x86微处理器
1.4.18086/8088
1.4.280286
1.4.380386
1.4.480486
1.4.5Pentium
1.4.6Itanium
1.580x86的寄存器
1.5.18086/8088的寄存器
1.5.280286的寄存器
1.5.380386的寄存器
1.5.480486的寄存器
1.5.5Pentium的寄存器
1.680x86的工作方式与存储器物理地址的生成
1.6.180x86的工作方式
1.6.280x86存储器的分段和物理地址的生成
习题与思考题
第2章汇编语言与汇编程序
2.1符号指令中的表达式
2.1.1常量
2.1.2标号
2.1.3变量
2.2符号指令的寻址方式
2.2.1寄存器寻址
2.2.2立即寻址
2.2.3直接寻址
2.2.4间接寻址
2.2.5基址寻址
2.2.6变址寻址
2.2.7基址变址寻址
2.2.8比例变址寻址(80386及后继微处理器可用)
2.2.9基址比例变址寻址(80386及后继微处理器可用)
2.2.10存储器寻址及存储器寻址中段基址或段选择字的确定
2.3常用指令
2.3.1数据传送类指令
2.3.2加减运算指令
2.3.3逻辑运算指令
2.3.4移位指令
2.3.5位搜索(扫描BitScan)指令(80386及其后继微处理器可用)
2.3.6位测试(BitTests)指令(80386及其后继微处理器可用)
2.3.7指令应用举例
2.4常用伪指令
2.4.1过程的定义
2.4.2微处理器选择伪指令
2.4.3段的定义
2.4.4汇编地址计数器
2.4.5段寄存器的设定
2.4.6源程序的结束
2.4.7宏汇编源程序的格式
2.5常用系统功能调用和BIOS
2.5.1系统功能调用
2.5.2常用系统功能调用应用举例
2.5.3BIOS
习题与思考题
第3章程序设计的基本技术
3.1顺序程序设计
3.1.1乘除法指令
3.1.2BCD数调整指令
3.1.3顺序程序设计举例
3.2分支程序设计
3.2.1条件转移指令
3.2.2无条件转移指令
3.2.3分支程序设计举例
3.3循环程序设计
3.3.1循环程序的基本结构
3.3.2重复控制指令
3.3.3单重循环程序设计举例
3.3.4多重循环程序设计举例
3.4串处理程序设计
3.4.1方向标志置位和清除指令
3.4.2串操作指令
3.4.3重复前缀
3.4.4串操作程序设计举例
3.5子程序设计
3.5.1子程序的概念
3.5.2子程序的调用指令与返回指令
3.5.3子程序及其调用程序设计
3.6宏功能程序设计
3.6.1宏指令
3.6.2条件汇编与宏库的使用
3.6.3宏功能程序设计举例
习题与思考题
第4章总线
4.1总线概述
4.1.1总线分类
4.1.2总线操作
4.28086/8088的CPU总线
4.2.18086/8088的引线及功能
4.2.28088的CPU系统
4.2.38088的时序
4.3Pentium的CPU总线
4.4局部总线
4.4.1ISA局部总线
4.4.2PCI局部总线
4.5通用外部总线
4.5.1IDE总线
4.5.2SCSI总线
4.5.3通用串行总线USB
4.5.4视频接口AGP
4.6Pentium微型计算机系统
4.6.1北桥南桥式控制芯片组与微型计算机系统
4.6.2MCHICH集中式控制芯片组与微型计算机系统
习题与思考题
第5章存储器及其接口
5.1存储器概述
5.1.1存储器的类型
5.1.2存储器的性能指标
5.1.3存储器的分级结构
5.2常用的存储器芯片
5.2.1半导体存储器芯片的结构
5.2.2只读存储器ROM
5.2.3随机读写存储器RAM
5.3存储器与CPU的接口
5.3.1存储器芯片与地址总线的连接
5.3.2存储器芯片与数据总线的连接
5.3.3存储器芯片与控制总线的连接
5.3.4连接举例
习题与思考题
第6章输入输出和接口技术
6.1接口的基本概念
6.1.1接口的功能
6.1.2接口控制原理
6.1.3接口控制信号
6.2I/O指令和I/O地址译码
6.2.1标准的I/O寻址方式
6.2.2存储器映像I/O寻址方式
6.2.3输入输出指令
6.2.4I/O接口的端口地址译码
6.3数字通道接口
6.3.1数据输出寄存器
6.3.2数据输入三态缓冲器
6.3.3三态缓冲寄存器
6.3.4寄存器和缓冲器接口的应用
6.3.5打印机适配器
6.4模拟通道接口
6.4.1数模转换器DAC及其与微型计算机的接口
6.4.2模数转换器ADC及其与微型计算机的接口
习题与思考题
第7章中断技术
7.1中断和中断系统
7.1.1中断的概念
7.1.2中断请求与控制和中断源的识别
7.1.3中断系统的功能
7.1.4CPU对外部可屏蔽中断的响应及中断过程
7.2中断控制器8259A
7.2.18259A的组成和接口信号
7.2.28259A处理中断的过程
7.2.38259A的级联
7.2.48259A的命令字
7.380x86微处理器的中断指令和80x86微型计算机的中断系统
7.3.1中断指令
7.3.2外部中断
7.3.3内部中断
7.3.4中断类型码及中断种类
7.3.5中断向量表和中断描述符表
7.3.6中断响应和处理过程
7.4实地址方式下的可屏蔽中断服务程序的设计
7.4.1中断服务程序入口地址的装入
7.4.2中断屏蔽与中断结束的处理
7.4.3中断服务程序设计举例
习题与思考题
第8章常用可编程接口芯片
8.1可编程并行接口8255
8.1.18255的组成与接口信号
8.1.28255的工作方式与控制字
8.1.3三种工作方式的功能
8.2可编程计数器/定时器8253
8.2.18253的组成与接口信号
8.2.2计数器的工作方式及其与输入输出的关系
8.2.38253的控制字和初始化编程
8.2.48253的应用
8.3串行通信与异步通信控制器8250的应用
8.3.180x86微型计算机的串行口
8.3.2异步通信控制器8250
8.3.38250与微型计算机及RS232接口信号的连接
8.3.4异步串行通信程序设计
8.3.580x86微型计算机之间的通信
8.3.680x86微型计算机与MCS51单片机之间的通信
习题与思考题
附录A80x86指令系统表
附录B80x86指令按字母顺序查找表
附录C80x86算术逻辑运算指令对状态标志位的影响
序言
前言
经过多年来的教学实践,尤其是近三年来课程改革实践,我们对教材内容和课程体系进行了深入的研究,并做了修改和更新。本书在第2版的基础上对部分章节进行了必要的调整,既保持了多年形成的比较成熟的课程体系,又适当地补充了一些新的内容。
本书通过8086到Pentium微处理器和以80x86为CPU的微型计算机的硬件和软件分析,阐明微型计算机的组成原理、汇编语言程序设计以及存储器、输入输出接口芯片与微处理器的接口方法,为学习者在微处理器和微型计算机的应用上打下坚实的基础。
本书包括汇编语言程序设计和接口技术两部分内容。汇编语言程序设计是微型计算机应用系统的系统软件和应用软件的设计基础,接口技术是微型计算机应用系统硬件组成的设计基础。本书内容较全面,实例丰富。书中的程序和接口电路的设计包含作者多年来在科研和教学中积累的经验和技巧。学习微型计算机的汇编语言程序设计和接口技术必须理论联系实际。本书在介绍基本概念的同时,列举了大量典型而有意义的例题和习题。这些例题和习题,无论是汇编程序还是接口电路都已在80x86系列微型计算机系统上调试通过。
80x86为用户提供了实地址方式、虚地址保护方式和虚拟8086方式三种工作方式,但从编程角度看,仅提供了实地址方式和虚地址保护方式两种工作方式。就编程而言,这两种工作方式并无实质上的区别,而且使用实地址方式已可解决应用程序所面向的大量问题,所以本书有关汇编语言程序设计的讨论只限于DOS环境下的实地址方式。
本书内容丰富,实用性强。每章后均配有一定数量的、能达到检验和加深理解理论知识、培养解题和应用能力及训练思维方式的习题。避免了烦琐的文字叙述、数学推导及题海,将学生从“学海无涯苦作舟”中解放出来,使他们做到一看就懂、一学就会、欲罢不能、兴趣盎然。编写本书时,注意了理论和实践相结合,力求做到既有一定的理论基础,又能运用理论解决实际问题; 既掌握一定的先进技术,又着眼于当前的应用服务。
本教材的参考学时为80学时(不含实验)。学时数较少的学校或专业可以不讲授第2章和第3章中的以下内容: 地址传送指令、查表转换指令、BIOS、串处理程序设计和宏功能程序设计等,本书后面没有使用这些内容。还可以只选讲实地址方式的有关内容。
本书由朱定华编写,参加本书编写工作的人员还有戴颖颖、朱悦、蔡苗、周斌、蔡红娟、翟晟、黄松、吕建才、陈艳、林卫、李志文、林威等。
计算机的发展日新月异,教学改革任重道远。限于作者的水平和能力,书中不妥之处在所难免,恳请读者和各位同仁批评指正。
编者
2017年4月
文摘
第5章
存储器及其接口
5.1存储器概述
存储器是计算机系统中的记忆装置,用来存放程序和数据。更确切地说,存储器是存放二进制编码信息的硬件装置。
5.1.1存储器的类型
从不同角度出发,存储器有不同的分类方式。
1. 按工作时与CPU联系密切程度分类
可分为主存和辅存,或称作内存和外存。主存直接和CPU交换信息,且按存储单元进行读写数据。辅存则是作为主存的后援,存放暂时不执行的程序和数据,它只是在需要时与主存进行批量数据交换,因此辅存通常容量大,但存取速度慢。
2. 按存储元件材料分类
可分为半导体存储器、磁存储器及光存储器。半导体存储器主要用来作主存,而磁和光材料主要作大容量辅存,如磁盘、磁带、光盘等。
3. 按存储器读/写方式分类
可分为随机存取存储器和只读存储器。随机存取存储器中任何存储单元都能随时读写,即存取操作与时间、存储单元的物理位置顺序无关,又称作读写存储器。而只读存储器中存储的内容是固定不变的,联机工作时只能读出不能写入。随机存取存储器通常记为RAM(Random Access Memory),只读存储器记为ROM(Read Only Memory)。
5.1.2存储器的性能指标
存储器的主要性能指标有5项: 存储容量、存取速度、可靠性、功耗及性能价格比。
1. 存储容量
存储容量是存储器的一个重要指标。通常存储容量用其存储的二进制位信息量描述,用其存储单元数与存储单元字长乘积表示,即容量=字数×字长。例如,容量为16KB即16K×8,它表示存储器有16×1024=16384个存储单元,每个存储单元字长为8位。若容量为4K×16,则表示存储器有4096(4×1024)个存储单元,每个存储单元字长为16位。微型计算机中的存储器几乎都以字节进行编址,即总认为一个字节是一个基本字长,所以常用存储器的字节数表示容量,例如,PC XT内存为256KB、386内存为4MB、486内存为8MB,即为256K字节、4M字节、8M字节。
2. 存取速度
存取速度是指CPU从存储器存入或取出数据所需要的时间,存取时间又称为访问时间或读/写时间。读出时间是指从CPU向存储器发出有效地址和读信号开始,直到将被选中单元的内容送上数据总线为止所用的时间; 写入时间是指从CPU向存储器发出有效地址和写信号开始,直到将CPU送上数据总线上的内容写入被选中单元为止所用的时间。显然,存入或取出数据所需要的时间越短,存取速度越快。
3. 可靠性
可靠性是指在规定的时间内,存储器无故障读/写的概率。通常用平均无故障时间(mean time between failures,MTBF)来衡量存储器的可靠性。MTBF表示两次故障之间的平均时间间隔,时间越长说明存储器的可靠性越高。
4. 功耗
功耗反映存储器件耗电的多少,同时也反映了存储器件发热的程度。功耗越小,存储器件的工作稳定性越好。
5. 性能价格比
性能价格比是一个综合性指标,性能主要指上述4个,价格包括存储器芯片和外围电路的成本。
对存储器的要求是容量大、速度快、可靠性高、功耗低、性能价格比高,但在一个存储器中要求上述几项性能均佳是难以办到的,而有些指标要求本身就是互相矛盾的。为解决这一矛盾,目前在计算机系统中,采用了分级结构。
5.1.3存储器的分级结构
目前采用较多的是三级存储器结构,即高速缓冲存储器(cache)、内存储器和辅助存储器。中央处理器CPU能直接访问的存储器有cache和内存。CPU不能直接访问辅存,辅存中的信息必须先调入内存才能由CPU进行处理。
高速缓存即cache,是一高速小容量的存储器,位于CPU和内存之间,其速度一般比内存快5~10倍。在微型计算机中,用cache临时存放CPU最近一直在使用的指令和数据,以提高信息的处理速度。cache通常采用与CPU速度相当的静态随机存储器(SRAM)芯片组成,和内存相比,它存取速度快,但价格高,故容量较小。
内存用来存放计算机运行期间的大量程序和数据,它和cache交换指令和数据,cache再和CPU打交道。目前,内存多由MOS动态随机存储器(DRAM)芯片组成。
辅存目前主要使用的是磁盘存储器、磁带存储器和光盘存储器。磁盘存储器包括软磁盘和硬磁盘两种类型。磁带存储器有磁带机和盒式录音机。光盘存储器有只读光盘、追忆型光盘和可改写型光盘等三种类型。现在PC上广泛使用的是只读光盘,即CDROM(compact discread only memory)光盘。辅存是计算机最常用的输入输出设备,通常用来存放系统程序、大型文件及数据库等。
上述三种类型的存储器构成三级存储管理,各级职能和要求各不相同。其中,cache主要为获取速度,使存取速度能和中央处理器的速度相匹配; 辅存追求大容量,以满足对计算机的容量要求; 内存则介于两者之间,要求其具有适当的容量,能容纳较多的核心软件和用户程序,还要满足系统对速度的要求。
图51存储器的层次结构
在最初的32位微型计算机中高速缓存cache在CPU片外; 而目前大多数CPU还将cache集成在片内,由于其时钟与CPU相同,进一步提高了信息的处理速度。形成速度较片外cache快、容量较片外cache小的一级cache。为更好地管理和改进各项指标,还在CPU内建立较多的通用寄存器组,形成速度更快、容量更小的一级; 还有将辅存再分为脱机辅存和联机辅存两级。存储器的层次结构如图51所示。
5.2常用的存储器芯片
5.2.1半导体存储器芯片的结构
半导体存储器芯片通常由存储矩阵、地址译码器、控制逻辑和三态数据缓冲寄存器组成,如图52所示。
图52存储器芯片的组成
存储矩阵也称作存储体,是大量存储元件的有机组合。存储元件则是由能存储一位二进制代码(1或0)的物理器件构成的。N个存储元件构成可并行存取,记忆N位代码的存储单元,犹如N个触发器构成一个N位数据寄存器一样。将存储矩阵中的全部存储单元赋予单元地址,由芯片内部的地址译码器实现按地址选择对应的存储单元。在CPU及其接口电路送来的芯片选择信号CS和读写控制信号R/的配合下,单方向打开三态缓冲器,将该存储单元中的N位代码进行读或写操作。在不进行读或写操作时,芯片选择信号CS无效,控制逻辑使三态缓冲器处于高阻状态,存储矩阵与数据线脱开。对半导体存储器芯片内部的结构无须详细了解,对外特性则要熟练掌握。容量为2n个存储单元的存储矩阵,须有n条地址线选通对应的存储单元,若每个存储单元有N位代码(字长为N),则有N条数据线,该存储体由2n×N个存储元件组成。
5.2.2只读存储器ROM
只读存储器(read only memory,ROM)的特点是信息一经写入,存储单元里的内容就不能改变,即使在断电后也不会丢失,但只能读出。ROM依写入情况可分为掩模ROM,可编程ROM(programmable ROM,PROM),紫外线擦除PROM(erasable PROM,EPROM)和电擦除PROM(electrically PROM,EEPROM)4类。掩模ROM的内容是由制造厂家在生产过程中按用户要求写入的,用户不可更改。PROM的内容由用户自行写入,写入后就不可更改了。只能编程一次的OTP(One Time PROM)是一种新型的PROM,它可用普通的EPROM编程器对其编程,它的引线分别与同容量的EPROM芯片的引线兼容。紫外线擦除PROM(即EPROM)的内容在使用前可由用户更改,在工作过程中只能读出不能再写入。而电擦除PROM(即EEPROM)既可像ROM那样长期保存信息,断电后也不丢失信息,又可像RAM那样可以随时进行读/写。类似于EPROM和EEPROM的闪速存储器(flash memory),是性价比和可靠性最高的一种存储器。目前在微型计算机的应用系统中用得最多的ROM为EPROM、EEPROM和闪速存储器。
1. EPROM
常用的EPROM芯片以一片2716为最基本容量,即2K×8,而2732、2764、27128和27256的存储容量则逐次成倍递增为4K×8,8K×8,16K×8和32K×8。它们的引线排列如图53所示。芯片内部的地址译码电路对其地址线进行译码,以便对其内部的存储单元进行选择,选中的存储单元的8个存储元件的二进制信息同时出入,所以它们都有8根数据线D7~D0。数据的读出由芯片允许信号CE和输出允许信号OE一起控制。当CE和OE有效(即CE、OE为低电平)时,则被选中的存储单元中的8位二进制信息送往数据线D7~D0。数据的写入(编程)需要20~25V的编程脉冲,由芯片的编程控制线PGM和编程电源线VPP一起控制。EPROM的擦除和写入(编程)需要将芯片从电路板上拔下来在专用的擦除器和编程器进行。在CPU运行期间即EPROM的读方式下,PGM和VPP都接VCC。
图532716等紫外线擦除只读存储器芯片的引线排列
2. EEPROM
EEPROM的使用简单方便,具有在线编程的独特功能,擦除和写入次数为一万次,信息保持时间为10年。芯片内部有电压提升电路,无论读出还是写入(擦除后再写入)都只需在单一的+5V电压下进行。数据在提升电压的作用下写入存储单元,如同使用SRAM一样,因而它的应用范围日渐扩大,成为ROM器件的佼佼者。常用的EEPROM芯片有2816(2K×8)、2817(2K×8)和2864(8K×8)。2816和2864的引线排列也与相同容量的SRAM 6116和6264兼容,2817和2864A的引线排列如图54所示。
CE、WE和OE分别为芯片允许信号、写允许信号和输出允许信号。当CE和WE为低电平且OE为高电平时,进行擦写操作; 当CE和OE为低电平且WE为高电平时,进行读操作。RDY/BUSY为2817和2864A的擦写状态信号线。当2817和2864A进行擦除和写入操作时,将RDY/BUSY置为高电平; 写入操作完成后,再将RDY/BUSY置为低电平。CPU可以通过检测RDY/BUSY的状态,来控制2817和2864A的擦写操作。
2816、2817和2864的主要性能指标基本相同: 读取时间250ns、写入时间10ns(2816为15ns)、字节擦除时间10ns(2816和15ns)、读操作电压5V、擦写操作电压5V、操作电流110mA。
图542817和2864A的引线排列
3. 闪速存储器
闪速存储器与一般EEPROM的不同之处在于,闪速存储器芯片为整体电擦除并需要为其提供12V编程电压。但它的擦除和编程速度高、集成度高、可靠性高、功耗低、价格低,其整体性能优于一般EEPROM。ATMEL公司生产,容量为32K×8、64K×8、128K×8和256K×8的芯片分别是AT29C256、AT29C512、AT29C010和AT29C020。AMD公司生产的芯片命名为AM28F×××。容量为256K×8芯片的引线排列如图55所示。这些闪速存储器芯片的引线都为32条,其差别在地址线的条数,如容量为32K×8芯片的A17~A15为NC(内部无连接)。
图55256K×8闪速存储器芯片的引线排列
ISBN | 9787302470519,7302470510 |
---|---|
出版社 | 清华大学出版社 |
作者 | 朱定华 |
尺寸 | 16 |