《微机原理与接口技术·第2版 Win汇编、接口及设备驱动/21世纪高等学校规划教材·计算机科学与技术》是一本将微型计算机原理、汇编语言程序设计和PC接口技术整合在一起的教材。考虑到CPU应用的普及性,教材以Intel微处理器为背景,围绕“基础”、“主线”和“关键技术”展开。本书主要介绍CPU、汇编程序设计、存储器及常用I/O接口,将其作为教材的基础;在此基础上,结合微处理器的发展历程,使学生了解微型计算机在不断克服瓶颈效应,扩大内存和提高速度方面,采用的技术和方法,如cache、虚拟存储、超标量设计、流水线作业及MMX技术,将微型计算机的技术发展作为贯穿教材的主线;将微型计算机的关键技术如混合编程技术、存储管理、中断、DMA、设备驱动程序设计等作为教材的重点,使学生掌握微型计算机关键技术的要点和应用方法。
本书可作为高等院校“微型计算机原理与接口技术”课程的通用教材,也可作为计算机专业学生的“汇编语言程序设计”和“微型计算机接口技术”这两门课程的教材。
在学习本书之前,学生应已学过计算机应用基础、数字电路与逻辑设计及一种高级语言程序设计等课程。可以说,已具备了一些关于计算机的基本知识。IBM副总裁Steve Mills 说过:“世界越来越仪表化,到处都在应用成本低廉的微处理机芯片技术,将智慧集合到各种事物里,并使它们更有效地发展。”所以,对于信息类学生,还需要对微处理机的工作原理和技术有更深入的理解,能够利用微处理机技术分析和解决实际问题。
本课程学习的是微处理机的组成逻辑要具体到寄存器的层次,编程序要面对寄存器编程,这就是汇编语言编程。在如此深入的层面上理解计算机的工作原理,不单纯是为了知识,而是很多应用建立在这个基础上,只有掌握了微处理机工作原理、汇编语言编程技术及接口技术才能充分利用计算机的潜力。
随着互联网技术的不断进步,网络已经由计算机设备之间的联网向万物互联方向发展。新微处理机芯片、新技术、新应用层出不穷,日新月异。因此,微机原理与接口技术课程的教学内容需要不断更新和充实,然而要使教材随时跟踪微处理机的迅猛发展是十分困难的。根据国家教委对微机原理课程教学基本要求中指出的,课程的任务是使学生从理论和实践上掌握微处理机的基本组成、工作原理、接口技术及应用,建立微处理机的整体概念,使学生具有应用微处理机进行软硬件开发的初步能力。
本着上述指导思想,本书主要介绍四大部分内容:
第一部分主要讲解汇编源程序设计。首先,本着“由浅入深、边学边练”的原则,在开始学习指令系统时,以debug32作为单指令的学习平台,以www.movsd.com提供的MASM32作为程序设计集成开发环境,以Microsoft Visual C++中的调试器作为汇编程序的调试器,通过这三个工具软件搭建汇编语言Windows下的上机环境,更为重要的是这三个工具软件在网上唾手可得。其次介绍了浮点CPU的指令系统以及编程方法。最后通过详细介绍在C/C++中如何调用汇编语言程序,以展示混合编程思想,优化软件。
第二部分主要讲解微处理机的存储器系统。首先综述了计算机内存芯片的种类、组织、特点以及各类存储芯片在现行微处理机内的应用场合。其次讲解了存储器系统的扩展技术。最后以PC为实例,讲解了8位、16位、32位一直到64位微处理机存储器系统。
第三部分主要讲解微处理机接口技术。通过讲解中断、DMA、计数器、并口、串口这5大接口芯片,掌握接口的共性技术,通过讲解键盘与显示、A/D、D/A,掌握微处理机常用接口技术。结合Windows接口程序设计既讲解了接口上层应用程序,又讲解了接口底层设备驱动程序。
本书在编写过程中力求做到例题、习题、实验有机地结合。也就是说,实验内容力求做到例题的延伸,习题的内容不仅是课本应掌握的知识点,也是课本知识的延伸。讲过和学过这门课的老师和学生都知道这门课“很难学”,这样做的主要目的就是减轻这门课的学习难度,尽量做到循序渐进。本书附有PPT课件以及书中实例,方便教师教学及读者学习,联系邮箱是lyguo@chd.edu.cn,期待与你们教学互长。
本书的第1章、第2章由徐琨编写,第3章、第4章由郭兰英编写,第5~7章由赵祥模编写,第8章、第9章由惠飞编写,第10章、第11章由马峻岩编写,徐琨参与了部分第3章、第4章的编写、马峻岩、惠飞参与了部分第5~7章的编写,整体框架以及内容的确定由郭兰英、赵祥模负责。
编者
2015年6月
第1章微型计算机系统概述
1.1微型计算机系统的组成
1.1.1微型计算机硬件
1.1.2微型计算机软件
1.1.3微型计算机的基本工作方法
1.1.4微机系统的启动和操作系统的装载
1.2IA32微处理器体系结构
1.2.1IA32处理器体系结构的基础
1.2.2IA32处理器程序设计模型
1.2.3IA32微处理器采用的主要技术
习题与思考题
第2章微处理器存储器管理技术
2.1实模式存储器寻址
2.1.1段地址和偏移地址
2.1.2默认段和偏移寄存器
2.1.3程序重定位问题的实现
2.2保护模式存储器寻址
2.2.1分段存储器管理
2.2.2分页存储器管理
习题与思考题
第3章汇编语言
3.1基本概念
3.1.1汇编语言的由来
3.1.2汇编程序
3.2数据表示
3.2.1十六进制数及Intel的存数惯例
3.2.2定点微处理器处理的数据类型
3.3源程序框架
3.3.1例题简介
3.3.2上机操作步骤
3.4寻址方式
3.4.1数据存储器寻址方式
3.4.2程序存储器寻址方式
3.4.3堆栈存储器寻址方式
3.5微处理器指令系统
3.5.1数据传送指令
3.5.2算术运算指令
3.5.3逻辑运算指令
3.5.4移位类指令
3.5.5串指令
3.5.6程序控制类指令
3.5.7标志位操作指令及处理器控制类指令
3.6汇编语言的基本元素
3.6.1符号
3.6.2常数
3.6.3表达式
3.7说明性语句
3.7.1内存变量定义语句
3.7.2调整偏移量定义语句
3.7.3符号定义语句
3.8宏
3.8.1宏的定义及调用
3.8.2宏与子程序的区别
3.8.3宏程序库
3.9算术协处理器
3.9.1算术协处理器的数据格式
3.9.2算术协处理器的内部结构
3.9.3协处理器基本指令集
3.9.4算术协处理器的编程
3.10使用资源
习题与思考题
第4章模块化程序设计
4.1模块间的交叉访问
4.2子程序库
4.3系统功能调用
4.3.1中断指令
4.3.2BIOS层功能模块的调用
4.3.3DOS层功能调用
4.3.4Windows层功能模块调用
4.4C++语言与汇编语言混合编程
4.4.1在C++程序中使用汇编语言
4.4.2在C/C++应用程序中调用汇编语言程序
习题与思考题
第5章微处理器的硬件特性
5.18088引脚功能
5.1.18088总线周期概念
5.1.28088的地址和数据线
5.1.38088的控制和状态线
5.1.4电源和时钟
5.2总线控制逻辑
5.2.1总线的缓冲与分离
5.2.2总线控制器
习题与思考题
第6章内存储器接口
6.1内存储器件
6.1.1内存储器概述
6.1.2存储器的分类
6.1.3存储器芯片的主要技术指标
6.1.4随机存取存储器的存储元及外部特性
6.1.5只读存储器的存储元及外部特性
6.2地址译码
6.2.1地址译码方式
6.2.2常用的译码器件
6.3存储器扩展技术
6.3.1存储容量的位扩展
6.3.2存储容量的字扩展
6.3.3内存储容量的字位扩展
6.416位、32位及64位机存储器系统
6.4.116位机的存储系统
6.4.232位机的存储系统
6.4.364位机的存储系统
习题与思考题
第7章总线技术
7.1PC系统总线
7.1.1ISA总线
7.1.2EISA系统总线
7.1.3VESA和PCI局部总线
7.2PC外总线
7.2.1USB通用串行总线
7.2.2RS232C总线
习题与思考题
第8章基本的I/O接口
8.1接口技术
8.1.1接口技术的基本概念
8.1.2输入/输出传送方式
8.2中断系统
8.2.1中断的基本原理
8.2.2中断控制器8259A
8.2.332位机的中断系统
8.3DMA系统
8.3.1DMA的基本原理
8.3.2DMA控制器8237A
8.4计数/定时器
8.4.1定时技术
8.4.2计数/定时器8254
8.5并行接口
8.5.1并行接口概念
8.5.2并行接口8255
8.6串行接口
8.6.1串行通信的基本概念
8.6.2串行接口8251
8.7微机接口芯片组介绍
8.7.1386系统支持的系统外围芯片组82360SL
8.7.2486系统支持的系统外围芯片组82357ISP
8.7.3Pentium系统支持的系统外围芯片组
习题与思考题
第9章键盘与显示接口
9.1键盘接口
9.1.1键盘与键盘接口原理
9.1.2按键识别方法
9.2LED显示接口
9.2.1LED显示器及显示原理
9.2.2LED显示器接口
9.3LCD显示接口
9.3.1LCD显示器工作原理
9.3.2LCD显示器接口
习题与思考题
第10章D/A、A/D转换接口
10.1D/A转换
10.1.1D/A转换器的性能参数
10.1.2D/A芯片介绍
10.2A/D转换
10.2.1A/D转换器的主要性能参数
10.2.2A/D转换的辅助电路
10.2.3A/D芯片介绍
习题与思考题
第11章基于PCI总线的微机接口系统设计
11.1微机接口系统概述
11.2基于PCI总线的微机接口设计
11.2.1PCI总线接口概述
11.2.2PCI总线接口设计
11.3Windows驱动程序设计
11.3.1驱动程序概述
11.3.2Windows I/O系统
11.3.3WDM驱动设计
11.3.4驱动设计实例
11.4Windows接口应用程序设计
11.4.1打开设备
11.4.2控制设备
11.4.3响应中断
11.4.4实例分析
习题与思考题
附录AASCII编码表
附录BDEBUG的使用说明
附录C常用的BIOS层功能模块
附录D常用的DOS层功能模块
附录E8155命令字及状态字简介
附录FPCI 9052 EEPROM配置说明
参考文献