第1章 微机系统概述 1
1.1 微机的发展与应用 1
1.1.1 计算机的发展 1
1.1.2 微机的发展 2
1.1.3 微机的特点与应用 4
1.2 计算机中的数据表示 6
1.2.1 数制 6
1.2.2 各种数制之间的转换 8
1.2.3 带符号数的表示 10
1.2.4 计算机中的编码 12
1.3 微机的系统组成 15
1.3.1 微机的硬件系统 15
1.3.2 微机的软件系统 17
1.3.3 主机板的组成 17
1.3.4 存储器空间的分配 21
1.3.5 I/O空间的分配 22
1.4 微处理器的内部结构 23
1.4.1 微处理器的基本结构 23
1.4.2 8088/8086的功能结构 24
1.4.3 8088/8086的寄存器结构 25
1.4.4 8088/8086的存储器结构 28
1.5 习题 29
第2章 微处理器的指令系统 33
2.1 8088/8086的寻址方式 33
2.1.1 操作数类型 33
2.1.2 寻址方式 34
2.2 指令系统 41
2.2.1 数据传送指令 41
2.2.2 算术运算指令 46
2.2.3 逻辑运算指令 50
2.2.4 移位指令 52
2.2.5 转移指令 54
2.2.6 字符串操作指令 59
2.2.7 处理器控制指令 62
2.2.8 中断指令 63
2.3 习题 64
第3章 汇编语言程序设计 67
3.1 汇编语言语句 67
3.1.1 语句的类别与结构 67
3.1.2 指令语句的操作数 69
3.1.3 指令语句中的运算符和操作符 70
3.2 伪指令 74
3.2.1 数据定义与符号定义伪指令 74
3.2.2 段定义伪指令 76
3.2.3 模块定义与通信伪指令 78
3.2.4 过程定义伪指令 79
3.2.5 条件汇编 79
3.2.6 其他伪指令 80
3.2.7 汇编语言程序的构造 81
3.2.8 exe和com程序的比较 82
3.3 常用的DOS与BIOS中断功能调用 83
3.3.1 DOS中断与系统功能调用 83
3.3.2 BIOS中断功能调用 87
3.4 汇编程序MASM的使用 93
3.4.1 实验环境 93
3.4.2 汇编语言源程序上机操作过程 94
3.4.3 调试工具DEBUG的使用 97
3.5 顺序程序设计 102
3.5.1 存储单元内容移位 102
3.5.2 乘法运算 103
3.5.3 屏蔽与置位 104
3.5.4 拆字与合字 104
3.5.5 数据与ASCII码的相互转换 105
3.5.6 简单算术运算 105
3.5.7 查表 106
3.6 分支程序设计 107
3.6.1 单重分支 107
3.6.2 多重分支 109
3.6.3 用地址表实现分支 110
3.7 循环程序设计 111
3.7.1 循环程序的结构 111
3.7.2 单重循环 112
3.7.3 多重循环 114
3.8 子程序设计 115
3.8.1 子程序与调用程序 115
3.8.2 子程序与主程序的参数传递 117
3.8.3 子程序中寄存器的保护与恢复 121
3.9 宏汇编 122
3.9.1 宏定义与宏调用 122
3.9.2 宏的使用 123
3.10 模块化的程序设计 124
3.10.1 模块化设计的原则 124
3.10.2 模块之间的组合与通信 125
3.10.3 模块化设计举例 126
3.11 汇编语言与高级语言的接口 131
3.11.1 汇编语言与C语言的接口 131
3.11.2 汇编语言与C语言的混合编程 133
3.11.3 汇编语言与C语言的混合编程举例 137
3.12 实训 139
3.12.1 实训目的 139
3.12.2 实训内容 139
3.12.3 实训过程 139
3.12.4 实训总结 141
3.13 习题 141
第4章 处理器的外部特性 145
4.1 8086的引脚信号和总线形成 145
4.1.1 8086的指令周期、总线周期和时钟周期 145
4.1.2 8088/8086的两种组态模式 145
4.1.3 最小组态的引脚定义 148
4.1.4 最小组态的总线形成 149
4.1.5 最大组态的引脚定义 150
4.1.6 最大组态的总线形成 151
4.2 8086的总线时序 153
4.2.1 最小组态的总线时序 153
4.2.2 最大组态的总线时序 158
4.3 微机系统的总线 159
4.4 习题 160
第5章 存储系统及半导体存储器 162
5.1 存储系统与半导体存储器的分类 162
5.1.1 存储系统 162
5.1.2 半导体存储器的分类 162
5.2 随机存取存储器 164
5.2.1 静态RAM 164
5.2.2 动态RAM 166
5.3 只读存储器 168
5.3.1 掩膜ROM 169
5.3.2 可编程的ROM 169
5.3.3 可擦除可编程的ROM 170
5.3.4 电可擦除可编程的ROM 171
5.3.5 闪速存储器 172
5.4 CPU与存储器的连接 173
5.4.1 地址译码器74LS138 174
5.4.2 存储器容量扩充技术 175
5.4.3 存储器芯片片选端的处理 176
5.5 存储系统 179
5.5.1 IBM PC/XT的存储系统 179
5.5.2 80X86扩展存储器 180
5.5.3 高速缓冲存储器 181
5.6 习题 182
第6章 基本输入/输出接口 183
6.1 I/O接口概述 183
6.1.1 I/O接口的主要功能 183
6.1.2 I/O接口 185
6.1.3 I/O接口的编址方法 185
6.1.4 8088/8086的输入/输出指令 186
6.2 I/O接口的数据传送方式 188
6.2.1 无条件传送方式及其接口 189
6.2.2 查询传送方式及其接口 190
6.2.3 中断传送方式及其接口 191
6.2.4 DMA传送方式 192
6.3 习题 193
第7章 中断系统 195
7.1 概述 195
7.1.1 中断系统的作用 196
7.1.2 中断源 196
7.2 中断的处理过程 197
7.2.1 中断请求与中断屏蔽 198
7.2.2 中断优先级排队 198
7.2.3 中断响应 202
7.2.4 中断处理 203
7.3 IBMPC中断系统结构 205
7.3.1 8086/8088 CPU的中断结构体系 205
7.3.2 8086/8088中断优先级别对中断源的管理 210
7.3.3 IBM PC/XT的中断控制逻辑 213
7.3.4 IBM PC/AT的中断控制逻辑 215
7.4 Intel 8259A可编程中断控制器 216
7.4.1 8259A的框图和引脚 216
7.4.2 中断触发方式和中断响应过程 220
7.4.3 工作方式 222
7.4.4 屏蔽中断源的方式 224
7.4.5 结束中断处理的方式 225
7.4.6 中断级联方式 226
7.4.7 8259A初始化命令字和操作方式命令字 227
7.5 中断程序举例 235
7.5.1 IBM PC/XT对8259A的初始化 235
7.5.2 IBM PC/AT对8259A的初始化 236
7.6 实训 237
7.6.1 实训目的 237
7.6.2 实训内容 237
7.6.3 实训过程 237
7.7 习题 238
第8章 定时控制接口 240
8.1 8253/8254定时/计数器 240
8.1.1 8253/8254概述 240
8.1.2 8253/8254的内部结构和引脚 241
8.1.3 8253/8254的工作方式 244
8.1.4 8253/8254的编程 249
8.2 8253/8254在IBM PC系列机的应用 250
8.2.1 通道0的应用 250
8.2.2 通道1的应用 250
8.2.3 通道2的应用 250
8.2.4 软件延时 251
8.3 实训 251
8.3.1 实训目的 251
8.3.2 实训内容 251
8.3.3 实训过程 252
8.4 习题 253
第9章 DMA控制接口 254
9.1 DMA控制器8237A 254
9.1.1 DMA概述 254
9.1.2 DMA控制器8237A的引脚功能 257
9.1.3 8237A的工作方式 259
9.1.4 8237A的寄存器 260
9.1.5 8237A的编程 263
9.2 8237A的应用 263
9.2.1 8237A在IBM PC上的应用 263
9.2.2 8237A应用举例 264
9.3 习题 267
第10章 并行接口 268
10.1 并行接口电路8255A 268
10.1.1 8255A的内部结构和引脚 268
10.1.2 8255A的工作方式 271
10.1.3 8255A的编程 275
10.2 键盘及其接口 281
10.2.1 独立式键盘 282
10.2.2 行列式键盘 285
10.3 LED数码管及其接口 290
10.3.1 LED数码管的静态显示 290
10.3.2 LED数码管的动态显示 291
10.4 并行打印机接口 293
10.4.1 打印机接口信号 294
10.4.2 打印机适配器 295
10.4.3 打印机驱动程序 298
10.5 实训 302
10.5.1 实训目的 302
10.5.2 实训内容 303
10.5.3 实训过程 303
10.6 习题 304
第11章 串行通信接口 306
11.1 串行通信基础 306
11.1.1 串行通信和并行通信 306
11.1.2 同步串行通信和异步串行通信 307
11.1.3 有关串行通信的几个问题 307
11.2 可编程异步串行接口芯片8250/16550 309
11.2.1 8250/16550概述 309
11.2.2 8250/16550的引脚 309
11.2.3 8250/16550的寄存器 311
11.2.4 8250/16550的编程 313
11.3 可编程串行接口芯片8251 314
11.3.1 8251概述 314
11.3.2 8251的引脚功能 314
11.3.3 8251的工作方式 316
11.3.4 8251的控制字与状态字 316
11.3.5 8251的编程应用 318
11.4 常用的通信接口 319
11.4.1 RS-232C的引脚功能 320
11.4.2 RS-232C的电平转换电路 320
11.4.3 RS-423A接口 321
11.4.4 RS-422A接口 322
11.4.5 RS-485接口 323
11.5 Visual Basic与串行通信 323
11.5.1 VB的Comm控件 323
11.5.2 简单的串行通信程序 325
11.5.3 较完备的串行通信程序 327
11.6 实训 329
11.6.1 实训目的 329
11.6.2 实训内容 329
11.6.3 实训过程 329
11.7 习题 331
第12章 高档微处理器介绍 332
12.1 高性能微机技术简介 332
12.1.1 流水线技术 332
12.1.2 RISC、SIMD简介 335
12.1.3 MMX、SSE、SSE2技术 335
12.2 80X86/Pentium微处理器与新增指令简介 341
12.2.1 80286微处理器结构和新增指令 341
12.2.2 80386微处理器结构和新增指令 343
12.2.3 80486微处理器结构和新增指令 351
12.2.4 Pentium系列微处理器结构和新增指令 353
12.3 习题 358
附录A 80386指令系统 360
附录B 常用DOS功能调用(INT 21H) 366
附录C 常用ROM-BIOS功能调用 370
参考文献 374