第1章 概述 1
1.1 台式个人计算机的构成 1
1.1.1 中央处理器--CPU 1
1.1.2 系统主板 3
1.1.3 内存 5
1.1.4 硬盘 6
1.1.5 软盘 8
1.1.7 显示器 9
1.1.6 显示卡 9
1.1.8 光盘存储器 10
1.1.9 声卡和音箱 11
1.1.10 网卡 12
1.1.11 机箱、鼠标、键盘 12
1.2 计算机基础 13
1.2.1 计算机的基本结构 13
1.2.2 常用的名词术语和二进制编码 14
1.2.3 指令程序和指令系统 17
1.2.4 初级计算机 18
1.2.5 简单程序举例 21
1.2.6 寻址方式 26
1.2.7 分支 32
1.3 计算机的硬件和软件 37
1.3.1 系统软件 37
1.3.2 应用软件 38
1.3.3 支撑(或称为支持)软件 38
1.4 微型计算机的结构 38
1.4.2 微型计算机的内部结构 39
1.4.1 微型计算机的外部结构 39
1.5 多媒体计算机 40
1.5.1 人机接口 40
1.5.2 多媒体计算机的主要功能 41
1.5.3 多媒体计算机的组成 41
第2章 IA-32结构微处理器 43
2.1 IA-32结构的概要历史 43
2.1.1 8086 44
2.1.2 80386 44
2.1.4 奔腾(Pentium) 45
2.1.3 80486 45
2.1.5 P6系列处理器 46
2.1.6 奔腾II 46
2.1.7 奔腾III 47
2.1.8 Intel Pentium4处理器 47
2.2 IA-32 PROCESSOR的功能结构 47
2.2.1 8086的功能结构 48
2.2.2 80386的功能结构 49
2.2.3 80486的功能结构 51
2.3 IA-32结构微处理器的指令系统的发展 52
2.4 IA-32结构微处理器的性能发展 54
2.4.1 IA-32的流水线结构简介 55
2.4.2 Cache 59
2.5 IA-32结构微处理器的执行环境 64
2.5.1 操作模式 64
2.5.2 基本执行环境概要 64
2.5.3 存储器组织 66
2.5.4 基本的程序执行寄存器 70
2.5.5 X87FPU结构 79
第3章 IA-32指令系统 84
3.1 基本数据类型 84
3.1.1 字、双字、四字和双四字的对齐 85
3.1.2 数字数据类型 85
3.1.3 指针数据类型 87
3.1.4 位字段数据类型 88
3.1.5 串数据类型 88
3.2 IA-32的指令格式 88
3.3.2 寄存器操作数 89
3.3.1 立即数 89
3.3 IA-32指令的操作数寻址方式 89
3.3.3 存储器操作数 90
3.3.4 I/O端口寻址 94
3.4 IA-32的通用指令 94
3.4.1 数据传送指令 95
3.4.2 二进制算术指令 103
3.4.3 十进制算术指令 113
3.4.4 逻辑指令 116
3.4.5 移位和循环移位指令 119
3.4.6 位和字节指令 122
3.4.7 控制传送指令 124
3.4.8 串指令 128
3.4.9 标志控制操作 133
3.4.10 段寄存器指令 133
3.4.11 杂项指令 133
3.5 x87 FPU指令 134
3.5.1 数据传送指令 134
3.5.2 基本算术指令 135
3.5.4 超越指令 136
3.5.3 比较指令 136
3.5.5 加载常数指令 137
3.5.6 x87FPU控制指令 137
第4章 汇编语言程序设计 138
4.1 汇编语言的格式 138
4.1.1 8086汇编语言程序的一个例子 138
4.1.2 8086汇编语言源程序的格式 139
4.2 语句行的构成 139
4.2.1 标记(Token) 140
4.2.2 符号(Symbol) 143
4.2.3 表达式(Expressions) 144
4.2.4 语句(Statements) 147
4.3 指示性语句(Directive statements) 147
4.3.1 符号定义语句 148
4.3.2 数据定义语句 148
4.3.3 段定义语句 155
4.3.4 过程定义语句 159
4.3.5 结束语句 160
4.4.2 指令前缀 161
4.4 指令语句 161
4.4.1 指令助记符 161
4.4.3 操作数寻址方式 162
4.4.4 串操作指令 163
4.5 汇编语言程序设计及举例 167
4.5.1 算术运算程序设计(直线运行程序) 167
4.5.2 分支程序设计 169
4.5.3 循环程序设计 170
4.5.4 字符串处理程序设计 172
4.5.5 码转换程序设计 176
4.5.6 有关I/O的DOS功能调用 181
4.5.7 宏汇编与条件汇编 185
第5章 处理器总线时序和系统总线 195
5.1 处理器总线 195
5.1.1 8086的引脚功能 195
5.1.2 Pentium的引脚 201
5.2 IA-32微处理器的工作状态 204
5.3.1 8086的时序 205
5.3 处理器时序 205
5.3.2 Pentium处理器时序 213
5.4 系统总线 222
5.4.1 概述 223
5.4.2 PC总线 228
5.4.3 ISA总线 230
5.4.4 PCI总线 231
第6章 IA-32微处理器的工作方式 236
6.1 实地址方式 236
6.2.1 保护方式下的寻址机制 237
6.2 保护虚地址方式 237
6.2.2 全局描述符表和局部描述符表 238
6.2.3 描述符 239
6.2.4 选择子 243
6.2.5 段描述符的高速缓冲寄存器 244
6.2.6 IA-32微处理器中的特权级 245
6.2.7 任务切换 254
6.3 虚拟8086方式 259
6.3.1 虚拟8086方式的特点 259
6.3.2 虚拟8086方式下的I/O位图 261
6.3.3 进入和离开虚拟8086方式 263
6.3.4 虚拟8086方式的控制转移 265
第7章 存储器 267
7.1 半导体存储器的分类 268
7.1.1 RAM的种类 268
7.1.2 ROM的种类 269
7.2 读写存储器RAM 270
7.2.1 基本存储电路 270
7.2.2 RAM的结构 271
7.2.3 RAM与CPU的连接 275
7.2.4 64K位动态RAM存储器 286
7.3 现代RAM 295
7.3.1 内存条的构成 295
7.3.2 扩展数据输出动态随机访问存储器EDO DRAM 296
7.3.3 同步动态随机访问存储器SDRAM 297
7.3.4 突发存取的高速动态随机存储器Rambus DRAM 299
7.4 只读存储器(ROM) 300
7.4.1 掩模只读存储器 300
7.4.2 可擦除的可编程序的只读存储器EPROM 302
7.5 虚拟存储器管理与IA-32微处理器的MMU单元 311
7.5.1 虚拟存储器概念 311
7.5.2 Intel IA-32结构微处理器的存储管理单元 315
第8章 输入和输出 324
8.1 概述 324
8.1.1 输入输出的寻址方式 324
8.1.2 CPU与I/O设备之间的接口信息 325
8.1.3 CPU的输入输出时序 326
8.1.5 IBM PC与外设的接口与现代PC机的外设接口 327
8.1.4 CPU与接口电路间数据传送的形式 327
8.2 CPU与外设数据传送的方式 330
8.2.1 查询传送方式 330
8.2.2 中断传送方式 333
8.2.3 直接数据通道传送(DMA) 334
8.3 DMA控制器 337
8.3.1 主要功能 337
8.3.2 8237的结构 338
8.3.3 8237的工作周期 339
8.3.4 8237的引线 340
8.3.5 8237的工作方式 342
8.3.6 8237的寄存器组和编程 343
8.3.7 8237的时序 350
第9章 中断 353
9.1 引言 353
9.1.1 为什么要用中断 353
9.1.2 中断源 353
9.1.3 中断系统的功能 354
9.2.1 CPU响应中断的条件 355
9.2 最简单的中断情况 355
9.2.2 CPU对中断的响应 357
9.3 中断优先权 358
9.3.1 用软件确定中断优先权 358
9.3.2 硬件优先权排队电路 360
9.4 中断控制器Intel 8259A 361
9.4.1 功能 361
9.4.2 结构 362
9.4.3 8259A的引线 363
9.4.4 8259A的中断顺序 364
9.4.5 8259A的编程 366
9.4.6 8259A的工作方式 371
9.5 8086的中断方式 375
9.5.1 外部中断 375
9.5.2 内部中断 376
9.5.3 中断向量表 377
9.5.4 8086中的中断响应和处理过程 377
9.6.1 中断类型 379
9.6 IBM PC/XT的中断结构 379
9.6.2 IBM PC/XT中系统保留的中断 380
9.7 IA-32微处理器的中断和异常 381
9.7.1 IA-32微处理器中的中断 381
9.7.2 IA-32微处理器中的异常 382
9.7.3 中断向量表 386
第10章 计数器和定时器电路Intel 8253/8254-PIT 387
10.1 概述 387
10.1.1 主要功能 387
10.1.2 8253-PIT的内部结构 388
10.1.3 8253-PIT的引线 389
10.2 8253-PIT的控制字 390
10.3 8253-PIT的工作方式 391
10.3.1 方式0——计完最后一个数时中断 391
10.3.2 方式1——可编程序的单拍脉冲 392
10.3.3 方式2——速率发生器 393
10.3.4 方式3——方波速率发生器 394
10.3.5 方式4——软件触发选通 396
10.3.6 方式5——硬件触发选通 397
10.3.7 8253-PIT工作方式小结 398
10.4 8253-PIT的编程 400
10.5 8254-PIT 401
第11章 并行接口芯片 403
11.1 可编程的并行输入/输出接口芯片8255A-5的结构 403
11.2 方式选择 405
11.2.1 “方式”选择控制字 406
11.2.2 方式选择举例 406
11.2.3 按位置位/复位功能 409
11.3.2 方式0的时序 410
11.3.1 方式0的基本功能 410
11.3 方式0的功能 410
11.4 方式1的功能 414
11.4.1 主要功能 414
11.4.2 方式1输入 415
11.4.3 方式1输出 416
11.5 方式2的功能 418
11.5.1 主要功能 418
11.5.2 时序 419
11.5.3 方式控制字 420
11.6 8255A应用举例 421
第12章 串行通信及接口电路 424
12.1 串行通信 424
12.1.1 概述 424
12.1.2 串行接口标准EIA RS-232C接口 432
12.2 Intel 8251A可编程通信接口 434
12.2.1 8251的基本性能 434
12.2.2 8251的方框图 435
12.2.3 接口信号 436
12.2.4 8251的编程 438
12.2.5 8251应用举例 441
第13章 数模(D/A)转换与模数(A/D)转换接口 445
13.1 模拟量输入与输出通道 445
13.1.1 模拟量输入通道的组成 446
13.1.2 模拟量输出通道的组成 446
13.2 数模(D/A)转换器 447
13.2.1 D/A转换的基本原理 447
13.2.2 D/A转换器的主要技术指标 448
13.2.3 典型的D/A转换器芯片 450
13.3.1 8位D/A转换芯片与CPU的接口 454
13.3 D/A转换器与微处理器的接口 454
13.3.2 12位D/A转换芯片与CPU的接口 455
13.4 模数(A/D)转换器 456
13.4.1 A/D转换的基本原理 456
13.4.2 A/D转换器的主要技术指标 457
13.4.3 A/D转换器与系统连接的问题 459
13.4.4 典型的A/D转换芯片 460
13.5 A/D转换器与微处理器的接口 465
13.5.1 8位A/D转换芯片与CPU的接口 465
13.5.2 12位A/D转换芯片与CPU的接口 466
13.6 D/A、A/D转换应用举例 467
13.6.1 D/A转换举例 467
13.6.2 A/D转换举例 468
第14章 人机接口 471
14.1 人机接口概述 471
14.1.1 人机交互设备 471
14.1.2 人机接口的功能 472
14.2 键盘与键盘接口 472
14.2.2 小型键盘接口 473
14.2.1 键开关与键盘类型 473
14.2.3 微型机键盘及键盘接口 474
14.3 其它输入设备及接口 477
14.3.1 鼠标器 478
14.3.2 扫描仪 480
14.4 显示设备及接口 482
14.4.1 CRT显示器及接口 483
14.4.2 LCD显示器 490
14.4.3 视频显示标准 493
14.4.4 字母数字显示器 494
14.5 打印机及接口 498
14.5.1 打印机概述 498
14.5.2 打印机的主要性能指标 499
14.5.3 针式打印机工作原理 500
14.5.4 喷墨打印机工作原理 502
14.5.5 激光打印机工作原理 503
14.5.6 打印机接口 504
参考文献 507