第1章 微型计算机系统概述 1
1.1 微型计算机的发展和应用 1
1.1.1 微型计算机的发展 2
1.1.2 微型计算机的应用 3
1.2 微型计算机的系统组成 5
1.2.1 微型计算机的硬件系统 5
1.2.2 微型计算机的软件系统 7
1.3 IBM PC系列机系统 7
1.3.1 硬件基本组成 9
1.3.2 主机板组成 9
1.3.3 存储空间的分配 12
1.3.4 I/O空间的分配 13
1.4 计算机中的数据表示 13
1.4.1 计算机中的数 14
1.4.2 计算机中的码 16
习题1 18
第2章 微处理器指令系统 19
2.1 微处理器的内部结构 19
2.1.1 微处理器的基本结构 19
2.1.2 8088/8086的功能结构 21
2.1.3 8088/8086的寄存器结构 22
2.1.4 8088/8086的存储器结构 25
2.2 8088/8086的寻址方式 27
2.2.1 立即数寻址方式 29
2.2.2 寄存器寻址方式 29
2.2.3 存储器寻址方式 30
2.3 数据传送类指令 33
2.3.1 通用数据传送指令 33
2.3.2 堆栈操作指令 35
2.3.4 地址传送指令 36
2.3.3 标志操作指令 36
2.4 算术运算类指令 37
2.4.1 加法和减法指令 37
2.4.2 符号扩展指令 39
2.4.3 乘法和除法指令 40
2.4.4 十进制调整指令 41
2.5 位操作类指令 43
2.5.1 逻辑运算指令 44
2.5.2 移位指令 44
2.5.3 循环移位指令 46
2.6 控制转移类指令 47
2.6.1 无条件转移指令 47
2.6.2 条件转移指令 48
2.6.3 循环指令 50
2.6.4 子程序指令 51
2.6.5 中断指令和系统功能调用 52
2.7 处理器控制类指令 55
习题2 56
第3章 汇编语言程序设计 60
3.1 汇编语言的源程序格式 60
3.1.1 简化段定义格式 61
3.1.2 完整段定义格式 63
3.1.3 可执行程序的结构 65
3.2 常量、变量和标号 67
3.2.1 常量 67
3.2.2 变量 69
3.2.3 名字和标号的属性 71
3.3 顺序程序设计 73
3.4 分支程序设计 73
3.5 循环程序设计 77
3.5.1 计数控制循环 77
3.5.2 条件控制循环 79
3.5.3 串操作类指令 80
3.6 子程序设计 83
3.6.1 过程定义和子程序编写 83
3.6.2 用寄存器传递参数 86
3.6.3 用共享变量传递参数 88
3.6.4 用堆栈传递参数 90
3.6.5 子程序模块和子程序库 92
3.7 宏汇编 93
习题3 98
第4章 微处理器外部特性 102
4.1 8088的引脚信号和总线形成 102
4.1.1 8088的两种组态模式 102
4.1.2 最小组态的引脚定义 103
4.1.3 最小组态的总线形成 106
4.1.4 最大组态的引脚定义 108
4.1.5 最大组态的总线形成 109
4.2 8088的总线时序 110
4.2.1 最小组态的总线时序 111
4.2.2 最大组态的总线时序 113
4.3 8086微处理器 115
4.4 80286微处理器 116
4.5 微机系统总线 117
4.5.1 微机总线概述 117
4.5.2 IBM PC总线 118
4.5.3 ISA总线 122
习题4 124
第5章 半导体存储器及其接口 125
5.1 半导体存储器概述 125
5.1.1 半导体存储器的分类 125
5.1.2 半导体存储器芯片的结构 126
5.2 随机存取存储器 128
5.2.1 静态RAM 128
5.1.3 半导体存储器的主要技术指标 128
5.2.2 动态RAM 131
5.3 只读存储器 135
5.3.1 EPROM 135
5.3.2 EEPROM 138
5.4 半导体存储器与CPU的连接 140
5.4.1 存储芯片与CPU的连接 140
5.4.2 存储芯片与CPU的配合 144
5.5 IBM PC/XT机的DRAM子系统 145
习题5 147
第6章 基本输入输出接口 149
6.1 I/O接口概述 149
6.1.1 I/O接口的主要功能 149
6.1.2 I/O接口的典型结构 150
6.1.3 I/O端口的编址 151
6.1.4 8088/8086的输入输出指令 152
6.1.5 I/O地址的译码 153
6.1.6 数据传送方式 153
6.2 无条件传送方式及其接口 154
6.3 查询传送方式及其接口 155
6.3.1 查询输入接口 156
6.3.2 查询输出接口 156
6.3.3 用查询方式对EEPROM进行编程 157
6.4 中断传送方式 158
6.4.1 中断传送与接口 158
6.4.2 中断工作过程 159
6.4.3 中断优先权 161
6.5 DMA传送方式 164
习题6 165
第7章 中断控制接口 167
7.1 8088中断系统 167
7.1.1 8088的中断类型 167
7.1.2 8088的中断响应过程 169
7.1.3 8088的中断向量表 170
7.2 内部中断服务程序 172
7.3 8259A中断控制器 174
7.3.1 8259A的内部结构和引脚 174
7.3.2 8259A的中断过程 175
7.3.3 8259A的工作方式 176
7.3.4 8259A的编程 179
7.4 8259A在IBM PC系列机上的应用 183
7.5 外部中断服务程序 185
7.6 驻留中断服务程序 187
习题7 189
第8章 定时计数控制接口 191
8.1 8253/8254定时计数器 191
8.1.1 8253/8254的内部结构和引脚 191
8.1.2 8253/8254的工作方式 193
8.1.3 8253/8254的编程 196
8.2 8253/8254在IBM PC系列机上的应用 198
8.2.1 定时中断和定时刷新 199
8.2.2 扬声器控制 199
8.2.3 可编程硬件延时 200
8.3 扩充定时计数器的应用 202
习题8 203
第9章 DMA控制接口 205
9.1 DMA控制器8237A 205
9.1.1 8237A的内部结构和引脚 205
9.1.2 8237A的工作时序 207
9.1.3 8237A的工作方式 209
9.1.4 8237A的寄存器 210
9.1.5 8237A的编程 214
9.2 8237A的应用 214
9.2.1 8237A在IBM PC系列机上的应用 215
9.2.2 DMA写传送 216
9.2.3 DMA设定子程序 217
习题9 219
第10章 并行接口 221
10.1 并行接口电路8255A 221
10.1.1 8255A的内部结构和引脚 221
10.1.2 8255A的工作方式 222
10.1.3 8255A的编程 226
10.2 8255A的应用 228
10.2.1 8255A在IBM PC/XT机上的应用 228
10.2.2 用8255A方式0与打印机接口 229
10.2.3 用8255A方式1与打印机接口 230
10.2.4 双机并行通信接口 231
10.3 键盘及其接口 232
10.3.1 简易键盘的工作原理 232
10.3.2 PC机键盘的工作原理 237
10.4 LED数码管及其接口 242
10.5 并行打印机接口 245
10.5.1 打印机接口信号 246
10.5.2 打印机适配器 247
10.5.3 打印机驱动程序 249
习题10 252
第11章 串行通信接口 254
11.1 串行通信基础 254
11.2 串行接口标准RS-232C 256
11.2.1 RS-232C的引脚定义 256
11.2.2 RS-232C的连接 257
11.2.3 RS-232C的电气特性 258
11.3 通用异步接收发送器8250/16550 259
11.3.1 8250/16550的内部结构 259
11.3.2 8250/16550的引脚 261
11.3.3 8250/16550的寄存器 263
11.4 异步通信适配器 266
11.4.1 异步通信适配器的接口电路 267
11.4.2 异步通信适配器的初始化编程 267
11.4.3 异步通信程序 268
11.4.4 中断通信方式的编程方法 270
习题11 271
第12章 模拟接口 272
12.1 模拟输入输出系统 272
12.2 D/A转换器 273
12.2.1 D/A转换的基本原理 273
12.2.2 DAC0832芯片 274
12.2.3 DAC芯片与主机的连接 277
12.2.4 DAC芯片的应用 279
12.3 A/D转换器 279
12.3.1 A/D转换的基本原理 280
12.3.2 ADC0809芯片 281
12.3.3 ADC芯片与主机的连接 283
12.3.4 ADC芯片的应用 284
习题12 286
第13章 32位微型计算机系统 288
13.1 32位微机组成结构 288
13.1.1 Intel 80x86系列微处理器的发展 288
13.1.2 32位微机主板 292
13.1.3 32位微机总线结构 296
13.2 32位指令系统 298
13.2.1 32位微处理器的工作方式 298
13.2.2 32位寄存器组 299
13.2.3 32位寻址方式 300
13.2.4 32位扩展指令 301
13.2.5 新增32位整数指令 303
13.2.6 浮点指令 304
13.2.7 多媒体指令 305
13.2.8 32位指令的程序设计 307
13.3 32位微处理器的引脚 309
13.3.1 数据线 310
13.3.2 地址线 310
13.3.3 总线周期控制线 310
13.3.4 其他控制线 312
13.4 虚拟存储管理 312
13.4.1 段式存储管理 312
13.4.2 页式存储管理 313
13.4.3 描述符 314
13.4.4 特权与保护 314
13.5 高速缓冲存储器Cache 315
13.5.1 高速缓存的工作原理 316
13.5.2 80486的片上高速缓存 318
13.6.1 为什么需要RISC 319
13.6 精简指令集RISC技术 319
13.6.2 RISC技术的主要特点 320
13.7 指令流水线技术 321
13.7.1 80486的指令流水线 322
13.7.2 Pentium的超标量指令流水线 323
13.7.3 Pentium的动态分支预测 323
13.8 动态执行技术 324
13.8.1 指令级并行ILP处理器 324
13.8.2 Pentium Ⅲ的动态执行结构 326
习题13 327
附录A 调试程序DEBUG的使用方法 329
附录B 汇编语言的开发方法 334
附录C 8088/8086指令系统 336
附录D 常用DOS功能调用(INT 21H) 340
附录E 常用ROM-BIOS功能调用 343
参考文献 347