
本书以得到最广泛应用的IA(intel Architecture)-32结构微处理器家族产品(即80x86/pentium系列)和PC系列微计算机为背景,系统地阐述了微处理器的基本工作原理、体系结构、指令系统、汇编语言程序设计以及主存储器、输入/输出接口芯片围绕CPU组建微计算机/微处理器系统的基本组成原理、应用技术和方法。全书共含8章。内容覆盖了IA-32结构微处理器家族。重点从8086/8088入手,以对比、类推的方式,从性能提升和指令扩展角度出发,将家族的后续产品尽致展现。本书系统性强,深入浅出,既有基本原理的阐述,又配有相应的应用实例。书中的程序都经上机通过,硬件连接实例都取于成功的系统。每章还附有习题,便于练习和掌握。本书可作为高等院校、高等教育自学考试、职业教育和远程教育的工科电子类非计算机专业的本科教材,同时也可供从事微处理器和微机应用的研究生及科技人员学习和参考。
前言 本书系根据国家教育部关于“加强工科非计算机专业计算机基础教学工作的几点意见”和普通高校计算机基础教学的基本要求,应电子工业出版社及其高等学校电子信息类教材编委会的邀约而编写的,可作为高等院校非计算机专业计算机基础教学的《微计算机原理》的本科生教材。 我们在1994年编著的、由电子工业出版社出版的《微计算机原理》是经〈八·五〉电子工业工科电子类专业〈无线电技术与信息系统〉编委会〈仪器与测量〉编审组以投标征稿方式而荣获中标入选推荐出版的高等学校工科电子类的规划教材,到现在已经过去9年了,共经16次重印,受到各高校,各位老师、同学们和许多科技工作者的厚爱,使我们感到欣慰,深受感动。我们决心与时俱进,再将我们多年耕耘所获心得和从事微处理器/微机应用的科研、产品开发与工程应用取得的实际工作经验编撰成这本新编的《微计算机原理》,与大家共享。 近10多年来,微处理器与微计算机技术突飞猛进的发展,其应用已渗透到各行各业的各个领域,深入到科学计算、信息处理、过程控制、仪器仪表、事务管理、计算机辅助设计、制造、家用电器、网络通信服务等方面,极大地改变着人们的工作和生活方式,已成为社会前进的巨大推动力。因此,学习微处理器和微计算机已成为现代科技人员和高等院校各专业学生不可缺少的课程。 Intel公司生产的CPU,从8086,8088,80186,80286,80386,80486以及pentium(曾被称为80586)及pentiumpro,pentiumⅡ,pentiumⅢ直至最新的pentium 4,这些产品形成了一个系列,即80x86系列。Intel公司把它们称为IA(Intel Architecture)32结构家族。在这个家族里,后代产品在结构上完全覆盖前代产品,即向下兼容;而指令系统则向上兼容,即在前代产品上开发的程序可以在后代产品上运行。例如,在8086上开发的程序也完全可在pentium 4上运行。Intel公司不仅提供了CPU,还提供有许多专门功能的接口芯片,如并行I/O接口8225A、串行通信接口8250、定时器/计数器8253/8254、中断控制器8259A、DMA控制器8237等,用起来十分方便,从而在各种专业的产品中得到了普遍应用,使Intel在市场竞争中成了大赢家。Intel还促进世界著名的计算机硬、软件厂商,如IBM,Microsoft等公司与之携手,推出像PC个人微机,笔记本电脑,工控微机,单板机等机种,适合各种应用的选型。我们还注意到,随着半导体集成工艺的发展,伴随IA32结构CPU后继产品的不断升级的同时,Intel公司又把那些具有专门功能的接口芯片、控制逻辑及高速缓存(cache)等集成起来,做成了与CPU性能配套的芯片组(chipset)。例如,pentium微计算机主板上的南桥和北桥芯片组。 本次新编的《微计算机原理》是以IA32结构的CPU为背景材料。编写时保持了原书的组织结构,名称照旧;保留了以8086/8088 CPU及其指令系统、配套支持芯片为起点内容,使老用户使用起来感到亲切,不必另起炉灶;增添了IA32结构后续的高档产品,引入了与时俱进的新内容,使新、老用户决不落伍;删去了较为浅显、累赘的内容,大有面貌一新的感觉。编入本书的新内容是以对比和类推的方式,从性能提升和指令的扩展角度进行介绍的,便于学习与理解。全书共分8章,编写时尽力做到: 原理和应用相结合; 硬件和软件相结合; 典型品种与家族产品相结合; 难点分散和系统性保持相结合; 讲授引导与自学练习相结合。 书中的程序都是经上机通过的,具有启发性。书中的硬件连接实例都取于成功的系统,读者可据此参考,设计出满足自己要求的微机应用系统。每章后面均附有与内容紧密结合的思考题和习题。还编有《微计算机原理解题指南》与之配套。 本教材参考学时为60学时左右,可根据实际情况进行伸缩。章节安排尽量做到各章既独立又衔接。书中的2,3,4章为第1个重点,在阐述CPU体系结构和指令系统基础上,达到能进行汇编语言程序设计的要求;5,6,7,8章为第2个重点,在了解内存储器芯片和各种接口芯片内部工作原理、性能,并在重点掌握其外部引脚特性基础上,能够选用,并将之与CPU进行连接,达到能自行设计所需要的硬件系统或在微机上进行二次开发、扩展的目的;第1章是入门的基本知识的介绍,并提供了两个具有时代代表性和应用典型性的机型范例——IBM PC/XT和奔4(P4)微机,使学习者一经接触本书,就十分明确自己学它的目的。 我们在接受任务与编写过程中,得到电子科技大学校长助理蓝家隆教授,教材科胡浩科长的鼓励与帮助;得到电子工业出版社高等学校电子信息类教材编委会的亲切指导;得到电子科技大学自动化系陈光〖FK(W1。1〗〖TP<Y.TIF>;S*9,BP〗〖FK)〗教授,四川大学计算机学院杨家沅教授,西南交通大学计算机与通信学院诸昌钤教授及成都信息工程学院电子技术系吴素君副教授的关心,提出了许多宝贵意见,在此一并致以诚挚的谢意。 本书由潘名莲主编。其中第1,3,4章由潘名莲编著;第6,7,8章由马争编著;第2,5章由丁庆生编著;附录由潘名莲整理。由于我们水平有限,书中难免还存在一些缺点和错误,恳请广大读者批评指出。 编著者 于电子科技大学 2003.7
第1章 概述 1.1 计算机的基本结构和工作原理 1.1.1 计算机的基本结构 1.1.2 计算机的工作原理 1.2 微处理器、微计算机、微处理器系统 1.2.1 微处理器(Microprocessor) 1.2.2 微计算机(Microcomputer) 1.2.3 微处理器系统(Microprocessing System) 1.3 微处理器的产生和发展 1.4 IA32结构微处理器 1.5 微计算机系统的组成 1.5.1 硬件系统 1.5.2 软件系统 1.5.3 微计算机系统结构的特殊性 1.6 典型微处理器系统结构及工作原理 1.6.1 系统连接 1.6.2 典型微处理器的内部结构 1.6.3 典型存储器的内部结构 1.6.4 简单程序的编制和执行过程 1.7 IA32结构的数据类型 1.7.1 常用的名词术语 1.7.2 数的表示法 1.7.3 字符的表示法 1.7.4 基本数据类型 1.8 微计算机实例 1.8.1 IBM PC/XT微计算机 1.8.2 奔腾4(P4)微计算机系统 1.9 用汇编语言程序开通自行设计的微处理器系统习题第2章 IA32结构微处理器及其体系结构 2.1 微处理器的主要性能指标 2.1.1 字长 2.1.2 指令数 2.1.3 运算速度 2.1.4 访存空间 2.1.5 高速缓存大小 2.1.6 虚拟存储空间 2.1.7 是否能构成多处理器系统 2.1.8 工艺形式及其他 2.2 8086/8088微处理器 2.2.1 8086的内部结构 2.2.2 8086的寄存器结构 2.2.3 8086的引脚特性 2.2.4 8088与8086的比较 2.2.5 8086的时钟和总线周期概念 2.2.6 8086/8088的工作方式 2.2.7 8086/8088的总线操作时序 2.2.8 存储器组织 2.2.9 I/O端口组织 2.3 80186/80188微处理器 2.4 80286微处理器 2.4.1 80286的主要性能 2.4.2 80286的内部结构 2.4.3 80286的寄存器结构 2.4.4 80286的地址方式 2.4.5 80286的系统结构 2.5 80386微处理器 2.5.1 80386的主要性能 2.5.2 80386的内部结构 2.5.3 80386的寄存器结构 2.5.4 80386的数据处理 2.5.5 80386的工作方式 2.6 80486微处理器 2.7 Pentium和Pentium Pro微处理器 2.7.1 Pentium微处理器 2.7.2 Pentium Pro微处理器 2.8 PentiumⅡ,PentiumⅢ及Pentium4微处理器 2.8.1 PentiumⅡ微处理器 2.8.2 Pentium Ⅲ微处理器 2.8.3 Pentium 4微处理器习题第3章 80x86指令系统 3.1 指令的基本格式 3.2 寻址方式 3.3 指令执行时间 3.4 8086/8088指令系统 3.4.1 数据传送(Data Transfer)类指令 3.4.2 算术运算(Arithmatic)类指令 3.4.3 逻辑运算与移位(Logic and shift)类指令 3.4.4 串操作(String Manipulation)类指令 3.4.5 控制转移(Control Jump)类指令 3.4.6 处理器控制(Processor Control)类指令 3.5 中断类指令及PC DOS系统功能调用 3.5.1 中断及中断返回指令 3.5.2 8086的专用中断 3.5.3 PC DOS的系统功能调用与基本I/O子程序调用 3.5.4 BIOS中断调用 3.5.5 返回DOS的方法及使用的中断调用 3.6 80286扩充的指令 3.6.1 对8086/8088某些指令功能的扩充 3.6.2 通用扩充指令 3.6.3 保护模式下的新增指令 3.7 80386扩充的指令 3.7.1 对80286工作范围扩大的指令 3.7.2 实地址模式下的扩充指令 3.7.3 保护模式下的特权指令 3.8 80486扩充的指令 3.8.1 新增指令 3.8.2 管理Cache的有关指令 3.9 pentium CPU扩充的指令习题第4章 汇编语言程序设计 4.1 汇编语言和汇编程序 4.1.1 汇编语言(Assembly Language) 4.1.2 汇编程序(Assembler) 4.2 MASM宏汇编语言程序的规范 4.2.1 一个简单的汇编语言程序 4.2.2 分段结构 4.2.3 语句的构成与规范 4.3 伪指令及其应用 4.3.1 数据定义及存储器分配伪指令 4.3.2 符号定义伪指令EQU和= 4.3.3 标号定义伪指令LABEL 4.3.4 段定义伪指令SEGMENT/ENDS 4.3.5 段寻址伪指令ASSUME 4.3.6 过程定义伪指令PROC/ENDP 4.3.7 程序计数器GA1E7和定位伪指令ORG 4.4 结构与记录 4.4.1 结构 4.4.2 记录 4.5 宏指令及其应用 4.5.1 宏指令的定义 4.5.2 宏指令的使用——宏调用 4.5.3 宏指令应用举例 4.5.4 取消宏指令的伪指令PURGE 4.5.5 定义局部标号伪指令LOCAL 4.6 指定处理器及段模式选择伪指令 4.6.1 指定处理器伪指令 4.6.2 段模式选择伪指令 4.7 程序的基本设计方法 4.7.1 汇编语言程序的设计步骤 4.7.2 模块化程序设计 4.8 程序的基本结构及基本程序设计 4.8.1 程序的基本结构 4.8.2 顺序结构与简单程序设计 4.8.3 条件结构与分支程序设计 4.8.4 循环结构与循环程序设计 4.8.5 子程序结构与子程序设计 4.9 实用程序设计实例 4.9.1 代码转换程序 4.9.2 BCD数运算程序 4.9.3 用逻辑尺控制对数组的处理 4.9.4 表处理程序〖 4.9.5 声音和动画程序 4.9.6 32位微处理器程序习题第5章 主存储器 5.1 半导体存储器的分类及特点 5.1.1 半导体存储器的分类 5.1.2 半导体存储器的性能指标 5.1.3 半导体存储器的特点 5.2 随机存取存储器RAM 5.2.1 静态存储器SRAM 5.2.2 动态存储器DRAM 5.3 只读存储器ROM 5.3.1 固定掩膜编程ROM 5.3.2 可编程PROM 5.3.3 可擦除可编程EPROM 5.4 新型存储器 5.4.1 快擦写Flash存储器 5.4.2 多端口读写存储器 5.4.3 内存条 5.5 主存储器系统设计 5.5.1 存储器芯片的选择 5.5.2 计算机系统中存储器的地址分配 5.5.3 存储器芯片与CPU的连接 5.5.4 存储器的寻址方法 5.5.5 线选法的应用 5.5.6 部分译码法的应用 5.5.7 芯片片选中全译码法的应用 5.5.8 38译码器芯片74LS138在存储器芯片组织中的应用 5.5.9 小结习题第6章 输入/输出技术 6.1 微机和外设间的输入/输出接口 6.1.1 为什么需要接口电路 6.1.2 接口电路中的信息 6.1.3 接口电路的组成 6.1.4 I/O端口的编址方式 6.1.5 80x86系列微机I/O端口地址分配与地址译码 6.2 输入/输出的控制方式 6.2.1 程序控制方式 6.2.2 中断控制方式 6.2.3 直接存储器存取(DMA)控制方式 6.3 DMA控制器8237A及应用 6.3.1 8237A的内部结构及与外部的连接) 6.3.2 8237A的引脚特性〖 6.3.3 8237A的内部寄存器 6.3.4 8237A的初始化编程 6.3.5 8237A应用举例 6.4 微计算机功能扩展及总线标准 6.4.1 微计算机功能扩展 6.4.2 总线标准 6.4.3 ISA总线 6.4.4 PCI局部总线 6.4.5 USB总线习题第7章 微计算机的中断系统 7.1 中断控制方式的优点 7.2 8086/8088的中断机构 7.2.1 中断源 7.2.2 中断过程 7.2.3 中断向量表的设置方法 7.3 外部中断 7.3.1 NMI中断 7.3.2 INTR中断 7.4 中断的优先权管理 7.4.1 软件查询方式 7.4.2 菊花链法 7.4.3 专用芯片管理方式 7.5 可编程中断控制器8259A 7.5.1 8259A的引脚特性 7.5.2 8259A的内部结构及工作原理 7.5.3 8259A的工作方式 7.5.4 8259A的级联 7.5.5 8259A的初始化命令字和操作命令字 7.5.6 8259A应用举例 7.6 IBM PC/XT微计算机的中断系统 7.7 386/486微计算机的中断系统 7.7.1 80386/80486 CPU的中断机构 7.7.2 386/486微机的硬中断控制系统习题第8章 可编程通用接口芯片 8.1 可编程接口芯片 8.1.1 可编程接口的组成及功能 8.1.2 可编程接口芯片的分类 8.2 并行I/O接口8255A 8.2.1 8255A的基本性能 8.2.2 8255A的内部结构 8.2.3 8255A的引脚特性及其与外部的连接 8.2.4 8255A的控制字 8.2.5 8255A的工作方式 8.2.6 8255A用于A/D和D/A接口 8.2.7 8255A应用举例 8.3 串行通信接口 8.3.1 串行接口及串行通信协议 8.3.2 串行通信的物理标准 8.3.3 可编程串行异步通信接口8250 8.3.4 8250的初始化编程 8.3.5 8250应用举例 8.4 可编程定时器/计数器8253/8254 8.4.1 8253的基本功能及用途 8.4.2 8253的内部结构及工作原理 8.4.3 8253的引脚特性及其与外部的连接 8.4.4 8253的控制字 8.4.5 8253的工作方式 8.4.6 8253初始化编程 8.4.7 8253应用举例 8.4.8 8254与8253的比较习题附录一 8086/8088指令系统一览表附录二 MASM 伪指令一览表附录三 中断向量地址一览表附录四 DOS功能调用(INT 21H)附录五 BIOS中断调用附录六 IBM PC ASCII 码字符表附录七 MASM 宏汇编程序出错信息附录八 调试程序DEBUG的主要命令参考资料