第1章 计算机运算基础 1
1.1 无符号数 1
1.1.1 二进制与十六进制 1
前言 1
1.1.2 数制转换 3
1.2 常用的编码 5
1.2.1 BCD码 5
1.2.2 ASCII码与奇偶校验 6
1.3 带符号数 7
1.3.1 负数的表示法 8
1.3.2 符号数的换算 9
1.4 运算方法 10
思考与练习 11
2.1 计算机发展简史 13
第2章 计算机硬件基础 13
2.2 微型计算机系统概述 14
2.2.1 微型计算机系统基本结构 14
2.2.2 微处理器基本结构 18
2.2.3 程序执行过程简介 20
2.3 8086 16位微处理器 20
2.3.1 8086/8088概述 21
2.3.2 8086/8088的寄存器 22
2.3.3 存储器物理地址的形成 25
2.4 奔腾系列32位微处理器 27
2.4.1 Pentium概述 27
2.4.2 Pentium的寄存器 28
2.5.1 主板结构 33
2.5 主板 33
2.5.2 BIOS ROM 35
2.5.3 CMOS RAM 36
思考与练习 37
第3章 汇编语言指令 39
3.1 汇编语言伪指令 39
3.2 寻址方式 44
3.3 传送指令 49
3.3.1 MOV指令 50
3.3.2 堆栈操作指令 52
3.3.3 地址传送指令 54
3.4 算术运算与BCD调整指令 55
3.4.1 加法指令 55
3.4.2 减法指令 56
3.4.3 乘法指令 57
3.4.4 除法指令 58
3.4.5 BCD调整指令 59
3.5 逻辑与移位以及位操作指令 61
3.5.1 逻辑运算指令 61
3.5.2 移位指令 62
3.5.3 位测试指令 65
3.6 串操作指令 67
3.7 分支转移指令 69
3.7.1 CALL指令 69
3.7.2 循环指令 71
3.7.4 条件转移指令 72
3.7.3 无条件转移指令 72
3.8 其他常用指令 74
思考与练习 77
第4章 汇编语言程序设计 81
4.1 系统功能调用 81
4.2 汇编程序典型结构 83
4.3 顺序程序 89
4.4 循环程序 90
4.4.1 单循环 91
4.4.2 多重循环 94
4.5 分支程序 96
4.5.1 简单分支 96
4.5.2 多路分支 97
4.6.1 子程序调用 99
4.6 子程序与宏调用 99
4.6.2 用堆栈传递参数 102
4.6.3 宏调用 104
4.7 数制转换 107
4.8 表格处理 111
4.9 汇编与C/C++接口 112
4.10 汇编语言程序开发的基本方法与步骤 118
4.10.1 汇编语言程序开发集成环境 119
4.10.2 程序开发的基本步骤 120
4.10.3 DEBUG 122
思考与练习 126
5.1.1 概述 129
5.1 存储器基本知识 129
第5章 存储器与接口 129
5.1.2 ROM 130
5.1.3 RAM 132
5.1.4 内存条 133
5.1.5 地址译码 135
5.2 存储器访问 138
5.2.1 信号描述 138
5.2.2 周期状态 140
5.2.3 单次传送周期 140
5.2.4 等待状态 142
5.2.5 4字边界对准 143
5.3.1 Cache的作用 144
5.3 高速缓冲存储器 144
5.3.2 Cache的读/写策略 145
5.3.3 Cache的实施原理简介 148
5.3.4 突发周期 150
5.4 双重独立总线结构 152
思考与练习 153
第6章 输入/输出接口 155
6.1 I/O端口 155
6.1.1 I/O端口寄存器 155
6.1.2 I/O操作指令 157
6.2 I/O接口基本原理 157
6.3 可编程I/O接口芯片8255A 161
6.3.1 概述 161
6.3.2 3种工作方式 163
6.4 键盘与显示器接口 166
6.4.1 矩阵键盘的设计 166
6.4.2 七段数码显示器的设计 170
6.5 可编程定时/计数器8254/8253-PIT 172
6.5.1 8254/8253概述 172
6.5.2 扬声器电路与发声程序 178
6.5.3 频率或转速测量 181
6.6 DMA方式 181
6.6.1 DMA传送原理 182
6.6.2 8237-5 DMAC简介 183
思考与练习 184
7.1.1 中断的基本概念 185
7.1 中断系统 185
第7章 中断 185
7.1.2 中断向量表 188
7.1.3 中断源的分类 190
7.2 软件中断 191
7.2.1 异常中断 191
7.2.2 INT N指令中断 194
7.3 硬件中断 195
7.3.1 奔腾硬件中断综述 195
7.3.2 可屏蔽中断INTR 197
7.3.3 外部中断应用编程 200
思考与练习 203
第8章 扩展总线 205
8.1 ISA扩展总线 206
8.2 PCI总线信号 208
8.2.1 概述 208
8.2.2 总线信号定义 208
8.3 PCI总线协议 212
8.3.1 地址空间 212
8.3.2 传输操作 214
8.4 PCI BIOS功能调用 216
思考与练习 220
第9章 并行接口 221
9.1 概述 221
9.1.1 物理接口 221
9.1.2 端口模式简介 223
9.2 SPP端口模式 224
9.2.1 简单的输入/输出 225
9.2.2 兼容模式 227
9.3 EPP与ECP端口模式 228
9.3.1 EPP模式 228
9.3.2 ECP模式 231
9.4 ADC接口设计 232
9.4.1 ADC器件 233
9.4.2 SPP模式下的ADC接口 237
9.4.3 EPP模式下的ADC接口 238
9.5 DAC接口设计 244
思考与练习 248
10.1 RS-232标准 249
10.1.1 接口引脚与电气特性 249
第10章 串行接口 249
10.1.2 接收器与发送器 251
10.2 COM端口及数据通信 253
10.2.1 调制解调器简介 253
10.2.2 端口寄存器 255
10.2.3 通信编程 259
10.2.4 应用举例 261
10.3 USB概述 263
10.3.1 背景 264
10.3.2 物理接口 265
10.3.3 系统组成 268
10.4 USB传输协议 270
10.4.1 信息包的结构与种类 271
10.4.2 4种传输方式 274
10.4.3 USB系统开发简介 277
思考与练习 279
第11章 操作模式 280
11.1 实模式综述 280
11.2 保护模式下的存储器分段管理 283
11.2.1 控制寄存器与存储器管理寄存器 284
11.2.2 虚拟存储器 285
11.2.3 描述符表的概念 287
11.2.4 特权级及其保护 288
11.2.5 段选择器与段描述符的结构 289
11.2.6 描述符表的定位 292
11.2.7 存储器寻址过程 293
11.2.8 保护模式下的中断 295
11.3 分页管理机制 297
11.3.1 概述 297
11.3.2 4KB分页 299
11.3.3 线性地址转换全过程 301
11.3.4 4MB分页 302
思考与练习 303
第12章 其他增强技术 304
12.1 奔腾的超标量流水线 304
12.1.1 整型流水线 304
12.1.2 浮点流水线 306
12.2 动态执行技术 308
12.3 分支预测与条件传送指令 312
12.4 特殊方式寄存器 313
12.5 MMX技术 315
12.5.1 概述 316
12.5.2 MMX指令规则 317
12.5.3 单指令多数据处理 322
12.5.4 SSE技术简介 325
12.6 奔腾Ⅳ的增强点 326
思考与练习 327
参考文献 329
附录A 常用的系统功能调用 330
A.1 DOS功能调用 330
A.2 BIOS功能调用 331
A.3 INT 33H鼠标功能调用 335
附录B IA基本指令集 336
附录C MMX指令集 346