《微型计算机原理及应用教程(第2版)》,本书主要介绍微型计算机组成的基础知识、微型计算机的原理及结构特点、8088/8086MPU的指令系统、汇编语言程序设计、存储器、输入输出系统、中断以及微机接口技术与应用。
第1章
绪论
1.1 微型计算机概述
1.1.1 微型计算机的发展
1.1.2 微型计算机的特点
1.1.3 微型计算机的新技术
1.1.4 微型计算机的应用
1.2 微型计算机系统的组成
1.2.1 硬件系统
1.2.2 软件系统
1.2.3 主要性能指标
1.3 机器数的概念
1.3.1 二进制数
1.3.2 十进制数
1.3.3 不同数制之间的转换
1.3.4 有符号数在计算机中的表示方法
习 题
第2章
微型计算机原理及结构特点
2.1 微型计算机的组成原理
2.1.1 主存储器
2.1.2 中央处理器
2.1.3 微型计算机的工作过程
2.1.4 微型计算机的工作过程举例
2.2 8086 MPU的结构特点
2.2.1 流水线结构
2.2.2 编程结构
2.2.3 存储分段结构-存储器的管理
2.2.4 总线周期
2.2.5 8086引脚功能及其工作模式
2.2.6 外部设备
习 题
第3章
8086/8088 MPU的指令系统
3.1 指令与指令系统
3.1.1 指令的组成
3.1.2 指令的分类
3.1.3 指令系统
3.2 寻 址 方 式
3.2.1 立即数寻址方式
3.2.2 寄存器寻址方式
3.3.3 RAM寻址方式
3.3 8086指令系统
3.3.1 数据传送指令
3.3.2 地址传送指令
3.3.3 标志寄存器传送指令
3.3.4 算术运算指令
3.3.5 逻辑运算指令
3.3.6 移位指令
3.3.7 控制转移指令
3.3.8 字符串操作指令
3.3.9 处理器控制指令
3.4 中断及中断返回
习 题
第4章
汇编语言
4.1 汇编语言程序
4.1.1 汇编语言的基本概念
4.1.2 汇编语言源程序的格式
4.2 汇编语言的语句
4.2.1 指令语句
4.2.2 伪指令语句
4.2.3 宏指令语句
4.3 汇编语言程序的上机过程及调试
4.3.1 编辑源程序
4.3.2 汇编源程序
4.3.3 连接程序
4.3.4 运行程序
4.4 汇编语言程序设计
4.4.1 程序设计的基本方法
4.4.2 顺序结构程序设计
4.4.3 分支结构程序设计
4.4.4 循环结构程序设计
4.4.5 子程序的调用
4.4.6 DOS功能调用与输入/输出
4.5 汇编编程举例
习 题
第5章
存储器
5.1 半导体存储器
5.1.1 概述
5.1.2 半导体存储器的分类
5.1.3 半导体存储器的主要技术指标
5.2 随机存储器
5.2.1 RAM芯片的内部结构
5.2.2 RAM存储元件
5.2.3 RAM操作的时序
5.2.4 集成RAM芯片介绍
5.3 只读存储器
5.3.1 ROM芯片的内部结构
5.3.2 集成ROM芯片介绍
5.4 存储器的设计方法
5.4.1 存储器芯片的选择
5.4.2 存储器容量的扩展
5.4.3 存储器与CPU的连接
5.4.4 存储器地址空间的分配方法
5.4.5 存储器设计举例
习 题
第6章
输入/输出系统
6.1 输入/输出系统概述
6.1.1 外部设备的分类和特征
6.1.2 I/O接口的构成及功能
6.2 I/O端口编址
6.2.1 I/O端口的编址方式
6.2.2 I/O端口地址分配
6.2.3 I/O端口地址译码
6.3 I/O端口数据传送的控制方式
6.3.1 程序传送控制方式
6.3.2 中断传送控制方式
6.3.3 DMA控制方式
习 题
第7章
中断与DMA技术
7.1 中 断 原 理
7.1.1 中断的定义与作用
7.1.2 中断源
7.1.3 中断优先权与中断嵌套
7.1.4 中断过程
7.2 8086/8088 CPU中断系统
7.2.1 8086/8088的中断类型
7.2.2 8086/8088的中断向量及中断向量表
7.2.3 DOS 下中断服务程序的编写
7.3 可编程中断控制器8259A
7.3.1 8259A的引脚及内部结构
7.3.2 8259A的工作方式
7.3.3 8259A的级联
7.3.4 8259A的命令字
7.4 8259A的应用举例
7.5 DMA控制器
7.5.1 DMA系统概述
7.5.2 8237内部结构及引脚
7.5.3 DMA控制器在系统中的使用
7.5.4 DMA控制器8237A的初始化编程
7.5.5 DMA控制器的应用举例
习 题
第8章
Proteus仿真平台的使用
8.1 初识Proteus
8.1.1 进入Proteus ISIS
8.1.2 工作界面
8.1.3 Proteus ISIS中的主要操作
8.1.4 Proteus ISIS电路原理图输入
8.2 在Proteus中创建新的元件
8.3 Proteus电路仿真
8.3.1 Proteus ISIS交互式仿真
8.3.2 Proteus ISIS基于图表的仿真
8.4 Proteus ISIS 下8086的仿真
8.4.1 编辑电路原理图
8.4.2 设置外部代码编译器
8.4.3 添加源代码并选择编译器
习 题
第9章 微型计算机接口技术与应用
9.1 接 口 概 述
9.1.1 接口及相关概念
9.1.2 接口的I/O端口与系统的连接
9.2 并行I/O接口
9.2.1 并行接口的功能与特点
9.2.2 并行接口的分类
9.2.3 非编程并行接口
9.2.4 可编程并行接口芯片8255A概述
9.2.5 8255A的初始化编程
9.2.6 8255A的工作方式
9.2.7 8255A的应用举例
9.3 串行通信接口
9.3.1 串行通信概述
9.3.2 串行传送总线接口
9.3.3 可编程串行接口芯片8251A
9.3.4 8251A的编程
9.3.5 8251A的应用举例
9.4 计数与定时技术
9.4.1 计数与定时概述
9.4.2 定时/计数器8253
9.4.3 8253的初始化及编程
9.4.4 工作方式及特点
9.4.5 8253的应用举例
习 题
第10章
Proteus仿真实例
10.1 基本I/O应用
10.1.1 实验要求
10.1.2 实验目的
10.1.3 实验电路
10.1.4 代码设计
10.2 8255并行I/O扩展实验
10.2.1 实验要求
10.2.2 实验目的
10.2.3 实验电路
10.2.4 代码设计
10.3 可编程定时/计数器8253实验
10.3.1 实验要求
10.3.2 实验目的
10.3.3 实验电路
10.3.4 代码设计
10.4 可编程串行通信控制器8251A 实验
10.4.1 实验要求
10.4.2 实验目的
10.4.3 实验电路
10.4.4 代码设计
10.5 D/A数模转换实验
10.5.1 实验要求
10.5.2 实验目的
10.5.3 实验电路
10.5.4 代码设计
10.6 A/D模数转换实验
10.6.1 实验要求
10.6.2 实验目的
10.6.3 实验电路
10.6.4 代码设计
附录A 8086/8088汇编语言指令表
附录B ASCII码字符与编码对照表及各种控制字符
附录C DOS功能调用
参考文献
《微型计算机原理及应用教程(第2版)》:
①操作码(OPCode)字段。操作码告诉机器本条指令的操作类型,即将完成什么操作,是加法操作还是减法操作,是转移操作还是停机操作,所以一条指令的操作码字段必须有。按其操作的性质,可将指令分成不同的类型,即传送指令、算术运算指令、逻辑运算指令、控制指令和外部设备指令。
②操作数/地址字段(OPD/ADDR)。该字段指明参加本次操作的操作数的地址,这部分是可选项,有的指令无此项,如停机指令HLT,只有操作码字段,无操作数字段;有的指令有2个或3个操作数/地址。
(2)指令译码器(ID)。指令译码器就是分析指令的地方。一条指令可完成一种操作,要让机器知道就必须通过指令译码器对操作码字段进行译码分析。例如,指令ADD,操作码经指令译码器后方知下面要进行加法运算,然后将存放两个加数的寄存器相应门打开,让操作数送往ALU进行加法运算,并把结果送入ACC。
(3)微操作控制线路。经过对指令分析后,根据分析结果发出相应的控制命令,完成指令的执行,微操作控制线路就是完成此任务的。
完成一种操作不是马上就能完成的。例如,下一道植树命令,具体完成植树操作工作还要有若干步骤:第1步领取工具,第2步挖坑,第3步领树苗,第4步栽树,第5步浇水,第6步完成。我们把这些步骤称为微操作,计算机完成一条指令操作也需要由许多微操作完成,微操作控制线路就是会发出各种各样的微操作命令的地方,这些微操作命令是在时序发生器发出各种控制信号下产生的,如节拍信号(电位表示)、脉冲信号。利用这些信号去打开相关的控制门,推动操作数的流动等。
(4)时序发生器。时序是按时间顺序发出的各种控制信号,时序是由时序发生器产生的。
指令周期是完成一条指令执行的时间,是取指令和执行指令两个时间之和。在指令系统中有各种各样的指令,指令执行时间不尽相同,所以指令周期也不相同。指令周期决定着计算机的运算速度。指令周期越短,计算机的运算速度就越快。
机器周期是完成一个基本操作所需要的时间。例如,访问存储器时,从送被访问存储单元地址开始到取出数据或写入数据为止,这段时间称为机器周期,取出指令称为取指周期,取操作数称为存储器读周期,写入数据称为存储器写周期。又如,访问I/O接口有数据输入周期、数据输出周期等,这些都是基本周期,即机器周期。
一个指令周期含一到多个机器周期。例如,在加法中有两个机器周期(设一个操作数在存储器中),一个机器周期用来取指令,另一个机器周期完成加法;又如停机指令,只需要1个取指周期,没有具体执行。
……