第1章 微型计算机的基础知识 1
1.1 计算机中的数和编码 1
1.1.1 计算机中的数制 1
1.1.2 符号数的表示法 2
1.1.3 二进制数的加减运算 4
1.1.4 二进制数的逻辑运算与逻辑电路 7
1.1.5 二进制编码 9
1.1.6 BCD数的加减运算 11
1.2 逻辑单元与逻辑部件 12
1.2.1 触发器 12
1.2.2 寄存器 15
1.2.3 移位寄存器 16
1.2.4 计数器 16
1.2.5 三态输出门与缓冲放大器 18
1.2.6 译码器 18
1.3 微型计算机的结构和工作原理 19
1.3.1 微型计算机常用的术语 19
1.3.2 微型计算机的基本结构 20
1.3.3 计算机的工作原理 23
1.4 8086/8088微处理器 23
1.4.1 8086/8088的结构 23
1.4.2 8086/8088的寄存器 25
1.5 8086/8088的存储器结构与堆栈 28
1.5.1 存储器编址 28
1.5.2 存储器分段和物理地址的生成 28
1.5.3 堆栈和栈操作指令 30
1.6 80x86、Pentuim系列微处理器 32
1.6.1 80286 32
1.6.2 80386 33
1.6.3 80486 35
1.6.4 Pentium(奔腾) 36
1.7 新一代微处理器——Itanium(安腾) 37
习题与思考题 38
第2章 汇编语言与汇编程序 40
2.1 符号指令中的表达式 40
2.1.1 常量和数值表达式 41
2.1.2 变量和地址表达式 41
2.1.3 标号 43
2.1.4 变量和标号类型的变更 43
2.2 符号指令的寻址方式 44
2.2.1 寄存器寻址 44
2.2.2 立即寻址 44
2.2.3 直接寻址 45
2.2.4 间接寻址 45
2.2.5 基址寻址 46
2.2.6 变址寻址 46
2.2.7 基址变址寻址 46
2.2.8 存储器寻址中段地址的确定 47
2.3 常用指令 48
2.3.1 数据传送类指令 48
2.3.2 加减运算指令 52
2.3.3 位操作指令 54
2.3.4 指令应用举例 58
2.4 伪指令 64
2.4.1 过程的定义 64
2.4.2 段的定义 65
2.4.3 汇编地址计数器 66
2.4.4 段寄存器的假定 66
2.4.5 源程序的结束 67
2.4.6 宏汇编源程序的格式 67
2.5 系统功能调用 69
2.5.1 常用系统功能调用 69
2.5.2 常用系统功能调用应用举例 71
习题与思考题 75
第3章 程序设计的基本技术 79
3.1 顺序程序设计 79
3.1.1 乘除法指令 79
3.1.2 BCD数调整指令 82
3.1.3 顺序程序设计举例 88
3.2 分支程序设计 90
3.2.1 条件转移指令 90
3.2.2 无条件转移指令 92
3.2.3 分支程序设计举例 93
3.3 循环程序设计 96
3.3.1 循环程序的基本结构 96
3.3.2 重复控制指令 100
3.3.3 单重循环程序设计举例 100
3.3.4 多重循环程序设计举例 108
3.4 串处理程序设计 111
3.4.1 方向标志置位和清除指令 111
3.4.2 串操作指令 112
3.4.3 重复前缀 113
3.4.4 串操作程序设计举例 113
3.5 子程序设计 119
3.5.1 子程序的概念 119
3.5.2 子程序的调用指令与返回指令 121
3.5.3 子程序及其调用程序设计举例 123
3.6 80286、80386、80486和Pentium程序设计 129
3.6.1 80286、80386、80486和Pentium微处理器的指令 130
3.6.2 MASM5.0以上版本的伪指令 138
3.6.3 存储器操作数中的地址表达式 139
3.6.4 80x86和Pentium汇编源程序设计举例 140
习题与思考题 143
第4章 总线 146
4.1 总线概述 146
4.1.1 总线分类 146
4.1.2 总线操作 147
4.2 8086/8088的CPU总线与时序 148
4.2.1 8086/8088的CPU引线 148
4.2.2 8088的CPU系统和CPU总线 152
4.2.3 8088的时序 157
4.3 Pentium的CPU总线 162
4.3.1 地址线及控制信号 163
4.3.2 数据线及控制信号 164
4.3.3 总线周期控制信号 164
4.3.4 Cache控制信号 164
4.3.5 系统控制信号 165
4.3.6 总线仲裁信号 165
4.3.7 检测与处理信号 166
4.3.8 系统管理模式信号 166
4.3.9 测试信号 166
4.3.10 跟踪和检测信号 166
4.4 ISA(industry standard architecture)局部总线 167
4.4.1 ISA局部总线概述 167
4.4.2 ISA总线信号 167
4.5 PCI局部总线 169
4.5.1 PCI局部总线概述 169
4.5.2 PCI系统框图 170
4.5.3 PCI总线信号 170
习题与思考题 175
第5章 半导体存储器 176
5.1 存储器概述 176
5.1.1 存储器的类型 176
5.1.2 存储器的性能指标与分级结构 177
5.2 常用的存储器芯片 178
5.2.1 半导体存储器芯片的结构 178
5.2.2 随机读写存储器RAM 178
5.2.3 只读存储器ROM 180
5.3 存储器与CPU的接口 183
5.3.1 存储器芯片与地址总线的连接 183
5.3.2 存储器芯片与数据总线的连接 185
5.3.3 存储器芯片与控制总线的连接 185
5.3.4 连接举例 185
习题与思考题 189
第6章 输入/输出和接口技术 190
6.1 接口的基本概念 190
6.1.1 接口的功能 190
6.1.2 接口控制原理 191
6.1.3 接口控制信号 194
6.2 I/O指令和I/O地址译码 194
6.2.1 标准的I/O寻址方式 194
6.2.2 存储器映象I/O寻址方式 195
6.2.3 输入/输出指令 195
6.2.4 I/O接口的端口地址译码 196
6.3 数字通道接口 198
6.3.1 数据输出寄存器 199
6.3.2 数据输入三态缓冲器 199
6.3.3 三态缓冲寄存器 200
6.3.4 寄存器和缓冲器接口的应用 200
6.3.5 打印机适配器 208
6.4 模拟通道接口 213
6.4.1 数模转换器及其与微型计算机的接口 214
6.4.2 模数转换器ADC0808及其与微型计算机的接口 220
习题与思考题 222
第7章 中断技术 225
7.1 中断和中断系统 225
7.1.1 中断的概念 225
7.1.2 中断源 225
7.1.3 中断系统的功能 226
7.1.4 CPU对中断的响应及中断过程 227
7.2 中断控制器8259A 227
7.2.1 8259的组成和接口信号 228
7.2.2 8259A处理中断的过程 229
7.2.3 8259A的级联连接 229
7.2.4 8259A的命令字 230
7.3 PC机的中断系统和中断指令 233
7.3.1 外部中断 233
7.3.2 内部中断 234
7.3.3 中断向量表 235
7.3.4 中断响应和处理过程 235
7.4 可屏蔽中断服务程序的设计 236
7.4.1 中断服务程序入口地址的装入 237
7.4.2 中断屏蔽与中断结束的处理 237
7.4.3 286、386、486、Pentium PC机的外部中断 238
习题与思考题 239
第8章 常用可编程接口芯片 240
8.1 可编程并行接口8255A 240
8.1.1 8255的组成与接口信号 240
8.1.2 8255的工作方式与控制字 242
8.1.3 3种工作方式的功能 245
8.2 可编程计数器/定时器8253 249
8.2.1 8253的组成与接口信号 249
8.2.2 计数器的工作方式及其与输入/输出的关系 251
8.2.3 8253的控制字和初始化编程 253
8.2.4 8253的应用 255
8.3 串行通信与异步通信控制器8250 259
8.3.1 PC机的串行口 259
8.3.2 异步通信控制器8250 262
8.3.3 8250与微型计算机及RS-232接口信号的连接 269
8.3.4 异步串行通信程序设计 270
8.3.5 PC机之间的通信 272
习题与思考题 275
附录 277
附录1 8086指令系统表 279
附录2 8086算术逻辑运算指令状态标志位的影响 283
附录3 8086指令按字母顺序查找表 284
参考文献 287