第1章 数据在计算机中的表示与运算方法 1
1.1 进位计数制 1
1.1.1 进位计数制及其基数和权 1
1.1.2 计算机中几种常用的进位计数制 1
1.2 不同进位制数之间的转换 4
1.2.1 二进制数转换为十进制数 4
1.2.2 十进制数转换为二进制数 4
1.2.3 任意两种进位制数之间的转换 7
1.3 二进制数的算术运算和逻辑运算 8
1.3.1 二进制数的算术运算 8
1.3.2 二进制数的逻辑运算 9
1.3.3 移位运算 10
1.4 数据在计算机中的表示形式 11
1.4.1 机器数与真值 11
1.4.2 四种常见的机器数形式 12
1.4.3 数的定点表示与浮点表示 16
1.4.4 二-十进制编码 20
1.4.5 字符编码 21
1.4.6 二进制信息的计量单位 22
1.5 数据在计算机中的运算方法 23
1.5.1 定点数加减法运算 23
1.5.2 定点数乘法运算 27
1.5.3 定点数除法运算 30
1.5.4 浮点数的四则运算 35
习题一 38
第2章 计算机的基本结构与工作过程 39
2.1 计算机的基本结构 39
2.1.1 存储程序概念与冯·诺伊曼计算机基本结构 39
2.1.2 计算机的基本组成框图及功能部件简介 40
2.2 计算机的工作过程 44
2.2.1 指令与程序 44
2.2.2 程序的装入与运行 45
2.2.3 计算机的工作过程 46
2.3 控制器基本原理 50
2.3.1 硬布线控制器原理 50
2.3.2 微程序控制器原理 52
2.3.3 一个简单的微程序实例 57
2.4 计算机系统的组成 59
2.4.1 硬件与软件 59
2.4.2 计算机系统的基本组成 59
2.5 微型计算机的产生和发展 60
2.5.1 世界上第一个微处理器和微型计算机的诞生 60
2.5.2 微型计算机的发展阶段 61
2.6 微型计算机的分类及主要技术指标 62
2.6.1 微型计算机的分类 62
2.6.2 微型计算机的主要技术指标 63
2.7 微型计算机的基本结构及系统组成 64
2.7.1 微型计算机基本结构 65
2.7.2 微型计算机的系统组成 66
习题二 66
第3章 微处理器的编程结构 68
3.1 微处理器的工作模式 68
3.1.1 实模式 68
3.1.2 保护模式 69
3.1.3 虚拟8086模式 69
3.2 微处理器的编程结构 69
3.2.1 程序可见寄存器 70
3.2.2 80x86/Pentium处理器的寄存器模型 70
3.3 实模式下的存储器寻址 74
3.3.1 实模式下的存储器地址空间 74
3.3.2 存储器分段技术 75
3.3.3 实模式下的存储器寻址 76
3.3.4 堆栈 81
3.4 实模式输入/输出地址空间 81
习题三 82
第4章 寻址方式与指令系统 83
4.1 寻址方式 83
4.1.1 数据寻址方式 83
4.1.2 转移地址寻址方式 90
4.2 指令编码 92
4.2.1 指令编码格式 92
4.2.2 指令编码举例 95
4.3 8086指令系统 96
4.3.1 数据传送指令 96
4.3.2 算术运算指令 101
4.3.3 逻辑运算与移位指令 112
4.3.4 串操作指令 115
4.3.5 转移指令 119
4.3.6 处理器控制指令 126
4.4 80286~Pentium指令系统 127
4.4.1 80286增强和扩充的指令 127
4.4.2 80386增强和扩充的指令 129
4.4.3 80486增强和扩充的指令 132
4.4.4 Pentium增强和扩充的指令 132
4.4.5 Pentium Pro增强和扩充的指令 133
4.4.6 Pentium Ⅱ增强和扩充的指令 134
习题四 134
第5章 汇编语言的基本语法 136
5.1 汇编语言的特点 136
5.2 汇编语言程序结构和基本语法 137
5.2.1 示例程序 137
5.2.2 基本概念 138
5.2.3 指令语句 144
5.2.4 伪指令语句 146
5.2.5 结构与记录 153
5.2.6 宏指令 155
5.2.7 简化段定义 158
5.3 ROM BIOS中断调用和DOS系统功能调用 160
5.3.1 ROM BIOS中断调用 160
5.3.2 DOS系统功能调用 160
5.4 汇编语言程序的上机过程 161
5.4.1 .exe文件的上机过程 161
5.4.2 .com文件及其上机过程 169
习题五 170
第6章 汇编语言程序设计及应用 174
6.1 汇编语言程序设计的基本方法 174
6.1.1 程序设计的基本步骤 174
6.1.2 程序的基本结构形式 175
6.1.3 子程序设计 177
6.2 汇编语言的编程应用 179
6.2.1 I/O与通信 180
6.2.2 声音与时钟 180
6.2.3 乐曲程序 182
6.2.4 键盘I/O 186
6.2.5 鼠标器编程 188
6.2.6 图形显示 191
6.2.7 文件操作 194
6.3 Windows汇编语言程序设计简介 199
6.3.1 Windows API函数 199
6.3.2 动态链接库 199
6.3.3 指令集选择 200
6.3.4 工作模式选择 200
6.3.5 函数的原型定义 200
6.3.6 Windows应用程序的基本结构框架 201
6.3.7 Win32汇编语言应用程序实例 201
6.3.8 MASM32汇编与连接命令 203
6.4 高级汇编语言技术 203
6.4.1 条件汇编 203
6.4.2 库的使用 204
6.4.3 汇编语言与高级语言的混合编程 204
习题六 209
第7章 微处理器的内部结构及外部功能特性 211
7.1 微处理器的内部结构 211
7.1.1 总线接口单元BIU 211
7.1.2 指令Cache与数据Cache 212
7.1.3 超标量流水线结构 212
7.1.4 动态转移预测及转移目标缓冲器BTB 213
7.1.5 指令预取器和预取缓冲器 215
7.1.6 指令译码器 215
7.1.7 执行单元EU 216
7.1.8 浮点处理单元FPU 216
7.1.9 控制单元CU 216
7.2 微处理器的外部功能特性 217
7.2.1 微处理器的外部引脚信号 217
7.2.2 微处理器的总线时序 222
习题七 230
第8章 I/O接口与DMA技术 232
8.1 I/O接口概述 232
8.1.1 I/O接口的基本功能 232
8.1.2 I/O接口的基本结构 233
8.1.3 I/O端口的编址方式 234
8.1.4 I/O接口的地址分配 235
8.1.5 I/O接口的地址译码及片选信号的产生 236
8.1.6 I/O指令 237
8.2 I/O控制方式 237
8.2.1 程序控制方式 237
8.2.2 中断控制方式 239
8.2.3 DMA方式 240
8.3 DMA接口技术 241
8.3.1 DMA控制器的基本功能 241
8.3.2 DMA控制器的一般结构 242
8.3.3 DMA控制器的工作方式 244
8.3.4 DMA工作过程 244
8.4 可编程DMA控制器8237 245
8.4.1 8237的结构 246
8.4.2 8237的引脚 247
8.4.3 8237的工作方式 249
8.4.4 8237的寄存器及其功能说明 251
8.4.5 特殊软件命令 255
8.4.6 8237内部寄存器的寻址 255
8.4.7 8237的工作周期与操作时序 256
8.4.8 8237的页面寄存器 258
8.4.9 8237的编程 259
8.4.10 8237应用举例 260
习题八 264
第9章 中断及中断控制器 266
9.1 基本概念 266
9.1.1 中断 266
9.1.2 中断响应和处理过程 267
9.1.3 中断优先级和中断嵌套 267
9.2 80x86实模式的中断系统 270
9.2.1 中断的分类 270
9.2.2 中断向量表 270
9.2.3 外部中断 273
9.2.4 内部中断 275
9.2.5 中断响应和中断处理过程 277
9.3 可编程中断控制器8259A 280
9.3.1 8259A的引脚功能 281
9.3.2 8259A的内部结构 281
9.3.3 8259A的工作过程 283
9.3.4 8259A的工作方式 283
9.3.5 8259A的级联使用 285
9.3.6 8259A的控制字及编程使用 287
9.3.7 8259A应用举例 292
9.4 中断服务程序设计 293
9.4.1 中断服务程序的一般结构 293
9.4.2 在中断向量表中置入中断向量 294
9.4.3 中断服务程序设计 296
习题九 297
第10章 并行通信及其接口电路 299
10.1 可编程并行接口的组成及工作过程 299
10.1.1 可编程并行接口的组成及其与CPU和外设的连接 299
10.1.2 可编程并行接口的数据输入输出过程 300
10.2 可编程并行通信接口8255A 300
10.2.1 8255A的性能概要 300
10.2.2 8255A芯片引脚分配及引脚信号说明 301
10.2.3 8255A内部结构方块图 302
10.2.4 8255A的控制字 303
10.2.5 8255A的工作方式 305
10.2.6 8255A的状态字 311
10.2.7 8255A应用举例 312
习题十 315
第11章 串行通信及其接口电路 317
11.1 串行通信 317
11.1.1 串行通信的特点 317
11.1.2 串行通信涉及的常用术语和基本概念 318
11.2 串行通信接口标准 323
11.2.1 RS-232C简介 323
11.2.2 RS-449、RS-423A及RS-422A 324
11.2.3 RS-485标准 324
11.2.4 20mA电流环串行接口 325
11.3 串行接口的基本结构与功能 326
11.3.1 串行异步接口的基本结构与功能 326
11.3.2 串行同步接口的基本结构与功能 328
11.4 可编程串行通信接口8251A 329
11.4.1 USART 329
11.4.2 8251A的基本的功能和工作原理 330
11.4.3 8251A对外接口信号 332
11.4.4 8251A的编程 335
11.4.5 8251A应用举例 339
习题十一 342
第12章 可编程定时器/计数器及其应用 343
12.1 概述 343
12.2 可编程计数器/定时器8253 343
12.2.1 8253的主要功能 343
12.2.2 8253的结构框图 344
12.2.3 8253的引脚 346
12.2.4 8253的工作方式 346
12.2.5 8253的初始化编程 352
12.2.6 8253的读出操作 355
12.3 8253的应用 356
习题十二 358
第13章 存储器及其接口 360
13.1 概述 360
13.1.1 存储器的分类 360
13.1.2 存储器的性能指标 361
13.1.3 存储系统的层次结构 361
13.1.4 内存储器的基本结构及其数据组织 363
13.2 半导体存储器及其典型芯片 365
13.2.1 可读写存储器RAM 366
13.2.2 只读存储器ROM 377
13.3 存储器接口技术 384
13.3.1 存储器与CPU连接时应考虑的问题 384
13.3.2 存储器接口中的片选控制 385
13.3.3 存储器扩展 388
13.3.4 存储器接口分析与设计举例 390
13.3.5 16位、32位、64位存储器接口 392
13.4 改进存储器性能的相关技术 394
13.4.1 双端口存储器 394
13.4.2 并行主存系统 395
13.5 高速缓存(Cache) 397
13.5.1 Cache基本原理 397
13.5.2 Cache的组织方式 399
13.5.3 Cache控制器82385 401
13.5.4 Cache的更新方式及替换算法 404
13.6 虚拟存储器 406
13.6.1 虚拟存储器的工作原理 406
13.6.2 80x86的虚拟存储技术 408
习题十三 409
第14章 总线及总线标准 411
14.1 概述 411
14.1.1 总线 411
14.1.2 总线的分类 411
14.1.3 总线标准 413
14.1.4 总线仲裁 413
14.2 PCI总线 415
14.2.1 概述 415
14.2.2 PCI总线的系统结构及特点 415
14.2.3 PCI总线的引脚信号 417
14.2.4 PCI总线周期 419
14.2.5 PCI总线操作时序 421
14.2.6 I/O地址空间 422
14.2.7 PCI总线的配置空间 423
14.2.8 PCI总线BIOS 428
14.3 USB总线 432
14.3.1 USB概述 432
14.3.2 USB的结构 433
14.3.3 USB协议简介 434
14.4 高速总线接口IEEE 1394 438
14.5 高速图形端口AGP 439
习题十四 441
第15章 80x86/Pentium保护模式原理与结构 442
15.1 保护模式概述 442
15.2 保护模式的主要数据结构 443
15.2.1 段描述符 443
15.2.2 描述符表 443
15.2.3 段选择符 444
15.3 保护模式的寄存器模型 445
15.3.1 全局描述符表寄存器 446
15.3.2 中断描述符表寄存器 448
15.3.3 局部描述符表寄存器 449
15.3.4 控制寄存器 450
15.3.5 任务寄存器 450
15.3.6 改变功能的寄存器 451
15.4 保护模式的存储器管理和地址转换 452
15.4.1 物理地址、线性地址与逻辑地址 452
15.4.2 虚拟地址和虚拟地址空间 453
15.4.3 虚拟地址空间的分段 454
15.4.4 物理地址空间和虚实地址转换 455
15.4.5 段式地址转换 456
15.4.6 页式地址转换 458
15.4.7 转换旁视缓冲器TLB 462
15.5 描述符的格式及功能定义 463
15.5.1 非系统段描述符 463
15.5.2 系统段描述符 465
15.6 保护模式的系统控制指令集 467
15.7 多任务和保护 469
15.7.1 保护和特权级 470
15.7.2 任务切换和任务状态段 472
15.7.3 保护模式的中断和异常操作 475
15.7.4 保护模式的I/O保护 477
15.8 虚拟8086模式 479
习题十五 479
第16章 高性能微处理器的先进技术及典型结构 481
16.1 高性能微处理器所采用的先进技术 481
16.1.1 流水线中的“相关”及其处理技术[6] 481
16.1.2 指令级并行 484
16.1.3 超标量技术 485
16.1.4 超长指令字结构 485
16.1.5 超级流水线技术 486
16.1.6 RISC技术 486
16.2 高性能微处理器举例 488
16.2.1 64位处理器Alpha 21064 488
16.2.2 Itanium(安腾)处理器——IA-64架构的开放硬件平台 490
16.3 多核处理器简介 492
16.3.1 复杂单处理器结构所遇到的挑战 492
16.3.2 多核处理器的出现 493
16.3.3 多核处理器结构的主要特点 494
16.4 现代PC机主板典型结构 494
16.4.1 芯片组、桥芯片及接口插座 495
16.4.2 Pentium PC主板结构 496
16.4.3 PentiumⅢ-1GHz处理器典型主板布局 497
习题十六 498
附录一 8086/8088指令编码格式 499
附录二 DOS功能调用(INT 21H) 504
附录三 BIOS中断调用 509
附录四 调试程序DEBUG的使用 513
部分习题参考答案 517
参考文献 534