第1章 微型计算机的基础知识 1
1.1 计算机中的数和编码 1
1.1.1 计算机中的数制 1
1.1.2 符号数的表示法 2
1.1.3 二进制数的算术运算 4
1.1.4 二进制数的逻辑运算与逻辑电路 6
1.1.5 二进制编码 8
1.1.6 BCD数的运算 9
1.2 逻辑单元与逻辑部件 10
1.2.1 触发器 10
1.2.3 移位寄存器 12
1.2.2 寄存器 12
1.2.4 计数器 13
1.2.5 三态输出门 14
1.2.6 译码器 15
1.3 微型计算机的结构和工作原理 15
1.3.1 微型计算机常用的术语 15
1.3.2 微型计算机的基本结构 16
1.3.3 微型计算机的工作原理 18
1.4 8086/8088微处理器 19
1.4.1 8086/8088的结构 19
1.4.2 8086/8088的寄存器 20
1.5.2 存储器分段和物理地址的生成 23
1.5.1 存储器结构 23
1.5 8086/8088的存储器结构与堆栈 23
1.5.3 堆栈和栈操作指令 24
1.6 80x86系列微处理器 26
1.6.1 80286 26
1.6.2 80386 27
1.6.3 80486 29
1.6.4 Pentium(奔腾)和Pentium Pro(高能奔腾处理器) 29
习题与思考题 30
第2章 汇编语言与汇编程序 32
2.1 符号指令的寻址方式 32
2.1.1 寄存器寻址 32
2.1.4 间接寻址 33
2.1.2 立即寻址 33
2.1.3 直接寻址 33
2.1.5 基址寻址 34
2.1.6 变址寻址 34
2.1.7 基址变址寻址 34
2.1.8 存储器寻址中段地址的确定 34
2.2 常用指令 35
2.2.1 数据传送类指令 35
2.2.2 算术运算指令 37
2.2.3 位操作指令 39
2.2.4 指令应用举例 41
2.3.1 常量和有属性的符号 42
2.3 伪指令与算符 42
2.3.3 段的指定 45
2.3.2 变量和标号类型的变更 45
2.3.4 段寄存器的假定 46
2.3.5 源程序的结束 46
2.4 常用系统功能调用和BIOS 46
2.4.1 宏汇编语言与系统的两个接口 46
2.4.2 系统功能调用 47
2.4.3 BIOS 49
习题与思考题 52
3.1 顺序程序设计 55
3.1.1 乘除法指令 55
第3章 程序设计的基本技术 55
3.1.2 BCD数调整指令 57
3.1.3 顺序程序设计举例 60
3.2 分支程序设计 63
3.2.1 条件转移指令 64
3.2.2 无条件转移指令 65
3.2.3 分支程序设计举例 65
3.3 循环程序设计 68
3.3.1 循环程序的基本结构 69
3.3.2 重复控制指令 71
3.3.3 单重循环程序设计举例 71
3.3.4 多重循环程序设计举例 79
3.4.1 方向标志置位和清除指令 85
3.4 串处理程序设计 85
3.4.2 串操作指令 86
3.4.3 重复前缀 87
3.4.4 串操作程序设计举例 87
3.5 子程序设计 92
3.5.1 子程序的概念 92
3.5.2 子程序的调用指令与返回指令 94
3.5.3 子程序及其调用程序设计举例 96
3.6 宏功能程序设计 107
3.6.1 宏指令 107
3.6.2 条件汇编与宏库的使用 110
3.6.3 宏功能程序设计举例 111
习题与思考题 114
第4章 8088的总线与时序 117
4.1 8088的引线功能 117
4.1.1 地址和数据线 117
4.1.2 控制和状态线 117
4.1.3 电源和定时线 119
4.2 8088的CPU系统 120
4.2.1 地址锁存器 120
4.2.2 双向总线驱动器 120
4.2.3 时钟发生器8284A 120
4.2.4 总线控制器8288 122
4.2.5 最小组态下的8088CPU系统 123
4.2.6 最大组态下的8088CPU系统 124
4.3 8088的时序 124
4.3.1 指令周期、总线周期和T状态 124
4.3.2 最小组态下的8088时序 125
4.3.3 最大组态下的8088时序 128
习题与思考题 131
第5章 半导体存储器 132
5.1 存储器概述 132
5.1.1 存储器的类型 132
5.1.2 存储器的性能指标与分级结构 132
5.2.1 半导体存储器的结构 133
5.2 半导体存储器 133
5.2.2 随机读写存储器RAM 134
5.2.3 只读存储器ROM 134
5.3 存储器与CPU的接口 135
5.3.1 CPU总线的负载能力 136
5.3.2 存储器容量的选择和CPU与存储器的连接 136
5.3.3 存储器与CPU连接时的速度匹配问题 139
习题与思考题 141
第6章 输入输出和接口技术 142
6.1 接口的基本概念 142
6.1.1 接口的功能 142
6.1.2 接口控制原理 143
6.2.1 标准的I/O寻址方式 145
6.1.3 接口控制信号 145
6.2 I/O指令和I/O地址译码 145
6.2.2 存储器映像I/O寻址方式 146
6.2.3 输入输出指令 146
6.2.4 I/O接口的端口地址译码 146
6.3 80x86PC机的系统总线 149
6.3.1 系统总线概述 149
6.3.2 ISA(Industry Standard Architecture)总线 149
6.3.3 输入输出接口卡 151
6.4 数字通道接口 151
6.4.3 三态缓冲寄存器 152
6.4.2 数据输入三态缓冲器 152
6.4.1 数据输出寄存器 152
6.4.4 寄存器和缓冲器接口的应用 153
6.5 模拟通道接口 159
6.5.1 数模转换器DAC及其与微型计算机的接口 160
6.5.2 模数转换器ADC及其与微型计算机的接口 162
习题与思考题 164
第7章 中断技术 166
7.1 中断和中断系统 166
7.1.1 中断的概念 166
7.1.2 中断源 166
7.2 中断的处理过程 167
7.2.1 CPU对中断的控制 167
7.1.3 中断系统的功能 167
7.2.2 CPU对中断的响应及中断过程 168
7.2.3 中断源及其优先权的识别 169
7.3 中断控制器8259A 171
7.3.1 8259A的组成和接口信号 171
7.3.2 8259A处理中断的过程 172
7.3.3 8259A的级联连接 173
7.3.4 8259A的命令字 173
7.4 80x86PC机的中断系统和中断指令 174
7.4.1 外部中断 174
7.4.2 内部中断 175
7.4.4 中断响应和处理过程 176
7.4.3 中断向量表 176
7.5 可屏蔽中断服务程序的设计 177
7.5.1 中断服务程序入口地址的装入 177
7.5.2 中断屏蔽与中断结束的处理 178
7.5.3 中断服务程序设计举例 178
习题与思考题 184
第8章 常用可编程接口芯片 186
8.1 可编程并行接口8255 186
8.1.1 8255的组成与接口信号 186
8.1.2 8255的工作方式与控制字 188
8.1.3 三种工作方式的功能 190
8.1.4 8255在IBM PC系统中的应用 194
8.2.1 8253的组成与接口信号 197
8.2 可编程计数器/定时器8253 197
8.2.2 计数器的工作方式及其与输入输出的关系 199
8.2.3 8253的控制字和初始化编程 201
8.2.4 8253的应用 202
8.3 串行通信 207
8.3.1 80x86微型计算机的串行口 207
8.3.2 异步通信控制器8250 210
8.3.3 8250与微型计算机及RS-232接口的连接 217
8.3.4 异步串行通信程序设计 218
8.3.5 PC机之间的通信 220
8.3.6 PC机与MCS-51单片机之间的通信 222
8.4.1 8279的组成与接口信号 225
8.4 键盘/显示控制器8279 225
8.4.2 8279的操作命令 227
8.4.3 8279在键盘和显示器接口中的应用 228
习题与思考题 233
附录一 指令系统表 235
一、数据传送类指令 235
二、算术运算指令 235
三、位操作指令 236
四、串操作指令 236
五、控制转移指令 237
六、处理机控制指令 237
附录二 算术逻辑运算指令对状态标志位的影响 238